anchor.diff:      ((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 #x86) (xchg-memory-register opcode))
       ((in-paired-byte-block-p opcode #xfe) (parse-group4/5-opcode opcode))))
   
   ;;; Main functions
  
positive.code: 
  (defun xchg-register (reg)
    (disasm-instr (if (eql reg :ax) '("nop") (list "xchg" :op1 :ax :op2 reg))
      (rotatef (register :ax) (register reg))))
  
  (defun mov-byte-to-register (opcode)
    (let ((reg (bits->byte-reg (mod opcode #x08))))
  
negative.code:   `(let* ((mod-r/m (next-instruction)) (r/m-bits (logand mod-r/m #b00000111)) (mod-bits (ash (logand mod-r/m #b11000000) -6)) (reg-bits (ash (logand mod-r/m #b00111000) -3)))
       ,@body))
  
  ;; Templates
  
  (defmacro xchg (op1 op2)
    `(disasm-instr (list "xchg" :op1 ,op1 :op2 ,op2)
       (rotatef ,op1 ,op2)))
  
  ;; One-byte opcodes on registers
  
  (defun clear-carry-flag ()
  