processor working model
DESCRIPTION
A diagrammatic explanation of processor working model.TRANSCRIPT
MAIN MEMORY ADDRESS CONTENT
CO
DE
AR
EA
0x0000 NOP (00)
0x0001 LOAD (01)
0x0002 00
0x0003 1C
0x0004 R1 (01)
Ox0005 LOADM (02)
0X0006 00
0X0007 01
0X0008 R2
0X0009 ADD (0B)
0X000A R2 (02)
0X000B R1 (01)
0X000C PUSH (11)
0X000D R1 (01)
0X000E SVC (3F)
0X000F 00
0X0010 03
0X0011 POP (12)
0X0012 R1 (01)
0X0013 LOADM (02)
0X0014 00
0X0015 00
0X0016 01
0X0017 PUSH (11)
0X0018 R1 (01)
0X0019 SVC (3F)
0X001A 00
0X001B 01
DA
TA
AR
EA
0X001C 00
0X001D 01
.
.
.
STA
CK
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
CONTROL MEMORY Address Content
Main1 0x100 set PC = PC+1; fetch; jmpc 0X000
Nop 0x000 donothing; goto main1
Load1 0x001 set PC = PC+1
0x040 set H = MBR sll8; fetch
0x041 set PC = PC+1
0x042 set MAR = H or MBRU; fetch; read
0x043 set PC = PC+1
0x044 set RS = MDR; fetch
0x045 donothing; goto main1
Loadm1 0x002 set PC = PC+1
0x046 set H = MBR sll8; fetch
0x047 set PC = PC+1
0x048 set H = H + MBRU; fetch
0x049 set PC = PC+1
0x04A set RS = H; fetch
0x04B donothing; goto main1
Add1 0x00B set PC = PC+1
0x04C set H = RS; fetch
0X04D set PC = PC+1
0X04E set RS = H+RS; fetch
0X04F donothing; goto main1
Push1 0X011 set PC = PC+1
0X050 set MDR = RS; fetch
0X051 set MAR = SP; write
0X052 set SP = SP+1
0X053 set SP = SP+1; goto main1
Pop1 0X012 set SP = SP-1
0X054 set SP = SP-1; read
0X055 set PC = PC+1
0X056 set RS = MDR; fetch
0X057 donothing; goto main1
Jmp1 0X016 set PC = PC+1
0X058 set H = MBR sll8; fetch
0X059 Donothing
0X05A set PC = H + MBRU; fetch
0X05B donothing; goto main1
Svc1 0X03F set PC = PC+1
0X05C set H = MBR sll8; fetch
0X05D set PC = PC+1
0X05E set T1 = H + MBRU; fetch
0X05F set T2 = SP-1
0X060 set MAR = T2-1; read
0X061 Donothing
0X062 set T2 = MDR
0X063 svc; goto main1
MAR
MDR
PC
MBR
SP F800
T1 0000
T2 0000
T3 0000
T4 0000
R0 0000
R1 0000
R2 0000
R3 0000
R4 0000
R5 0000
R6 0000
R7 0000
H 0000
BBus Memory CBus ALU/shift JAM Next Addr
ALU
SHIFT
MAIN MEMORY ADDRESS CONTENT
CO
DE
AR
EA
0x0000 NOP (00)
0x0001 LOAD (01)
0x0002 00
0x0003 1C
0x0004 R1 (01)
Ox0005 LOADM (02)
0X0006 00
0X0007 01
0X0008 R2
0X0009 ADD (0B)
0X000A R2 (02)
0X000B R1 (01)
0X000C PUSH (11)
0X000D R1 (01)
0X000E SVC (3F)
0X000F 00
0X0010 03
0X0011 POP (12)
0X0012 R1 (01)
0X0013 LOADM (02)
0X0014 00
0X0015 00
0X0016 01
0X0017 PUSH (11)
0X0018 R1 (01)
0X0019 SVC (3F)
0X001A 00
0X001B 01
DA
TA
AR
EA
0X001C 00
0X001D 01
.
.
.
STA
CK
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
CONTROL MEMORY Address Content
Main1 0x100 set PC = PC+1; fetch; jmpc 0X000
Nop 0x000 donothing; goto main1
Load1 0x001 set PC = PC+1
0x040 set H = MBR sll8; fetch
0x041 set PC = PC+1
0x042 set MAR = H or MBRU; fetch; read
0x043 set PC = PC+1
0x044 set RS = MDR; fetch
0x045 donothing; goto main1
Loadm1 0x002 set PC = PC+1
0x046 set H = MBR sll8; fetch
0x047 set PC = PC+1
0x048 set H = H + MBRU; fetch
0x049 set PC = PC+1
0x04A set RS = H; fetch
0x04B donothing; goto main1
Add1 0x00B set PC = PC+1
0x04C set H = RS; fetch
0X04D set PC = PC+1
0X04E set RS = H+RS; fetch
0X04F donothing; goto main1
Push1 0X011 set PC = PC+1
0X050 set MDR = RS; fetch
0X051 set MAR = SP; write
0X052 set SP = SP+1
0X053 set SP = SP+1; goto main1
Pop1 0X012 set SP = SP-1
0X054 set SP = SP-1; read
0X055 set PC = PC+1
0X056 set RS = MDR; fetch
0X057 donothing; goto main1
Jmp1 0X016 set PC = PC+1
0X058 set H = MBR sll8; fetch
0X059 Donothing
0X05A set PC = H + MBRU; fetch
0X05B donothing; goto main1
Svc1 0X03F set PC = PC+1
0X05C set H = MBR sll8; fetch
0X05D set PC = PC+1
0X05E set T1 = H + MBRU; fetch
0X05F set T2 = SP-1
0X060 set MAR = T2-1; read
0X061 Donothing
0X062 set T2 = MDR
0X063 svc; goto main1
MAR
MDR
PC 0x0000
MBR
SP F800
T1 0000
T2 0000
T3 0000
T4 0000
R0 0000
R1 0000
R2 0000
R3 0000
R4 0000
R5 0000
R6 0000
R7 0000
H 0000
BBus Memory CBus ALU/shift JAM Next Addr
PC FETCH PC B Bus+1 0x000
A BUS
ALU
SHIFT
PC = PC +1
PC
= 0x0
00
0
PC
= 0
x00
01
C BUS B BUS
CYCLE 00
MAIN MEMORY ADDRESS CONTENT
CO
DE
AR
EA
0x0000 NOP (00)
0x0001 LOAD (01)
0x0002 00
0x0003 1C
0x0004 R1 (01)
Ox0005 LOADM (02)
0X0006 00
0X0007 01
0X0008 R2
0X0009 ADD (0B)
0X000A R2 (02)
0X000B R1 (01)
0X000C PUSH (11)
0X000D R1 (01)
0X000E SVC (3F)
0X000F 00
0X0010 03
0X0011 POP (12)
0X0012 R1 (01)
0X0013 LOADM (02)
0X0014 00
0X0015 00
0X0016 01
0X0017 PUSH (11)
0X0018 R1 (01)
0X0019 SVC (3F)
0X001A 00
0X001B 01
DA
TA
AR
EA
0X001C 00
0X001D 01
.
.
.
STA
CK
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
CONTROL MEMORY Address Content
Main1 0x100 set PC = PC+1; fetch; jmpc 0X000
Nop 0x000 donothing; goto main1
Load1 0x001 set PC = PC+1
0x040 set H = MBR sll8; fetch
0x041 set PC = PC+1
0x042 set MAR = H or MBRU; fetch; read
0x043 set PC = PC+1
0x044 set RS = MDR; fetch
0x045 donothing; goto main1
Loadm1 0x002 set PC = PC+1
0x046 set H = MBR sll8; fetch
0x047 set PC = PC+1
0x048 set H = H + MBRU; fetch
0x049 set PC = PC+1
0x04A set RS = H; fetch
0x04B donothing; goto main1
Add1 0x00B set PC = PC+1
0x04C set H = RS; fetch
0X04D set PC = PC+1
0X04E set RS = H+RS; fetch
0X04F donothing; goto main1
Push1 0X011 set PC = PC+1
0X050 set MDR = RS; fetch
0X051 set MAR = SP; write
0X052 set SP = SP+1
0X053 set SP = SP+1; goto main1
Pop1 0X012 set SP = SP-1
0X054 set SP = SP-1; read
0X055 set PC = PC+1
0X056 set RS = MDR; fetch
0X057 donothing; goto main1
Jmp1 0X016 set PC = PC+1
0X058 set H = MBR sll8; fetch
0X059 Donothing
0X05A set PC = H + MBRU; fetch
0X05B donothing; goto main1
Svc1 0X03F set PC = PC+1
0X05C set H = MBR sll8; fetch
0X05D set PC = PC+1
0X05E set T1 = H + MBRU; fetch
0X05F set T2 = SP-1
0X060 set MAR = T2-1; read
0X061 Donothing
0X062 set T2 = MDR
0X063 svc; goto main1
MAR
MDR
PC 0x0001
MBR LOAD
SP F800
T1 0000
T2 0000
T3 0000
T4 0000
R0 0000
R1 0000
R2 0000
R3 0000
R4 0000
R5 0000
R6 0000
R7 0000
H 0000
BBus Memory CBus ALU/shift JAM Next Addr
0x100
A BUS
LOAD
0x0001
ALU
SHIFT
C BUS B BUS
CYCLE 01
MAIN MEMORY ADDRESS CONTENT
CO
DE
AR
EA
0x0000 NOP (00)
0x0001 LOAD (01)
0x0002 00
0x0003 1C
0x0004 R1 (01)
Ox0005 LOADM (02)
0X0006 00
0X0007 01
0X0008 R2
0X0009 ADD (0B)
0X000A R2 (02)
0X000B R1 (01)
0X000C PUSH (11)
0X000D R1 (01)
0X000E SVC (3F)
0X000F 00
0X0010 03
0X0011 POP (12)
0X0012 R1 (01)
0X0013 LOADM (02)
0X0014 00
0X0015 00
0X0016 01
0X0017 PUSH (11)
0X0018 R1 (01)
0X0019 SVC (3F)
0X001A 00
0X001B 01
DA
TA
AR
EA
0X001C 00
0X001D 01
.
.
.
STA
CK
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
CONTROL MEMORY Address Content
Main1 0x100 set PC = PC+1; fetch; jmpc 0X000
Nop 0x000 donothing; goto main1
Load1 0x001 set PC = PC+1
0x040 set H = MBR sll8; fetch
0x041 set PC = PC+1
0x042 set MAR = H or MBRU; fetch; read
0x043 set PC = PC+1
0x044 set RS = MDR; fetch
0x045 donothing; goto main1
Loadm1 0x002 set PC = PC+1
0x046 set H = MBR sll8; fetch
0x047 set PC = PC+1
0x048 set H = H + MBRU; fetch
0x049 set PC = PC+1
0x04A set RS = H; fetch
0x04B donothing; goto main1
Add1 0x00B set PC = PC+1
0x04C set H = RS; fetch
0X04D set PC = PC+1
0X04E set RS = H+RS; fetch
0X04F donothing; goto main1
Push1 0X011 set PC = PC+1
0X050 set MDR = RS; fetch
0X051 set MAR = SP; write
0X052 set SP = SP+1
0X053 set SP = SP+1; goto main1
Pop1 0X012 set SP = SP-1
0X054 set SP = SP-1; read
0X055 set PC = PC+1
0X056 set RS = MDR; fetch
0X057 donothing; goto main1
Jmp1 0X016 set PC = PC+1
0X058 set H = MBR sll8; fetch
0X059 Donothing
0X05A set PC = H + MBRU; fetch
0X05B donothing; goto main1
Svc1 0X03F set PC = PC+1
0X05C set H = MBR sll8; fetch
0X05D set PC = PC+1
0X05E set T1 = H + MBRU; fetch
0X05F set T2 = SP-1
0X060 set MAR = T2-1; read
0X061 Donothing
0X062 set T2 = MDR
0X063 svc; goto main1
MAR
MDR
PC 0x0001
MBR LOAD
SP F800
T1 0000
T2 0000
T3 0000
T4 0000
R0 0000
R1 0000
R2 0000
R3 0000
R4 0000
R5 0000
R6 0000
R7 0000
H 0000
BBus Memory CBus ALU/shift JAM Next Addr
PC FETCH PC B Bus+1 0x001
A BUS
ALU
SHIFT
PC = PC +1
PC
= 0x0
00
1
PC
= 0
x00
02
C BUS B BUS
CYCLE 02
MAIN MEMORY ADDRESS CONTENT
CO
DE
AR
EA
0x0000 NOP (00)
0x0001 LOAD (01)
0x0002 00
0x0003 1C
0x0004 R1 (01)
Ox0005 LOADM (02)
0X0006 00
0X0007 01
0X0008 R2
0X0009 ADD (0B)
0X000A R2 (02)
0X000B R1 (01)
0X000C PUSH (11)
0X000D R1 (01)
0X000E SVC (3F)
0X000F 00
0X0010 03
0X0011 POP (12)
0X0012 R1 (01)
0X0013 LOADM (02)
0X0014 00
0X0015 00
0X0016 01
0X0017 PUSH (11)
0X0018 R1 (01)
0X0019 SVC (3F)
0X001A 00
0X001B 01
DA
TA
AR
EA
0X001C 00
0X001D 01
.
.
.
STA
CK
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
CONTROL MEMORY Address Content
Main1 0x100 set PC = PC+1; fetch; jmpc 0X000
Nop 0x000 donothing; goto main1
Load1 0x001 set PC = PC+1
0x040 set H = MBR sll8; fetch
0x041 set PC = PC+1
0x042 set MAR = H or MBRU; fetch; read
0x043 set PC = PC+1
0x044 set RS = MDR; fetch
0x045 donothing; goto main1
Loadm1 0x002 set PC = PC+1
0x046 set H = MBR sll8; fetch
0x047 set PC = PC+1
0x048 set H = H + MBRU; fetch
0x049 set PC = PC+1
0x04A set RS = H; fetch
0x04B donothing; goto main1
Add1 0x00B set PC = PC+1
0x04C set H = RS; fetch
0X04D set PC = PC+1
0X04E set RS = H+RS; fetch
0X04F donothing; goto main1
Push1 0X011 set PC = PC+1
0X050 set MDR = RS; fetch
0X051 set MAR = SP; write
0X052 set SP = SP+1
0X053 set SP = SP+1; goto main1
Pop1 0X012 set SP = SP-1
0X054 set SP = SP-1; read
0X055 set PC = PC+1
0X056 set RS = MDR; fetch
0X057 donothing; goto main1
Jmp1 0X016 set PC = PC+1
0X058 set H = MBR sll8; fetch
0X059 Donothing
0X05A set PC = H + MBRU; fetch
0X05B donothing; goto main1
Svc1 0X03F set PC = PC+1
0X05C set H = MBR sll8; fetch
0X05D set PC = PC+1
0X05E set T1 = H + MBRU; fetch
0X05F set T2 = SP-1
0X060 set MAR = T2-1; read
0X061 Donothing
0X062 set T2 = MDR
0X063 svc; goto main1
MAR
MDR
PC 0x0002
MBR 00
SP F800
T1 0000
T2 0000
T3 0000
T4 0000
R0 0000
R1 0000
R2 0000
R3 0000
R4 0000
R5 0000
R6 0000
R7 0000
H 0000
BBus Memory CBus ALU/shift JAM Next Addr
PC PC B BUS+1 0x040
A BUS
00
0x0002
ALU
SHIFT
PC = PC+1
PC
= 0X
00
02
PC
= 0
X0
00
3
C BUS B BUS
CYCLE 03
MAIN MEMORY ADDRESS CONTENT
CO
DE
AR
EA
0x0000 NOP (00)
0x0001 LOAD (01)
0x0002 00
0x0003 1C
0x0004 R1 (01)
Ox0005 LOADM (02)
0X0006 00
0X0007 01
0X0008 R2
0X0009 ADD (0B)
0X000A R2 (02)
0X000B R1 (01)
0X000C PUSH (11)
0X000D R1 (01)
0X000E SVC (3F)
0X000F 00
0X0010 03
0X0011 POP (12)
0X0012 R1 (01)
0X0013 LOADM (02)
0X0014 00
0X0015 00
0X0016 01
0X0017 PUSH (11)
0X0018 R1 (01)
0X0019 SVC (3F)
0X001A 00
0X001B 01
DA
TA
AR
EA
0X001C 00
0X001D 01
.
.
.
STA
CK
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
CONTROL MEMORY Address Content
Main1 0x100 set PC = PC+1; fetch; jmpc 0X000
Nop 0x000 donothing; goto main1
Load1 0x001 set PC = PC+1
0x040 set H = MBR sll8; fetch
0x041 set PC = PC+1
0x042 set MAR = H or MBRU; fetch; read
0x043 set PC = PC+1
0x044 set RS = MDR; fetch
0x045 donothing; goto main1
Loadm1 0x002 set PC = PC+1
0x046 set H = MBR sll8; fetch
0x047 set PC = PC+1
0x048 set H = H + MBRU; fetch
0x049 set PC = PC+1
0x04A set RS = H; fetch
0x04B donothing; goto main1
Add1 0x00B set PC = PC+1
0x04C set H = RS; fetch
0X04D set PC = PC+1
0X04E set RS = H+RS; fetch
0X04F donothing; goto main1
Push1 0X011 set PC = PC+1
0X050 set MDR = RS; fetch
0X051 set MAR = SP; write
0X052 set SP = SP+1
0X053 set SP = SP+1; goto main1
Pop1 0X012 set SP = SP-1
0X054 set SP = SP-1; read
0X055 set PC = PC+1
0X056 set RS = MDR; fetch
0X057 donothing; goto main1
Jmp1 0X016 set PC = PC+1
0X058 set H = MBR sll8; fetch
0X059 Donothing
0X05A set PC = H + MBRU; fetch
0X05B donothing; goto main1
Svc1 0X03F set PC = PC+1
0X05C set H = MBR sll8; fetch
0X05D set PC = PC+1
0X05E set T1 = H + MBRU; fetch
0X05F set T2 = SP-1
0X060 set MAR = T2-1; read
0X061 Donothing
0X062 set T2 = MDR
0X063 svc; goto main1
MAR
MDR
PC 0x0003
MBR 00
SP F800
T1 0000
T2 0000
T3 0000
T4 0000
R0 0000
R1 0000
R2 0000
R3 0000
R4 0000
R5 0000
R6 0000
R7 0000
H 0000
BBus Memory CBus ALU/shift JAM Next Addr
MBR FETCH H SLL8 0x041
A BUS
ALU
SHIFT SLL8
H = MBR SLL8
MB
R = 0
0
H =
00
00
C BUS B BUS
CYCLE 04
MAIN MEMORY ADDRESS CONTENT
CO
DE
AR
EA
0x0000 NOP (00)
0x0001 LOAD (01)
0x0002 00
0x0003 1C
0x0004 R1 (01)
Ox0005 LOADM (02)
0X0006 00
0X0007 01
0X0008 R2
0X0009 ADD (0B)
0X000A R2 (02)
0X000B R1 (01)
0X000C PUSH (11)
0X000D R1 (01)
0X000E SVC (3F)
0X000F 00
0X0010 03
0X0011 POP (12)
0X0012 R1 (01)
0X0013 LOADM (02)
0X0014 00
0X0015 00
0X0016 01
0X0017 PUSH (11)
0X0018 R1 (01)
0X0019 SVC (3F)
0X001A 00
0X001B 01
DA
TA
AR
EA
0X001C 00
0X001D 01
.
.
.
STA
CK
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
CONTROL MEMORY Address Content
Main1 0x100 set PC = PC+1; fetch; jmpc 0X000
Nop 0x000 donothing; goto main1
Load1 0x001 set PC = PC+1
0x040 set H = MBR sll8; fetch
0x041 set PC = PC+1
0x042 set MAR = H or MBRU; fetch; read
0x043 set PC = PC+1
0x044 set RS = MDR; fetch
0x045 donothing; goto main1
Loadm1 0x002 set PC = PC+1
0x046 set H = MBR sll8; fetch
0x047 set PC = PC+1
0x048 set H = H + MBRU; fetch
0x049 set PC = PC+1
0x04A set RS = H; fetch
0x04B donothing; goto main1
Add1 0x00B set PC = PC+1
0x04C set H = RS; fetch
0X04D set PC = PC+1
0X04E set RS = H+RS; fetch
0X04F donothing; goto main1
Push1 0X011 set PC = PC+1
0X050 set MDR = RS; fetch
0X051 set MAR = SP; write
0X052 set SP = SP+1
0X053 set SP = SP+1; goto main1
Pop1 0X012 set SP = SP-1
0X054 set SP = SP-1; read
0X055 set PC = PC+1
0X056 set RS = MDR; fetch
0X057 donothing; goto main1
Jmp1 0X016 set PC = PC+1
0X058 set H = MBR sll8; fetch
0X059 Donothing
0X05A set PC = H + MBRU; fetch
0X05B donothing; goto main1
Svc1 0X03F set PC = PC+1
0X05C set H = MBR sll8; fetch
0X05D set PC = PC+1
0X05E set T1 = H + MBRU; fetch
0X05F set T2 = SP-1
0X060 set MAR = T2-1; read
0X061 Donothing
0X062 set T2 = MDR
0X063 svc; goto main1
MAR
MDR
PC 0x0003
MBR 1C
SP F800
T1 0000
T2 0000
T3 0000
T4 0000
R0 0000
R1 0000
R2 0000
R3 0000
R4 0000
R5 0000
R6 0000
R7 0000
H 0000
BBus Memory CBus ALU/shift JAM Next Addr
PC PC B BUS+1 0x042
A BUS
1C
0x0003
ALU
SHIFT
PC = PC+1
PC
= 0X
00
03
PC
= 0
X0
00
4
C BUS B BUS
CYCLE 05
MAIN MEMORY ADDRESS CONTENT
CO
DE
AR
EA
0x0000 NOP (00)
0x0001 LOAD (01)
0x0002 00
0x0003 1C
0x0004 R1 (01)
Ox0005 LOADM (02)
0X0006 00
0X0007 01
0X0008 R2
0X0009 ADD (0B)
0X000A R2 (02)
0X000B R1 (01)
0X000C PUSH (11)
0X000D R1 (01)
0X000E SVC (3F)
0X000F 00
0X0010 03
0X0011 POP (12)
0X0012 R1 (01)
0X0013 LOADM (02)
0X0014 00
0X0015 00
0X0016 01
0X0017 PUSH (11)
0X0018 R1 (01)
0X0019 SVC (3F)
0X001A 00
0X001B 01
DA
TA
AR
EA
0X001C 00
0X001D 01
.
.
.
STA
CK
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
CONTROL MEMORY Address Content
Main1 0x100 set PC = PC+1; fetch; jmpc 0X000
Nop 0x000 donothing; goto main1
Load1 0x001 set PC = PC+1
0x040 set H = MBR sll8; fetch
0x041 set PC = PC+1
0x042 set MAR = H or MBRU; fetch; read
0x043 set PC = PC+1
0x044 set RS = MDR; fetch
0x045 donothing; goto main1
Loadm1 0x002 set PC = PC+1
0x046 set H = MBR sll8; fetch
0x047 set PC = PC+1
0x048 set H = H + MBRU; fetch
0x049 set PC = PC+1
0x04A set RS = H; fetch
0x04B donothing; goto main1
Add1 0x00B set PC = PC+1
0x04C set H = RS; fetch
0X04D set PC = PC+1
0X04E set RS = H+RS; fetch
0X04F donothing; goto main1
Push1 0X011 set PC = PC+1
0X050 set MDR = RS; fetch
0X051 set MAR = SP; write
0X052 set SP = SP+1
0X053 set SP = SP+1; goto main1
Pop1 0X012 set SP = SP-1
0X054 set SP = SP-1; read
0X055 set PC = PC+1
0X056 set RS = MDR; fetch
0X057 donothing; goto main1
Jmp1 0X016 set PC = PC+1
0X058 set H = MBR sll8; fetch
0X059 Donothing
0X05A set PC = H + MBRU; fetch
0X05B donothing; goto main1
Svc1 0X03F set PC = PC+1
0X05C set H = MBR sll8; fetch
0X05D set PC = PC+1
0X05E set T1 = H + MBRU; fetch
0X05F set T2 = SP-1
0X060 set MAR = T2-1; read
0X061 Donothing
0X062 set T2 = MDR
0X063 svc; goto main1
MAR 001C
MDR
PC 0x0004
MBR 1C
SP F800
T1 0000
T2 0000
T3 0000
T4 0000
R0 0000
R1 0000
R2 0000
R3 0000
R4 0000
R5 0000
R6 0000
R7 0000
H 0000
BBus Memory CBus ALU/shift JAM Next Addr
MBR FETCH,READ MAR H + MBR 0x043
A BUS
ALU
SHIFT
MAR = H + MBR
MB
R = 1
C
MA
R =
00
1C
C BUS B BUS
CYCLE 06
MAIN MEMORY ADDRESS CONTENT
CO
DE
AR
EA
0x0000 NOP (00)
0x0001 LOAD (01)
0x0002 00
0x0003 1C
0x0004 R1 (01)
Ox0005 LOADM (02)
0X0006 00
0X0007 01
0X0008 R2
0X0009 ADD (0B)
0X000A R2 (02)
0X000B R1 (01)
0X000C PUSH (11)
0X000D R1 (01)
0X000E SVC (3F)
0X000F 00
0X0010 03
0X0011 POP (12)
0X0012 R1 (01)
0X0013 LOADM (02)
0X0014 00
0X0015 00
0X0016 01
0X0017 PUSH (11)
0X0018 R1 (01)
0X0019 SVC (3F)
0X001A 00
0X001B 01
DA
TA
AR
EA
0X001C 00
0X001D 01
.
.
.
STA
CK
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
CONTROL MEMORY Address Content
Main1 0x100 set PC = PC+1; fetch; jmpc 0X000
Nop 0x000 donothing; goto main1
Load1 0x001 set PC = PC+1
0x040 set H = MBR sll8; fetch
0x041 set PC = PC+1
0x042 set MAR = H or MBRU; fetch; read
0x043 set PC = PC+1
0x044 set RS = MDR; fetch
0x045 donothing; goto main1
Loadm1 0x002 set PC = PC+1
0x046 set H = MBR sll8; fetch
0x047 set PC = PC+1
0x048 set H = H + MBRU; fetch
0x049 set PC = PC+1
0x04A set RS = H; fetch
0x04B donothing; goto main1
Add1 0x00B set PC = PC+1
0x04C set H = RS; fetch
0X04D set PC = PC+1
0X04E set RS = H+RS; fetch
0X04F donothing; goto main1
Push1 0X011 set PC = PC+1
0X050 set MDR = RS; fetch
0X051 set MAR = SP; write
0X052 set SP = SP+1
0X053 set SP = SP+1; goto main1
Pop1 0X012 set SP = SP-1
0X054 set SP = SP-1; read
0X055 set PC = PC+1
0X056 set RS = MDR; fetch
0X057 donothing; goto main1
Jmp1 0X016 set PC = PC+1
0X058 set H = MBR sll8; fetch
0X059 Donothing
0X05A set PC = H + MBRU; fetch
0X05B donothing; goto main1
Svc1 0X03F set PC = PC+1
0X05C set H = MBR sll8; fetch
0X05D set PC = PC+1
0X05E set T1 = H + MBRU; fetch
0X05F set T2 = SP-1
0X060 set MAR = T2-1; read
0X061 Donothing
0X062 set T2 = MDR
0X063 svc; goto main1
MAR 001C
MDR 0001
PC 0x0004
MBR R1
SP F800
T1 0000
T2 0000
T3 0000
T4 0000
R0 0000
R1 0000
R2 0000
R3 0000
R4 0000
R5 0000
R6 0000
R7 0000
H 0000
BBus Memory CBus ALU/shift JAM Next Addr
PC PC B BUS+1 0x044
MAR = 001C
MD
R =
00
01
A BUS
R1
0X0004
ALU
SHIFT
PC = PC+1
PC
= 0X
00
04
PC
= 0
X0
00
5
C BUS B BUS
CYCLE 07
MAIN MEMORY ADDRESS CONTENT
CO
DE
AR
EA
0x0000 NOP (00)
0x0001 LOAD (01)
0x0002 00
0x0003 1C
0x0004 R1 (01)
Ox0005 LOADM (02)
0X0006 00
0X0007 01
0X0008 R2
0X0009 ADD (0B)
0X000A R2 (02)
0X000B R1 (01)
0X000C PUSH (11)
0X000D R1 (01)
0X000E SVC (3F)
0X000F 00
0X0010 03
0X0011 POP (12)
0X0012 R1 (01)
0X0013 LOADM (02)
0X0014 00
0X0015 00
0X0016 01
0X0017 PUSH (11)
0X0018 R1 (01)
0X0019 SVC (3F)
0X001A 00
0X001B 01
DA
TA
AR
EA
0X001C 00
0X001D 01
.
.
.
STA
CK
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
CONTROL MEMORY Address Content
Main1 0x100 set PC = PC+1; fetch; jmpc 0X000
Nop 0x000 donothing; goto main1
Load1 0x001 set PC = PC+1
0x040 set H = MBR sll8; fetch
0x041 set PC = PC+1
0x042 set MAR = H or MBRU; fetch; read
0x043 set PC = PC+1
0x044 set RS = MDR; fetch
0x045 donothing; goto main1
Loadm1 0x002 set PC = PC+1
0x046 set H = MBR sll8; fetch
0x047 set PC = PC+1
0x048 set H = H + MBRU; fetch
0x049 set PC = PC+1
0x04A set RS = H; fetch
0x04B donothing; goto main1
Add1 0x00B set PC = PC+1
0x04C set H = RS; fetch
0X04D set PC = PC+1
0X04E set RS = H+RS; fetch
0X04F donothing; goto main1
Push1 0X011 set PC = PC+1
0X050 set MDR = RS; fetch
0X051 set MAR = SP; write
0X052 set SP = SP+1
0X053 set SP = SP+1; goto main1
Pop1 0X012 set SP = SP-1
0X054 set SP = SP-1; read
0X055 set PC = PC+1
0X056 set RS = MDR; fetch
0X057 donothing; goto main1
Jmp1 0X016 set PC = PC+1
0X058 set H = MBR sll8; fetch
0X059 Donothing
0X05A set PC = H + MBRU; fetch
0X05B donothing; goto main1
Svc1 0X03F set PC = PC+1
0X05C set H = MBR sll8; fetch
0X05D set PC = PC+1
0X05E set T1 = H + MBRU; fetch
0X05F set T2 = SP-1
0X060 set MAR = T2-1; read
0X061 Donothing
0X062 set T2 = MDR
0X063 svc; goto main1
MAR 001C
MDR 0001
PC 0x0005
MBR R1
SP F800
T1 0000
T2 0000
T3 0000
T4 0000
R0 0000
R1 0001
R2 0000
R3 0000
R4 0000
R5 0000
R6 0000
R7 0000
H 0000
BBus Memory CBus ALU/shift JAM Next Addr
MDR FETCH R1 B BUS 0x045
A BUS
ALU
SHIFT
R1 = MDR
MD
R = 0
00
1
R1
= 0
00
1
C BUS B BUS
CYCLE 08
MAIN MEMORY ADDRESS CONTENT
CO
DE
AR
EA
0x0000 NOP (00)
0x0001 LOAD (01)
0x0002 00
0x0003 1C
0x0004 R1 (01)
Ox0005 LOADM (02)
0X0006 00
0X0007 01
0X0008 R2
0X0009 ADD (0B)
0X000A R2 (02)
0X000B R1 (01)
0X000C PUSH (11)
0X000D R1 (01)
0X000E SVC (3F)
0X000F 00
0X0010 03
0X0011 POP (12)
0X0012 R1 (01)
0X0013 LOADM (02)
0X0014 00
0X0015 00
0X0016 01
0X0017 PUSH (11)
0X0018 R1 (01)
0X0019 SVC (3F)
0X001A 00
0X001B 01
DA
TA
AR
EA
0X001C 00
0X001D 01
.
.
.
STA
CK
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
CONTROL MEMORY Address Content
Main1 0x100 set PC = PC+1; fetch; jmpc 0X000
Nop 0x000 donothing; goto main1
Load1 0x001 set PC = PC+1
0x040 set H = MBR sll8; fetch
0x041 set PC = PC+1
0x042 set MAR = H or MBRU; fetch; read
0x043 set PC = PC+1
0x044 set RS = MDR; fetch
0x045 donothing; goto main1
Loadm1 0x002 set PC = PC+1
0x046 set H = MBR sll8; fetch
0x047 set PC = PC+1
0x048 set H = H + MBRU; fetch
0x049 set PC = PC+1
0x04A set RS = H; fetch
0x04B donothing; goto main1
Add1 0x00B set PC = PC+1
0x04C set H = RS; fetch
0X04D set PC = PC+1
0X04E set RS = H+RS; fetch
0X04F donothing; goto main1
Push1 0X011 set PC = PC+1
0X050 set MDR = RS; fetch
0X051 set MAR = SP; write
0X052 set SP = SP+1
0X053 set SP = SP+1; goto main1
Pop1 0X012 set SP = SP-1
0X054 set SP = SP-1; read
0X055 set PC = PC+1
0X056 set RS = MDR; fetch
0X057 donothing; goto main1
Jmp1 0X016 set PC = PC+1
0X058 set H = MBR sll8; fetch
0X059 Donothing
0X05A set PC = H + MBRU; fetch
0X05B donothing; goto main1
Svc1 0X03F set PC = PC+1
0X05C set H = MBR sll8; fetch
0X05D set PC = PC+1
0X05E set T1 = H + MBRU; fetch
0X05F set T2 = SP-1
0X060 set MAR = T2-1; read
0X061 Donothing
0X062 set T2 = MDR
0X063 svc; goto main1
MAR 001C
MDR 0001
PC 0x0005
MBR 02
SP F800
T1 0000
T2 0000
T3 0000
T4 0000
R0 0000
R1 0001
R2 0000
R3 0000
R4 0000
R5 0000
R6 0000
R7 0000
H 0000
BBus Memory CBus ALU/shift JAM Next Addr
0x100
A BUS
LOADM
0X0005
ALU
SHIFT
PC = PC+1
C BUS B BUS
CYCLE 09