anchor.diff:      ((in-6-byte-block-p opcode #x28) (parse-alu-opcode opcode sub-without-borrow))
       ((in-6-byte-block-p opcode #x30) (parse-alu-opcode opcode xor-operation))
       ((in-6-byte-block-p opcode #x38) (parse-alu-opcode opcode cmp-operation))
  +    ((in-4-byte-block-p opcode #x80) (parse-group1-opcode opcode))
       ((in-paired-byte-block-p opcode #xa8) (test-accumulator-with-immediate opcode))
       ((in-paired-byte-block-p opcode #x84) (test-memory-register opcode))
  -    ((in-4-byte-block-p opcode #x80) (parse-group1-opcode opcode))
       ((in-4-byte-block-p opcode #x88) (parse-mov-opcode opcode))
       ((in-paired-byte-block-p opcode #x86) (xchg-memory-register opcode))
       ((in-paired-byte-block-p opcode #xc6) (parse-group11-opcode opcode))
  
positive.code: 	 (incf (register :si) diff)
  	 (incf (register :di) diff)))))
  
  (defmacro mov-string-operation (accessor)
    `(disasm-instr '("movs")
       (mov (,accessor (register :si) *ram*) (,accessor (register :di) *ram*))))
  
  (defun mov-string (opcode)
    (string-operation opcode mov-string-operation))
  
  (defun parse-string-opcode (opcode)
    (cond
      ((in-paired-byte-block-p opcode #xa4) (list #'mov-string nil))
      (t '(nil nil))))
  
  ;;; Opcode parsing
  
negative.code: (defmacro string-operation (opcode operation)
    `(with-size-by-last-bit ,opcode
       (let ((diff (if is-word 2 1)))
         (,operation is-word)
         (when (flag-p :df)
  	 (decf (register :si) diff)
  	 (decf (register :di) diff))
  