<FETCH>
MAR = PC
MDR = M[MAR]; PC = PC+1
<DECODE>
IR = MDR
<EXECUTE>
jump to individual instruction
determined by opcode field IR:OP
Individual instruction
<LDA>
MAR = IR:ADS
MDR = M[MAR]
R[IR:R1] = MDR
<LDD>
T = R[IR:R2] + IR:DISP
MAR = T
MDR = M[MAR]
R[IR:R1] = MDR
<LDX>
T = R[IR:R2] + R[IR:R3]
MAR = T
MDR = M[MAR]
R[IR:R1] = MDR
<LDI>
R[IR:R1] = IR:DISP
<STA>
MAR = IR:ADS
MDR = R[IR:R1]
M[MAR] = MDR
<STD>
T = R[IR:R2] + IR:DISP
MAR = T
MDR = R[IR:R1]
M[MAR] = MDR
<STX>
T = R[IR:R2] + R[IR:R3]
MAR = T
MDR = R[IR:R1]
M[MAR] = MDR
<JMP>
IF TESTCC(IR:R1) // jump not taken
PC = IR:ADS // jump taken
<JAL>
R[IR:R1] = PC
PC = IR:ADS
<JR>
PC = R[IR:R1]
<ADD>
T = R[IR:R2] + R[IR:R3]
R[IR:R1] = T
<ADDI>
T = R[IR:R2] + IR:DISP
R[IR:R1] = T
similary for SUB SUBI MUL MULI DIV DIVI AND ANDI OR ORI XOR XORI
<SHL>
T = SHIFLEFT(R[IR:R2])
R[IR:R1] = T
<SHR>
T = SHIFTRIGHT(R[IR:R2])
R[IR:R1] = T
<TRAP>
simulator dependent
lda 6
ldd 7
ldx 7
ldi 4
sta 6
std 7
stx 7
jmp taken 5
jmp not taken 4
jal 5
jr 4
add 5
addi 5
. . .
shl 5
shr 5
trap 4