anchor.diff:    (disasm-instr
         (if (= mod-bits #b11) (register (if is-word (bits->word-reg r/m-bits) (bits->byte-reg r/m-bits)))
   	  (let ((base-index (address-for-r/m mod-bits r/m-bits)))
  -	    (setf (getf base-index :disp)
  -		  (case mod-bits
  -		    (#b00 0)
  -		    (#b01 (next-instruction))
  -		    (#b10 (next-word))))
  +	    (unless (getf base-index :disp)
  +	      (setf (getf base-index :disp)
  +		    (case mod-bits
  +		      (#b00 0)
  +		      (#b01 (next-instruction))
  +		      (#b10 (next-word)))))
   	    base-index))
       (let ((address-base (address-for-r/m mod-bits r/m-bits)))
         (case mod-bits
  
positive.code: 
  (defun address-for-r/m (mod-bits r/m-bits)
    (disasm-instr
        (if (and (= mod-bits #b00) (= r/m-bits #b100))
  	  (list :disp (next-word))
  	  (case r/m-bits
  	    (#b000 (list :base :bx :index :si))
  
negative.code: 
  (defmacro parse-group1-byte (opcode operation mod-bits r/m-bits)
    `(case (mod ,opcode 4)
      (0 (,operation (next-instruction-ahead-of-indirect-address ,mod-bits ,r/m-bits) (indirect-address ,mod-bits ,r/m-bits nil) nil))
      (1 (,operation (next-word-ahead-of-indirect-address ,mod-bits ,r/m-bits) (indirect-address ,mod-bits ,r/m-bits t) t))
      (3 (,operation (sign-extend (next-instruction-ahead-of-indirect-address ,mod-bits ,r/m-bits)) (indirect-address ,mod-bits ,r/m-bits t) t))))
  
  (defmacro parse-group1-opcode (opcode)
    `(parse-group-opcode
  