anchor.diff:      (ret-near)
       (incf (register :sp) (next-word))))
   
  +(defmacro loop-instruction (condition mnemonic)
  +  `(let ((disp (twos-complement (next-instruction) nil)))
  +     (disasm-instr (list (concatenate 'string "loop" ,mnemonic) :op disp)
  +       (decf (register :cx))
  +       (when (and (not (zerop (register :cx))) ,condition)
  +	 (incf *ip* disp)))))
  +
   ;; ALU
   
   (defmacro parse-alu-opcode (opcode operation)
  
positive.code:        (setf ,dest result)
         (setf ,dest-overflow overflow)
         (setf (flag-p :cf) overflow-zero?)
         (setf (flap-p :of) overflow-zero?))))
  
  (defun mul-indirect (mod-bits r/m-bits is-word)
    (if is-word
  
negative.code:     ((= opcode #xe8) (call-near))
      ((= opcode #xc2) (ret-near-resetting-stack))
      ((= opcode #xc3) (ret-near))
      ((= opcode #xe0) (loop-instruction (not (flag-p :zf)) "ne"))
      ((= opcode #xe1) (loop-instruction (flag-p :zf) "e"))
      ((= opcode #xe2) (loop-instruction t ""))
      ((in-6-byte-block-p opcode #x00) (parse-alu-opcode opcode add-without-carry))
      ((in-6-byte-block-p opcode #x08) (parse-alu-opcode opcode or-operation))
      ((in-6-byte-block-p opcode #x10) (parse-alu-opcode opcode add-with-carry))
  