Professional Documents
Culture Documents
CONTENT
NOP (00)
LOAD (01)
00
1C
R1 (01)
LOADM (02)
00
01
R2
ADD (0B)
R2 (02)
R1 (01)
PUSH (11)
R1 (01)
SVC (3F)
00
03
POP (12)
R1 (01)
LOADM (02)
00
00
01
PUSH (11)
R1 (01)
SVC (3F)
00
01
00
01
.
.
.
AREA
STACK DATA
CODE AREA
ADDRESS
0x0000
0x0001
0x0002
0x0003
0x0004
Ox0005
0X0006
0X0007
0X0008
0X0009
0X000A
0X000B
0X000C
0X000D
0X000E
0X000F
0X0010
0X0011
0X0012
0X0013
0X0014
0X0015
0X0016
0X0017
0X0018
0X0019
0X001A
0X001B
0X001C
0X001D
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
CONTROL MEMORY
Main1
Nop
Load1
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
0000
ALU
SHIFT
Address
0x100
0x000
0x001
0x040
0x041
0x042
0x043
0x044
0x045
Loadm1 0x002
0x046
0x047
0x048
0x049
0x04A
0x04B
Add1
0x00B
0x04C
0X04D
0X04E
0X04F
Push1
0X011
0X050
0X051
0X052
0X053
Pop1
0X012
0X054
0X055
0X056
0X057
Jmp1
0X016
0X058
0X059
0X05A
0X05B
Svc1
0X03F
0X05C
0X05D
0X05E
0X05F
0X060
0X061
0X062
0X063
BBus
Content
set PC = PC+1; fetch; jmpc 0X000
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set MAR = H or MBRU; fetch;
read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set H = H + MBRU; fetch
set PC = PC+1
set RS = H; fetch
donothing; goto main1
set PC = PC+1
set H = RS; fetch
set PC = PC+1
set RS = H+RS; fetch
donothing; goto main1
set PC = PC+1
set MDR = RS; fetch
set MAR = SP; write
set SP = SP+1
set SP = SP+1; goto main1
set SP = SP-1
set SP = SP-1; read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
Donothing
set PC = H + MBRU; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set T1 = H + MBRU; fetch
set T2 = SP-1
set MAR = T2-1; read
Donothing
set T2 = MDR
svc; goto main1
Memory CBus
ALU/shift JAM
Next
Addr
CYCLE 00
MAIN MEMORY
.
.
.
AREA
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
CONTROL MEMORY
B BUS
C BUS
Main1
Nop
Load1
MAR
MDR
PC
0x0000
MBR
SP
PC = 0x0001
CODE AREA
STACK DATA
CONTENT
NOP (00)
LOAD (01)
00
1C
R1 (01)
LOADM (02)
00
01
R2
ADD (0B)
R2 (02)
R1 (01)
PUSH (11)
R1 (01)
SVC (3F)
00
03
POP (12)
R1 (01)
LOADM (02)
00
00
01
PUSH (11)
R1 (01)
SVC (3F)
00
01
00
01
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
0000
PC = 0x0000
ADDRESS
0x0000
0x0001
0x0002
0x0003
0x0004
Ox0005
0X0006
0X0007
0X0008
0X0009
0X000A
0X000B
0X000C
0X000D
0X000E
0X000F
0X0010
0X0011
0X0012
0X0013
0X0014
0X0015
0X0016
0X0017
0X0018
0X0019
0X001A
0X001B
0X001C
0X001D
A BUS
PC = PC +1
ALU
Address
0x100
0x000
0x001
0x040
0x041
0x042
0x043
0x044
0x045
Loadm1 0x002
0x046
0x047
0x048
0x049
0x04A
0x04B
Add1
0x00B
0x04C
0X04D
0X04E
0X04F
Push1
0X011
0X050
0X051
0X052
0X053
Pop1
0X012
0X054
0X055
0X056
0X057
Jmp1
0X016
0X058
0X059
0X05A
0X05B
Svc1
0X03F
0X05C
0X05D
0X05E
0X05F
0X060
0X061
0X062
0X063
Content
set PC = PC+1; fetch; jmpc 0X000
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set MAR = H or MBRU; fetch;
read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set H = H + MBRU; fetch
set PC = PC+1
set RS = H; fetch
donothing; goto main1
set PC = PC+1
set H = RS; fetch
set PC = PC+1
set RS = H+RS; fetch
donothing; goto main1
set PC = PC+1
set MDR = RS; fetch
set MAR = SP; write
set SP = SP+1
set SP = SP+1; goto main1
set SP = SP-1
set SP = SP-1; read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
Donothing
set PC = H + MBRU; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set T1 = H + MBRU; fetch
set T2 = SP-1
set MAR = T2-1; read
Donothing
set T2 = MDR
svc; goto main1
BBus
Memory CBus
ALU/shift JAM
PC
FETCH
B Bus+1
SHIFT
PC
Next
Addr
0x000
CYCLE 01
MAIN MEMORY
CONTENT
NOP (00)
LOAD (01)
00
1C
R1 (01)
LOADM (02)
00
01
R2
ADD (0B)
R2 (02)
R1 (01)
PUSH (11)
R1 (01)
SVC (3F)
00
03
POP (12)
R1 (01)
LOADM (02)
00
00
01
PUSH (11)
R1 (01)
SVC (3F)
00
01
00
01
.
.
.
AREA
STACK DATA
CODE AREA
ADDRESS
0x0000
0x0001
0x0002
0x0003
0x0004
Ox0005
0X0006
0X0007
0X0008
0X0009
0X000A
0X000B
0X000C
0X000D
0X000E
0X000F
0X0010
0X0011
0X0012
0X0013
0X0014
0X0015
0X0016
0X0017
0X0018
0X0019
0X001A
0X001B
0X001C
0X001D
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
CONTROL MEMORY
B BUS
C BUS
Main1
Nop
Load1
MAR
MDR
0x0001
PC
LOAD
MBR
0x0001
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
0000
A BUS
ALU
0x043
0x044
0x045
Loadm1 0x002
0x046
0x047
0x048
0x049
0x04A
0x04B
Add1
0x00B
0x04C
0X04D
0X04E
0X04F
Push1
0X011
0X050
0X051
0X052
0X053
Pop1
0X012
0X054
0X055
0X056
0X057
Jmp1
0X016
0X058
0X059
0X05A
0X05B
Svc1
0X03F
0X05C
0X05D
0X05E
0X05F
0X060
0X061
0X062
0X063
BBus
SHIFT
Address
0x100
0x000
0x001
0x040
0x041
0x042
Content
set PC = PC+1; fetch; jmpc 0X000
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set MAR = H or MBRU; fetch;
read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set H = H + MBRU; fetch
set PC = PC+1
set RS = H; fetch
donothing; goto main1
set PC = PC+1
set H = RS; fetch
set PC = PC+1
set RS = H+RS; fetch
donothing; goto main1
set PC = PC+1
set MDR = RS; fetch
set MAR = SP; write
set SP = SP+1
set SP = SP+1; goto main1
set SP = SP-1
set SP = SP-1; read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
Donothing
set PC = H + MBRU; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set T1 = H + MBRU; fetch
set T2 = SP-1
set MAR = T2-1; read
Donothing
set T2 = MDR
svc; goto main1
Memory CBus
ALU/shift JAM
Next
Addr
0x100
CYCLE 02
MAIN MEMORY
.
.
.
AREA
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
CONTROL MEMORY
B BUS
C BUS
Main1
Nop
Load1
MAR
MDR
PC
0x0001
MBR
PC = 0x0002
CODE AREA
STACK DATA
CONTENT
NOP (00)
LOAD (01)
00
1C
R1 (01)
LOADM (02)
00
01
R2
ADD (0B)
R2 (02)
R1 (01)
PUSH (11)
R1 (01)
SVC (3F)
00
03
POP (12)
R1 (01)
LOADM (02)
00
00
01
PUSH (11)
R1 (01)
SVC (3F)
00
01
00
01
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
0000
PC = 0x0001
ADDRESS
0x0000
0x0001
0x0002
0x0003
0x0004
Ox0005
0X0006
0X0007
0X0008
0X0009
0X000A
0X000B
0X000C
0X000D
0X000E
0X000F
0X0010
0X0011
0X0012
0X0013
0X0014
0X0015
0X0016
0X0017
0X0018
0X0019
0X001A
0X001B
0X001C
0X001D
A BUS
PC = PC +1
ALU
Address
0x100
0x000
0x001
0x040
0x041
0x042
0x043
0x044
0x045
Loadm1 0x002
0x046
0x047
0x048
0x049
0x04A
0x04B
Add1
0x00B
0x04C
0X04D
0X04E
0X04F
Push1
0X011
0X050
0X051
0X052
0X053
Pop1
0X012
0X054
0X055
0X056
0X057
Jmp1
0X016
0X058
0X059
0X05A
0X05B
Svc1
0X03F
0X05C
0X05D
0X05E
0X05F
0X060
0X061
0X062
0X063
Content
set PC = PC+1; fetch; jmpc 0X000
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set MAR = H or MBRU; fetch;
read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set H = H + MBRU; fetch
set PC = PC+1
set RS = H; fetch
donothing; goto main1
set PC = PC+1
set H = RS; fetch
set PC = PC+1
set RS = H+RS; fetch
donothing; goto main1
set PC = PC+1
set MDR = RS; fetch
set MAR = SP; write
set SP = SP+1
set SP = SP+1; goto main1
set SP = SP-1
set SP = SP-1; read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
Donothing
set PC = H + MBRU; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set T1 = H + MBRU; fetch
set T2 = SP-1
set MAR = T2-1; read
Donothing
set T2 = MDR
svc; goto main1
BBus
Memory CBus
ALU/shift JAM
PC
FETCH
B Bus+1
SHIFT
PC
Next
Addr
0x001
CYCLE 03
MAIN MEMORY
.
.
.
AREA
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
CONTROL MEMORY
B BUS
C BUS
Main1
Nop
Load1
MAR
MDR
0x0002
PC
00
MBR
PC = 0X0003
CODE AREA
STACK DATA
CONTENT
NOP (00)
LOAD (01)
00
1C
R1 (01)
LOADM (02)
00
01
R2
ADD (0B)
R2 (02)
R1 (01)
PUSH (11)
R1 (01)
SVC (3F)
00
03
POP (12)
R1 (01)
LOADM (02)
00
00
01
PUSH (11)
R1 (01)
SVC (3F)
00
01
00
01
0x0002
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
0000
PC = 0X0002
ADDRESS
0x0000
0x0001
0x0002
0x0003
0x0004
Ox0005
0X0006
0X0007
0X0008
0X0009
0X000A
0X000B
0X000C
0X000D
0X000E
0X000F
0X0010
0X0011
0X0012
0X0013
0X0014
0X0015
0X0016
0X0017
0X0018
0X0019
0X001A
0X001B
0X001C
0X001D
A BUS
PC = PC+1
ALU
Address
0x100
0x000
0x001
0x040
0x041
0x042
0x043
0x044
0x045
Loadm1 0x002
0x046
0x047
0x048
0x049
0x04A
0x04B
Add1
0x00B
0x04C
0X04D
0X04E
0X04F
Push1
0X011
0X050
0X051
0X052
0X053
Pop1
0X012
0X054
0X055
0X056
0X057
Jmp1
0X016
0X058
0X059
0X05A
0X05B
Svc1
0X03F
0X05C
0X05D
0X05E
0X05F
0X060
0X061
0X062
0X063
BBus
Content
set PC = PC+1; fetch; jmpc 0X000
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set MAR = H or MBRU; fetch;
read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set H = H + MBRU; fetch
set PC = PC+1
set RS = H; fetch
donothing; goto main1
set PC = PC+1
set H = RS; fetch
set PC = PC+1
set RS = H+RS; fetch
donothing; goto main1
set PC = PC+1
set MDR = RS; fetch
set MAR = SP; write
set SP = SP+1
set SP = SP+1; goto main1
set SP = SP-1
set SP = SP-1; read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
Donothing
set PC = H + MBRU; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set T1 = H + MBRU; fetch
set T2 = SP-1
set MAR = T2-1; read
Donothing
set T2 = MDR
svc; goto main1
Memory CBus
ALU/shift JAM
SHIFT
PC
PC
B BUS+1
Next
Addr
0x040
CYCLE 04
MAIN MEMORY
.
.
.
AREA
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
CONTROL MEMORY
B BUS
C BUS
Main1
Nop
Load1
MAR
MDR
PC
0x0003
MBR
H = 0000
CODE AREA
STACK DATA
CONTENT
NOP (00)
LOAD (01)
00
1C
R1 (01)
LOADM (02)
00
01
R2
ADD (0B)
R2 (02)
R1 (01)
PUSH (11)
R1 (01)
SVC (3F)
00
03
POP (12)
R1 (01)
LOADM (02)
00
00
01
PUSH (11)
R1 (01)
SVC (3F)
00
01
00
01
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
0000
MBR = 00
ADDRESS
0x0000
0x0001
0x0002
0x0003
0x0004
Ox0005
0X0006
0X0007
0X0008
0X0009
0X000A
0X000B
0X000C
0X000D
0X000E
0X000F
0X0010
0X0011
0X0012
0X0013
0X0014
0X0015
0X0016
0X0017
0X0018
0X0019
0X001A
0X001B
0X001C
0X001D
A BUS
H = MBR SLL8
ALU
Address
0x100
0x000
0x001
0x040
0x041
0x042
0x043
0x044
0x045
Loadm1 0x002
0x046
0x047
0x048
0x049
0x04A
0x04B
Add1
0x00B
0x04C
0X04D
0X04E
0X04F
Push1
0X011
0X050
0X051
0X052
0X053
Pop1
0X012
0X054
0X055
0X056
0X057
Jmp1
0X016
0X058
0X059
0X05A
0X05B
Svc1
0X03F
0X05C
0X05D
0X05E
0X05F
0X060
0X061
0X062
0X063
Content
set PC = PC+1; fetch; jmpc 0X000
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set MAR = H or MBRU; fetch;
read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set H = H + MBRU; fetch
set PC = PC+1
set RS = H; fetch
donothing; goto main1
set PC = PC+1
set H = RS; fetch
set PC = PC+1
set RS = H+RS; fetch
donothing; goto main1
set PC = PC+1
set MDR = RS; fetch
set MAR = SP; write
set SP = SP+1
set SP = SP+1; goto main1
set SP = SP-1
set SP = SP-1; read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
Donothing
set PC = H + MBRU; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set T1 = H + MBRU; fetch
set T2 = SP-1
set MAR = T2-1; read
Donothing
set T2 = MDR
svc; goto main1
BBus
Memory CBus
ALU/shift JAM
MBR
FETCH
SLL8
SHIFT SLL8
Next
Addr
0x041
CYCLE 05
MAIN MEMORY
.
.
.
AREA
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
CONTROL MEMORY
B BUS
C BUS
Main1
Nop
Load1
MAR
MDR
0x0003
PC
1C
MBR
PC = 0X0004
CODE AREA
STACK DATA
CONTENT
NOP (00)
LOAD (01)
00
1C
R1 (01)
LOADM (02)
00
01
R2
ADD (0B)
R2 (02)
R1 (01)
PUSH (11)
R1 (01)
SVC (3F)
00
03
POP (12)
R1 (01)
LOADM (02)
00
00
01
PUSH (11)
R1 (01)
SVC (3F)
00
01
00
01
0x0003
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
0000
PC = 0X0003
ADDRESS
0x0000
0x0001
0x0002
0x0003
0x0004
Ox0005
0X0006
0X0007
0X0008
0X0009
0X000A
0X000B
0X000C
0X000D
0X000E
0X000F
0X0010
0X0011
0X0012
0X0013
0X0014
0X0015
0X0016
0X0017
0X0018
0X0019
0X001A
0X001B
0X001C
0X001D
A BUS
PC = PC+1
ALU
Address
0x100
0x000
0x001
0x040
0x041
0x042
0x043
0x044
0x045
Loadm1 0x002
0x046
0x047
0x048
0x049
0x04A
0x04B
Add1
0x00B
0x04C
0X04D
0X04E
0X04F
Push1
0X011
0X050
0X051
0X052
0X053
Pop1
0X012
0X054
0X055
0X056
0X057
Jmp1
0X016
0X058
0X059
0X05A
0X05B
Svc1
0X03F
0X05C
0X05D
0X05E
0X05F
0X060
0X061
0X062
0X063
BBus
Content
set PC = PC+1; fetch; jmpc 0X000
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set MAR = H or MBRU; fetch;
read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set H = H + MBRU; fetch
set PC = PC+1
set RS = H; fetch
donothing; goto main1
set PC = PC+1
set H = RS; fetch
set PC = PC+1
set RS = H+RS; fetch
donothing; goto main1
set PC = PC+1
set MDR = RS; fetch
set MAR = SP; write
set SP = SP+1
set SP = SP+1; goto main1
set SP = SP-1
set SP = SP-1; read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
Donothing
set PC = H + MBRU; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set T1 = H + MBRU; fetch
set T2 = SP-1
set MAR = T2-1; read
Donothing
set T2 = MDR
svc; goto main1
Memory CBus
ALU/shift JAM
SHIFT
PC
PC
B BUS+1
Next
Addr
0x042
CYCLE 06
MAIN MEMORY
.
.
.
AREA
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
CONTROL MEMORY
B BUS
C BUS
MAR
Main1
Nop
Load1
001C
MDR
PC
0x0004
MBR
MAR = 001C
CODE AREA
STACK DATA
CONTENT
NOP (00)
LOAD (01)
00
1C
R1 (01)
LOADM (02)
00
01
R2
ADD (0B)
R2 (02)
R1 (01)
PUSH (11)
R1 (01)
SVC (3F)
00
03
POP (12)
R1 (01)
LOADM (02)
00
00
01
PUSH (11)
R1 (01)
SVC (3F)
00
01
00
01
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
0000
MBR = 1C
ADDRESS
0x0000
0x0001
0x0002
0x0003
0x0004
Ox0005
0X0006
0X0007
0X0008
0X0009
0X000A
0X000B
0X000C
0X000D
0X000E
0X000F
0X0010
0X0011
0X0012
0X0013
0X0014
0X0015
0X0016
0X0017
0X0018
0X0019
0X001A
0X001B
0X001C
0X001D
A BUS
MAR = H + MBR
ALU
Address
0x100
0x000
0x001
0x040
0x041
0x042
0x043
0x044
0x045
Loadm1 0x002
0x046
0x047
0x048
0x049
0x04A
0x04B
Add1
0x00B
0x04C
0X04D
0X04E
0X04F
Push1
0X011
0X050
0X051
0X052
0X053
Pop1
0X012
0X054
0X055
0X056
0X057
Jmp1
0X016
0X058
0X059
0X05A
0X05B
Svc1
0X03F
0X05C
0X05D
0X05E
0X05F
0X060
0X061
0X062
0X063
Content
set PC = PC+1; fetch; jmpc 0X000
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set MAR = H or MBRU; fetch;
read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set H = H + MBRU; fetch
set PC = PC+1
set RS = H; fetch
donothing; goto main1
set PC = PC+1
set H = RS; fetch
set PC = PC+1
set RS = H+RS; fetch
donothing; goto main1
set PC = PC+1
set MDR = RS; fetch
set MAR = SP; write
set SP = SP+1
set SP = SP+1; goto main1
set SP = SP-1
set SP = SP-1; read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
Donothing
set PC = H + MBRU; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set T1 = H + MBRU; fetch
set T2 = SP-1
set MAR = T2-1; read
Donothing
set T2 = MDR
svc; goto main1
BBus
Memory
CBus
MBR
FETCH,READ MAR
ALU/shift JAM
SHIFT
H + MBR
Next
Addr
0x043
CYCLE 07
MAR = 001C
MAIN MEMORY
AREA
.
.
.
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
CONTROL MEMORY
B BUS
C BUS
MAR
001C
MDR
0001
0X0004
PC
R1
MBR
PC = 0X0005
CODE AREA
STACK DATA
MDR = 0001
CONTENT
NOP (00)
LOAD (01)
00
1C
R1 (01)
LOADM (02)
00
01
R2
ADD (0B)
R2 (02)
R1 (01)
PUSH (11)
R1 (01)
SVC (3F)
00
03
POP (12)
R1 (01)
LOADM (02)
00
00
01
PUSH (11)
R1 (01)
SVC (3F)
00
01
00
01
Main1
Nop
Load1
0x0004
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
0000
PC = 0X0004
ADDRESS
0x0000
0x0001
0x0002
0x0003
0x0004
Ox0005
0X0006
0X0007
0X0008
0X0009
0X000A
0X000B
0X000C
0X000D
0X000E
0X000F
0X0010
0X0011
0X0012
0X0013
0X0014
0X0015
0X0016
0X0017
0X0018
0X0019
0X001A
0X001B
0X001C
0X001D
A BUS
PC = PC+1
ALU
Address
0x100
0x000
0x001
0x040
0x041
0x042
0x043
0x044
0x045
Loadm1 0x002
0x046
0x047
0x048
0x049
0x04A
0x04B
Add1
0x00B
0x04C
0X04D
0X04E
0X04F
Push1
0X011
0X050
0X051
0X052
0X053
Pop1
0X012
0X054
0X055
0X056
0X057
Jmp1
0X016
0X058
0X059
0X05A
0X05B
Svc1
0X03F
0X05C
0X05D
0X05E
0X05F
0X060
0X061
0X062
0X063
BBus
Memory
Content
set PC = PC+1; fetch; jmpc 0X000
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set MAR = H or MBRU; fetch;
read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set H = H + MBRU; fetch
set PC = PC+1
set RS = H; fetch
donothing; goto main1
set PC = PC+1
set H = RS; fetch
set PC = PC+1
set RS = H+RS; fetch
donothing; goto main1
set PC = PC+1
set MDR = RS; fetch
set MAR = SP; write
set SP = SP+1
set SP = SP+1; goto main1
set SP = SP-1
set SP = SP-1; read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
Donothing
set PC = H + MBRU; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set T1 = H + MBRU; fetch
set T2 = SP-1
set MAR = T2-1; read
Donothing
set T2 = MDR
svc; goto main1
CBus
ALU/shift JAM
PC
B BUS+1
SHIFT
PC
Next
Addr
0x044
CYCLE 08
MAIN MEMORY
.
.
.
AREA
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
CONTROL MEMORY
B BUS
C BUS
MAR
001C
MDR
0001
PC
Main1
Nop
Load1
0x0005
MBR
R1 = 0001
CODE AREA
STACK DATA
CONTENT
NOP (00)
LOAD (01)
00
1C
R1 (01)
LOADM (02)
00
01
R2
ADD (0B)
R2 (02)
R1 (01)
PUSH (11)
R1 (01)
SVC (3F)
00
03
POP (12)
R1 (01)
LOADM (02)
00
00
01
PUSH (11)
R1 (01)
SVC (3F)
00
01
00
01
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
0000
MDR = 0001
ADDRESS
0x0000
0x0001
0x0002
0x0003
0x0004
Ox0005
0X0006
0X0007
0X0008
0X0009
0X000A
0X000B
0X000C
0X000D
0X000E
0X000F
0X0010
0X0011
0X0012
0X0013
0X0014
0X0015
0X0016
0X0017
0X0018
0X0019
0X001A
0X001B
0X001C
0X001D
A BUS
R1 = MDR
ALU
Address
0x100
0x000
0x001
0x040
0x041
0x042
0x043
0x044
0x045
Loadm1 0x002
0x046
0x047
0x048
0x049
0x04A
0x04B
Add1
0x00B
0x04C
0X04D
0X04E
0X04F
Push1
0X011
0X050
0X051
0X052
0X053
Pop1
0X012
0X054
0X055
0X056
0X057
Jmp1
0X016
0X058
0X059
0X05A
0X05B
Svc1
0X03F
0X05C
0X05D
0X05E
0X05F
0X060
0X061
0X062
0X063
Content
set PC = PC+1; fetch; jmpc 0X000
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set MAR = H or MBRU; fetch;
read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set H = H + MBRU; fetch
set PC = PC+1
set RS = H; fetch
donothing; goto main1
set PC = PC+1
set H = RS; fetch
set PC = PC+1
set RS = H+RS; fetch
donothing; goto main1
set PC = PC+1
set MDR = RS; fetch
set MAR = SP; write
set SP = SP+1
set SP = SP+1; goto main1
set SP = SP-1
set SP = SP-1; read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
Donothing
set PC = H + MBRU; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set T1 = H + MBRU; fetch
set T2 = SP-1
set MAR = T2-1; read
Donothing
set T2 = MDR
svc; goto main1
BBus
Memory
CBus
ALU/shift JAM
MDR
FETCH
R1
B BUS
SHIFT
Next
Addr
0x045
CYCLE 09
MAIN MEMORY
CONTENT
NOP (00)
LOAD (01)
00
1C
R1 (01)
LOADM (02)
00
01
R2
ADD (0B)
R2 (02)
R1 (01)
PUSH (11)
R1 (01)
SVC (3F)
00
03
POP (12)
R1 (01)
LOADM (02)
00
00
01
PUSH (11)
R1 (01)
SVC (3F)
00
01
00
01
.
.
.
AREA
STACK DATA
CODE AREA
ADDRESS
0x0000
0x0001
0x0002
0x0003
0x0004
Ox0005
0X0006
0X0007
0X0008
0X0009
0X000A
0X000B
0X000C
0X000D
0X000E
0X000F
0X0010
0X0011
0X0012
0X0013
0X0014
0X0015
0X0016
0X0017
0X0018
0X0019
0X001A
0X001B
0X001C
0X001D
0XF800
0XF801
0XF802
0XF803
0XF804
0XF805
0X0005
LOADM
CONTROL MEMORY
B BUS
C BUS
MAR
001C
MDR
0001
PC
Main1
Nop
Load1
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
0000
A BUS
PC = PC+1
ALU
0x043
0x044
0x045
Loadm1 0x002
0x046
0x047
0x048
0x049
0x04A
0x04B
Add1
0x00B
0x04C
0X04D
0X04E
0X04F
Push1
0X011
0X050
0X051
0X052
0X053
Pop1
0X012
0X054
0X055
0X056
0X057
Jmp1
0X016
0X058
0X059
0X05A
0X05B
Svc1
0X03F
0X05C
0X05D
0X05E
0X05F
0X060
0X061
0X062
0X063
BBus
SHIFT
Address
0x100
0x000
0x001
0x040
0x041
0x042
Memory
Content
set PC = PC+1; fetch; jmpc 0X000
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set MAR = H or MBRU; fetch;
read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set H = H + MBRU; fetch
set PC = PC+1
set RS = H; fetch
donothing; goto main1
set PC = PC+1
set H = RS; fetch
set PC = PC+1
set RS = H+RS; fetch
donothing; goto main1
set PC = PC+1
set MDR = RS; fetch
set MAR = SP; write
set SP = SP+1
set SP = SP+1; goto main1
set SP = SP-1
set SP = SP-1; read
set PC = PC+1
set RS = MDR; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
Donothing
set PC = H + MBRU; fetch
donothing; goto main1
set PC = PC+1
set H = MBR sll8; fetch
set PC = PC+1
set T1 = H + MBRU; fetch
set T2 = SP-1
set MAR = T2-1; read
Donothing
set T2 = MDR
svc; goto main1
CBus
ALU/shift JAM
Next
Addr
0x100