anchor.diff:  (defun assemble-parsed-expressions (out x)
     (adolist x
       (with-temporary *assembler-current-line* !
  -      (let-when b (car *sourceblock-stack*)
  -        (enqueue (sourceblock-exprs b) !))
  +      (| *assign-blocks-to-segments?*
  +         (let-when b (car *sourceblock-stack*)
  +           (enqueue (sourceblock-exprs b) !)))
         (adolist (.!)
           (? *disabled?*
  -           (? (equal ! '(directive end)) ; TODO end with block type
  +           (? (& (cons? !)
  +                 (eq !. 'directive)
  +                 (eq .!. 'end))
                 (assemble-end nil))
              (assemble-and-dump out !))))))
   
  
positive.code:          nil
      (format t "Pass ~A…~%" *pass*)
      (= *label-changed?* nil
         *unassigned-segment-blocks* nil)
      (assemble-pass-to-file out-name dump-name x)
      (++! *pass*))
    (when *unassigned-segment-blocks*
      (sort-unassigned-segment-blocks)
      (with-temporary *assign-blocks-to-segments?* t
        (assemble-pass-to-file out-name dump-name x))))
  
  (defun check-on-unassigned-blocks ()
    (awhen *unassigned-segment-blocks*
  
negative.code:                                                  (>= (sourceblock-size a)
                                                       (sourceblock-size b))))))
  
  (defun assemble-parsed-files-0 (out-name dump-name x &key (unassigned-segment-blocks nil))
    (clear-labels)
    (= *pass* 0)
    (while (| *label-changed?*
  