anchor.diff:  	(else-branch (codegen-instruction (cadr (successors instruction))))
   	(then-branch (codegen-instruction (car (successors instruction)))))
       `(,@(load-input (cadr (inputs instruction)))
  -      "	move ebx, eax"
  -      ,@(load-input (car (inputs instruction)))
  -      "	cmp eax, ebx"
  -      ,(format nil "	ja ~a" label)
  -      ,@then-branch
  -      ,(format nil "~a:" label)
  +      "	mov ebx, eax	; Second argument of u<=."
  +      ,@(load-input (car (inputs instruction)))
  +      "	cmp eax, ebx	; Compare first and second argument of u<=."
  +      ,(format nil "	ja ~a	; Go if not u<=." label)
  +      ,@then-branch
  +      ,(format nil "~a:		; Come here if not u<=." label)
         ,@else-branch)))
   	  
   (defun codegen-procedure (procedure)
  
positive.code: (defmethod codegen-instruction
      ((instruction sicl-mir:memref-instruction))
    `(,@(load-input (car (inputs instruction)))
      "	move eax, [eax]"
      ,@(save-result (car (outputs instruction)))
      ,@(codegen-instruction (car (successors instruction)))))
  
  (defmethod codegen-instruction
      ((instruction sicl-mir:memset-instruction))
    `(,@(load-input (cadr (inputs instruction)))
      "	move ebx, eax"
      ,@(load-input (car (inputs instruction)))
      "	move [eax], ebx"
      ,@(codegen-instruction (car (successors instruction)))))
  
  (defmethod codegen-instruction
      ((instruction sicl-mir:u+-instruction))
    `(,@(load-input (cadr (inputs instruction)))
      "	move ebx eax"
      ,@(load-input (car (inputs instruction)))
      "	add eax ebx"
      ,@(save-result (car (outputs instruction)))
      ,@(codegen-instruction (car (successors instruction)))))
  
  (defmethod codegen-instruction
      ((instruction sicl-mir:u--instruction))
    `(,@(load-input (cadr (inputs instruction)))
      "	move ebx, eax"
      ,@(load-input (car (inputs instruction)))
      "	sub eax, ebx"
      ,@(save-result (car (outputs instruction)))
      ,@(codegen-instruction (car (successors instruction)))))
  
  (defmethod codegen-instruction
      ((instruction sicl-mir:s+-instruction))
    `(,@(load-input (cadr (inputs instruction)))
      "	move ebx, eax"
      ,@(load-input (car (inputs instruction)))
      "	add eax, ebx"
      ,@(save-result (car (outputs instruction)))
      ,@(codegen-instruction (car (successors instruction)))))
  
  (defmethod codegen-instruction
      ((instruction sicl-mir:s--instruction))
    `(,@(load-input (cadr (inputs instruction)))
      "	move ebx, eax"
      ,@(load-input (car (inputs instruction)))
      "	sub eax, ebx"
      ,@(save-result (car (outputs instruction)))
      ,@(codegen-instruction (car (successors instruction)))))
  
  (defmethod codegen-instruction
      ((instruction sicl-mir:neg-instruction))
    `(,@(load-input (car (inputs instruction)))
      "	neg eax"
      ,@(save-result (car (outputs instruction)))
      ,@(codegen-instruction (car (successors instruction)))))
  
  (defmethod codegen-instruction
      ((instruction sicl-mir:&-instruction))
    `(,@(load-input (cadr (inputs instruction)))
      "	move ebx, eax"
      ,@(load-input (car (inputs instruction)))
      "	and eax, ebx"
      ,@(save-result (car (outputs instruction)))
      ,@(codegen-instruction (car (successors instruction)))))
  
  (defmethod codegen-instruction
      ((instruction sicl-mir:ior-instruction))
    `(,@(load-input (cadr (inputs instruction)))
      "	move ebx, eax"
      ,@(load-input (car (inputs instruction)))
      "	or eax, ebx"
      ,@(save-result (car (outputs instruction)))
      ,@(codegen-instruction (car (successors instruction)))))
  
  (defmethod codegen-instruction
      ((instruction sicl-mir:xor-instruction))
    `(,@(load-input (cadr (inputs instruction)))
      "	move ebx, eax"
      ,@(load-input (car (inputs instruction)))
      "	xor eax, ebx"
      ,@(save-result (car (outputs instruction)))
      ,@(codegen-instruction (car (successors instruction)))))
  
  (defmethod codegen-instruction
      ((instruction sicl-mir:~-instruction))
    `(,@(load-input (car (inputs instruction)))
      "	not eax"
      ,@(save-result (car (outputs instruction)))
      ,@(codegen-instruction (car (successors instruction)))))
  
  
negative.code: (defmethod load-input ((input sicl-env:lexical-location))
    (let ((count (- *depth* (lexical-depth (owner input)))))
      `(;; Load the lexical environment from the stack.
        "	mov eax, [ebp - 4]	; Load lexical environment from stack."
        ;; The environment is a list of levels.  Take the CDR as many
        ;; times as necessary to get to the right CONS cell of the list.
        ,@(loop repeat count
  	      collect "	mov eax, [eax + 3]	; CDR down a level.")
        "	mov eax, [eax - 1]	; CAR to get to the level vector."
        "	mov eax, [eax + 1]	; Load contents vector of level vector."
        ;; Load the appropriate element from the contents vector.
        ,(format nil "	mov eax, [eax + ~a]	; Load lexical."
  	       (* 4 (1+ (index input)))))))
  
  (defmethod load-input ((input sicl-mir:immediate-input))
    `(,(format nil "	mov eax, ~a	; Load immediate."
  	     (sicl-mir:value input))))
  
  (defmethod load-input ((input sicl-mir:external-input))
    `("	mov eax, [ebp - 8]"
      ,(format nil "	mov eax, [eax + ~a]	; Load external."
  	     (* 4 (index input)))))
  
  (defun load-from-argument (i)
    `(,(format nil "	mov eax, [edb + ~a]	; Load argument."
  	     (* 4 i))))
  
  (defun save-to-argument (i)
    `(,(format nil "	mov [edb + ~a], eax	; Save to argument."
  	     (* 4 i))))
  
  (defun save-result (location)
    (let ((count (- *depth* (lexical-depth (owner location)))))
      `("	mov ebx, [ebp - 4]	; Load lexical environment from stack."
        ;; The environment is a list of levels.  Take the CDR as many
        ;; times as necessary to get to the right CONS cell of the list.
        ,@(loop repeat count
  	      collect "	mov ebx, [ebx + 3]	; CDR down a level.")
        "	mov ebx, [ebx - 1]	; CAR to get to the level vector."
        "	mov ebx, [ebx + 1]	; Load contents vector of level vector."
        ;; Save the appropriate element to the contents vector.
        ,(format nil "	mov [ebx + ~a], eax	; Save lexical."
  	       (* 4 (1+ (index location)))))))
  
  (defgeneric codegen-instruction (instruction))
  