S2 microsteps opcode ld st jmp jal jr add sub mul div and or xor shl shr trap addressing mode a absolute d displacement x index i immediate unique opcode names lda ld r1,temp ldd ld r1,10(r2) ldx ld r1,(r2+r3) ldi ld r1,#100 add add r1,r2,r3 addi add r1,#20 others are similar sta std stx sub subi mul muli div divi and andi or ori xor xori shl shr trap (note: no sti, shli, shri) instruction format L-format op:5 r1:5 ads:22 D-format op:5 r1:5 r2:5 disp:17 X-format op:5 r1:5 r2:5 r3:5 xop:12 MAR = PC MDR = M[MAR]; PC = PC+1 IR = MDR MAR = IR:ADS MDR = M[MAR] R[IR:R1] = MDR T = R[IR:R2] + IR:DISP MAR = T MDR = M[MAR] R[IR:R1] = MDR T = R[IR:R2] + R[IR:R3] MAR = T MDR = M[MAR] R[IR:R1] = MDR R[IR:R1] = IR:DISP MAR = IR:ADS MDR = R[IR:R1] M[MAR] = MDR T = R[IR:R2] + IR:DISP MAR = T MDR = R[IR:R1] M[MAR] = MDR T = R[IR:R2] + R[IR:R3] MAR = T MDR = R[IR:R1] M[MAR] = MDR IF TESTCC(IR:R1) PC = IR:ADS R[IR:R1] = PC PC = IR:ADS PC = R[IR:R1] T = R[IR:R2] + R[IR:R3] R[IR:R1] = T T = R[IR:R2] + IR:DISP R[IR:R1] = T similary for SUB SUBI MUL MULI DIV DIVI AND ANDI OR ORI XOR XORI T = SHIFLEFT(R[IR:R2]) R[IR:R1] = T T = SHIFTRIGHT(R[IR:R2]) R[IR:R1] = T simulator dependent timing clocks (assume no wait memory) lda 6 ldd 7 ldx 7 ldi 4 sta 6 std 7 stx 7 jmp 4 jal 5 jr 4 add 5 addi 5 . . . shl 5 shr 5 trap 4