Thu Jul 16 11:21:55 CEST 2009

the relative conditional jump

Start with the most difficult instruction: one that uses machine state
and a typed operand (an addressing mode): a relative conditional jump.

Branch if carry flag is set:

bc R   1101 0010 RRRR RRRR

        C  carry flag
        R  operand type
           instruction format
        PC program counter

        PC <- (if C (+ PC (* n 2)) PC)

So, what is "R"?  It is some simplified representation of the
semantics "PC <- (if C (+ PC (* n 2)) (+ PC 2))".

This is a very important question to answer.  Distinguish:

   - code syntax
   - symplified semantics (type)
   - concrete semantics (simulator)