anchor.diff:  (defun address-for-r/m (mod-bits r/m-bits)
     (disasm-instr
         (if (and (= mod-bits #b00) (= r/m-bits #b110))
  -	  (list :disp (next-word))
  +	  (list :disp (peek-at-word))
   	  (case r/m-bits
   	    (#b000 (list :base :bx :index :si))
   	    (#b001 (list :base :bx :index :di))
  
positive.code: (defmacro parse-mov-opcode (opcode)
    `(let ((mod-4 (mod ,opcode 4)))
       (with-mod-r/m-byte
         (cond
  	 ((= mod-4 0)
  	  (mov (byte-register (bits->byte-reg reg-bits)) (indirect-address mod-bits r/m-bits nil)))
  	 ((= mod-4 1)
  	  (mov (register (bits->word-reg reg-bits)) (indirect-address mod-bits r/m-bits t)))
  	 ((= mod-4 2)
  	  (mov (indirect-address mod-bits r/m-bits nil) (byte-register (bits->byte-reg reg-bits))))
  	 ((= mod-4 3)
  	  (mov (indirect-address mod-bits r/m-bits t) (register (bits->word-reg reg-bits))))))))
  
  ;; Group 4/5 (inc/dec on EAs)
  
negative.code:   "Loop through loaded instructions."
    (loop
       for ret = (parse-opcode (next-instruction))
       until (equal ret '("hlt"))
       do (advance-ip)
       finally (return t)))
  
  (defun disasm-instructions (instr-length)
    "Disassemble code."
  