anchor.diff:  (defparameter *flags* '(:cf 0 :sf 0 :zf 0) "Flags")
   (defparameter *registers* '(:ax 0 :bx 0 :cx 0 :dx 0 :bp 0 :sp #x100 :si 0 :di 0) "Registers")
   (defparameter *ip* 0 "Instruction pointer")
  -(defparameter *has-overflowed* nil "Whether the last wraparound changed the value")
  +(defparameter *has-carried* nil "Whether the last wraparound changed the value")
   (defparameter *advance* 0 "Bytes to advance IP by after an operation")
   
   ;;; Constants
  
positive.code:     (getf *registers* reg)))
  
  (defun set-reg (reg value)
    (setf (getf *registers* reg) (wrap-overflow value t)))
  
  (defsetf register set-reg)
  
  
negative.code: ;;; Flag effects
  
  (defun set-cf-on-add (value)
    (setf (flag-p :cf) *has-carried*)
    value)
  
  (defun set-cf-on-sub (value1 value2)
  