Constants: 0 1 2 3 4 7 8 15 16 23 24 31 32 47 48 255 256 65535 65536 -1 -2 -3 -4 -8 Misc: ip fp sp Global: g0 g1 g2 g3 g4 Decoder scratch: ds0 ds1 ds2 ds3 System scratch: s0 s1 s2 s3 Ingoing parameters: i0 i1 i2 i3 i4 i5 i6 ra Work: l0 l1 l2 l3 l4 l5 l6 l7 Outgoing parameters: o0 o1 o2 o3 o4 o5 o6 o7 fetch [src],dst displacement store src,[dst] exchange src1,[src1] bop src1,src2,dst,op (op=and2,or2,xor2,copy1) bitspec add src1,src2,dst sub set dst,imm low/high in [src],dst,w out src,[dst],w j [j,jnc,jc,jnz,jncnz,jcnz,jz,jncz,jcz] dst jr ditto bmov src, iiii111111222222 333333 ................................ iiii instruction 111111 source reg 1 222222 source reg 2 333333 target push reg store sp,[bp] add bp,4,bp return add sp,-4,sp fetch ip,[sp] call addr add ip,4,ds0 store ds0,[sp] add sp,4,sp j addr x = y + z add bp,_y,ds0 fetch [ds0],ds0 set ds1,_z fetch [ds1],ds add ds0,ds1,ds0 add bp,_x,ds2 store ds0,[ds2] if(x<2) ... add bp,_x,ds0 fetch [ds0],ds1 add ds1,-2,null jc _else ... interlock flags: use-flags: memory io reg1,2,3,4 flags modify-flags: memory io reg1,2,3,4 flags