21
以以以以以以以以以以以以以以以2200: ADD R2, R3 3 以以以以以以以 2200 2201 2202 2201: JRNC 2200 以 C=0 以以以以以 1 以 以以以以以以 2202: STRR [R2], R3 以 R3 以以以以以以以以以以 [R2] 以以 以以以以以以以以以以以以以以以以 1 以以以以以以以以 PC 以以以 R2 以以以以 1234 R3 以以以以 2345 ADD 以以以以以以以以以 00000000 0011 0010 以以以以以 JRNC 以以以以以以以以以 01000101 1111 1110 以以以以以 STRR 以以以以以以以以以 10000011 0010 0011 以以以以以 3 以以以以以以以以以以以以以以以以以以以ADD 以以以以 以以以以以以以以以以以以以以以以以 JRNC 以以以以 以以以以以以以以以以以以以以以以以以以 STRR 以以以以 以以以以以以以以以以以以以以以以以

以动画形式看几条指令的执行过程: 2200: ADD R2, R3 ; 3 条指令的地址为 2200 、 2201 、 2202

Embed Size (px)

DESCRIPTION

以动画形式看几条指令的执行过程: 2200: ADD R2, R3 ; 3 条指令的地址为 2200 、 2201 、 2202 2201: JRNC 2200 ; 若 C=0 转去执行第 1 条,否则顺序执行 2202: STRR [R2], R3 ; 把 R3 的内容写入内存地址为 [R2] 的单元 程序运行的初始状态: 程序已读入内存,第 1 条指令地址已经在 PC 中, - PowerPoint PPT Presentation

Citation preview

Page 1: 以动画形式看几条指令的执行过程: 2200:  ADD   R2, R3       ; 3  条指令的地址为 2200 、 2201 、 2202

以动画形式看几条指令的执行过程:2200: ADD R2, R3 ; 3 条指令的地址为 2200 、 2201 、 2202

2201: JRNC 2200 ;若 C=0 转去执行第 1 条,否则顺序执行2202: STRR [R2], R3 ; 把 R3 的内容写入内存地址为 [R2] 的单元

程序运行的初始状态:程序已读入内存,第 1 条指令地址已经在 PC 中, 假定 R2 的初值为 1234 , R3 的初值为 2345 。

ADD 指令的二进制代码为 00000000 0011 0010 ,已在内存中JRNC 指令的二进制代码为 01000101 1111 1110 ,已在内存中STRR 指令的二进制代码为 10000011 0010 0011 ,已在内存中

3 条指令都要在取指周期执行读取指令的操作,ADD 指令要在 执行周期完成数据运算与写回功能; 结束JRNC 指令要在 执行周期完成指令地址计算并保存功能; 结束STRR 指令要在 执行周期完成数据地址计算并保存功能, 还要在 存储周期完成存储器的写入功能。 结束

Page 2: 以动画形式看几条指令的执行过程: 2200:  ADD   R2, R3       ; 3  条指令的地址为 2200 、 2201 、 2202

PC

B 寄 存 器A 堆 REGs

控制信号产生线路

CU

A D 存储器

AR

S

A L U R

指令内容加法器

数据总线DB

地址总线AB

IR

0001 四10 选11 一

缓冲器

缓冲器

0 二 选1 一

三选一10 00 01

双向三态门

三态门

offset

1

串行接口

MAX202

控制器部件 运算器部件 存储器部件和接口电路

输入输出接口部件

串行设备

内部总线 IB

00 01 三 选10 一

0

dr

sr

Flag

C Z V S

1 0

二选一

NPCb_sel

a_sel y_sel

r_sel

s_selalu_func

Cy Over Sign Zero

reg_src

add_src

pc_wt ir_rt

pc_src

reg_wt

y_ib

ar_wt

gate_en

gate_dir

4

alu_out

reg_input

三态门

1

0

1

ncp_ib

npc_wt

0

add_out

flag_funrc

clock

reset

Y00三10选01一

addr_sel

二 0选 一 1

1 二 选 0 一

0001 四10 选11 一

io_port

取指操作 : 在取指周期,以 PC 作地址读内存,读出指令送 IR ,计算下条指令地址

假设 PC 的内容为 2200 ,内存 2200 单元的内容为 0023 , IR 的内容未定

实现功能: pc→AB , mem[AB]→ir , pc+1→pc

控制信号: addr_sel=01, gate_en=1, mio=1, ir_wt=1, pc_wt=1

2 2 0 0

0 0 3 20 0 3 211

2 2 0 02 2 0 1

4 5 F E

Page 3: 以动画形式看几条指令的执行过程: 2200:  ADD   R2, R3       ; 3  条指令的地址为 2200 、 2201 、 2202

B 寄 存 器A 堆 REGs

AR

S

A L U R

0001 四10 选11 一

缓冲器

缓冲器

0 二 选1 一

三选一10 00 01

三态门

运算器部件

内部总线 IB

00 01 三 选10 一

0

dr

sr

Flag

C Z V S

b_sel

a_sel y_sel

r_sel

s_selalu_func

Cy Over Sign Zero

reg_src

reg_wt

y_ib

ar_wt4

alu_out

reg_input

1

0

1

三态门 sr_ib

0

flag_func

Y1 二 选 0 一

0001 四10 选11 一

动画演示REGs(3) + REGs(2) → REG(3)假设 R2 的内容为 1234 R3 的内容为 2345

控制信号: b_sel 选 00

a_sel 选 00

s_sel 选 00

r_sel 选 00

alu_func 选 000

reg_src 选 00

reg_wt 选 1

flag_func 选 001

2

3

1234

2345

1234

23453579

2

3

+

00000000 0010 0011

ADD R2 , R3

0

0

在执行周期,完成在取指周期读出来的加法指令的具体运算过程

Page 4: 以动画形式看几条指令的执行过程: 2200:  ADD   R2, R3       ; 3  条指令的地址为 2200 、 2201 、 2202

PC

B 寄 存 器A 堆 REGs

控制信号产生线路

CU

A D 存储器

AR

S

A L U R

指令内容加法器

数据总线DB

地址总线AB

IR

0001 四10 选11 一

缓冲器

缓冲器

0 二 选1 一

三选一10 00 01

双向三态门

三态门

offset

1

串行接口

MAX202

控制器部件 运算器部件 存储器部件和接口电路

输入输出接口部件

串行设备

内部总线 IB

00 01 三 选10 一

0

dr

sr

Flag

C Z V S

1 0

二选一

NPCb_sel

a_sel y_sel

r_sel

s_selalu_func

Cy Over Sign Zero

reg_src

add_src

pc_wt ir_rt

pc_src

reg_wt

y_ib

ar_wt

gate_en

gate_dir

4

alu_out

reg_input

三态门

1

0

1

ncp_ib

npc_wt

三态门 sr_ib

0

add_out

flag_funrc

clock

reset

Y00三10选01一

addr_sel

二 0选 一 1

1 二 选 0 一

0001 四10 选11 一

io_port

2 2 0 1

0 0 2 34 5 F

E1

4 5 F E

2 2 0 22 2 0 1

0 0

取指操作 : 在取指周期,以 PC 作地址读内存,读出指令送 IR ,计算下条指令地址

此时 PC 的内容为 2201 ,内存 2201 单元的内容为 45FE , IR 的原有内容 0023

实现功能: pc→AB , mem[AB]→ir , pc+1→pc

控制信号: addr_sel=01, gate_en=1, mio=1, ir_wt=1, pc_wt=10 0 2 3

Page 5: 以动画形式看几条指令的执行过程: 2200:  ADD   R2, R3       ; 3  条指令的地址为 2200 、 2201 、 2202

PC

B 寄 存 器A 堆 REGs

控制信号产生线路

CU

A D 存储器

AR

S

A L U R

指令内容加法器

数据总线DB

地址总线AB

IR

0001 四10 选11 一

缓冲器

缓冲器

0 二 选1 一

三选一10 00 01

双向三态门

三态门

offset

1

串行接口

MAX202

控制器部件 运算器部件 存储器部件和接口电路

输入输出接口部件

串行设备

内部总线 IB

00 01 三 选10 一

0

dr

sr

Flag

C Z V S

1 0

二选一

NPCb_sel

a_sel y_sel

r_sel

s_selalu_func

Cy Over Sign Zero

reg_src

add_src

pc_wt ir_rt

pc_src

reg_wt

y_ib

ar_wt

gate_en

gate_dir

4

alu_out

reg_input

三态门

1

0

1

ncp_ib

npc_wt

三态门 sr_ib

0

add_out

flag_funrc

clock

reset

Y00三10选01一

addr_sel

二 0选 一 1

1 二 选 0 一

0001 四10 选11 一

io_port

相对转移指令:标志位 C 为 0 时,转移到 2200 地址,否则顺序执行

在执行周期,由控制器部件计算转移指令地址,若 C=0 则把转移地址送入 PC

实现功能: if nc then pc+offset→pc

控制信号: add_sel=1, pc_wt=1

0 0 2 34 5 F

E

2 2 0 02 2 0 2

4 5 F

E F E

0 0

01000101 11111110

JRNC 2200

Page 6: 以动画形式看几条指令的执行过程: 2200:  ADD   R2, R3       ; 3  条指令的地址为 2200 、 2201 、 2202

PC

B 寄 存 器A 堆 REGs

控制信号产生线路

CU

A D 存储器

AR

S

A L U R

指令内容加法器

数据总线DB

地址总线AB

IR

0001 四10 选11 一

缓冲器

缓冲器

0 二 选1 一

三选一10 00 01

双向三态门

三态门

offset

1

串行接口

MAX202

控制器部件 运算器部件 存储器部件和接口电路

输入输出接口部件

串行设备

内部总线 IB

00 01 三 选10 一

0

dr

sr

Flag

C Z V S

1 0

二选一

NPCb_sel

a_sel y_sel

r_sel

s_selalu_func

Cy Over Sign Zero

reg_src

add_src

pc_wt ir_rt

pc_src

reg_wt

y_ib

ar_wt

gate_en

gate_dir

4

alu_out

reg_input

三态门

1

0

1

ncp_ib

npc_wt

三态门 sr_ib

0

add_out

flag_funrc

clock

reset

Y00三10选01一

addr_sel

二 0选 一 1

1 二 选 0 一

0001 四10 选11 一

io_port

取指操作 : 在取指周期,以 PC 作地址读内存,读出指令送 IR ,计算下条指令地址

此时 PC 的内容为 2202 , IR 的原内容 45FE ,假设内存 2203 单元的内容为 8323

实现功能: pc→AB , mem[AB]→ir , pc+1→pc

控制信号: addr_sel=01, gate_en=1, mio=1, ir_wt=1, pc_wt=1

2 2 0 2

0 0 3 28 3 2 311

2 2 0 22 2 0 3

8 3 2 3

4 5 F E

Page 7: 以动画形式看几条指令的执行过程: 2200:  ADD   R2, R3       ; 3  条指令的地址为 2200 、 2201 、 2202

B 寄 存 器A 堆 REGs

AR

S

A L U R

0001 四10 选11 一

缓冲器

缓冲器

0 二 选1 一

三选一10 00 01

三态门

运算器部件

内部总线 IB

00 01 三 选10 一

0

dr

sr

Flag

C Z V S

b_sel

a_sel y_sel

r_sel

s_selalu_func

Cy Over Sign Zero

reg_src

reg_wt

y_ib

ar_wt4

alu_out

reg_input

1

0

1

三态门 sr_ib

0

flag_func

Y1 二 选 0 一

0001 四10 选11 一

动画演示

在执行周期,在运算器部件中完成把 R2的内容送地址寄存器AR 的操作

R2 的内容为 1234 R3 的内容为 3579

请注意,此步骤中是计算数据在内存中的单元地址,通过 R2+ 0→AR 实现,不影响C 、 Z 等标志位;不使用 R3 。

2

3

12341234

35791234

2

3

+

10000001 0010 0011

STRR [R2] , R3

00

在执行周期,完成读内存指令的数据地址计算与传送操作

00001234

Page 8: 以动画形式看几条指令的执行过程: 2200:  ADD   R2, R3       ; 3  条指令的地址为 2200 、 2201 、 2202

写内存指令,在存储器读写周期,完成把寄存器 R3 的内容写入存储器的选定单元

实现功能: Reg[R3] → Mem[AR] ,运算器中通过 R3+0 执行数据计算 控制信号: addr_sel=00,s_sel=01,r_sel=00, gate_en=1,gate_dir=1,mio=1,we=1

B 寄 存 器A 堆 REGs

A D 存储器

AR

S

A L U R

数据总线DB

地址总线AB

0001 四10 选11 一

缓冲器

缓冲器

0 二 选1 一

三选一10 00 01

双向三态门

三态门

串行接口

MAX202

运算器部件 存储器部件和接口电路

输入输出接口部件

串行设备

内部总线 IB

00 01 三 选10 一

0

dr

sr

Flag

C Z V S

b_sel

a_sel y_sel

r_sel

s_selalu_func

Cy Over Sign Zero

reg_src

reg_wt

y_ib

ar_wt

gate_en

gate_dir

4

alu_out

reg_input

1

0

1

三态门 sr_ib

0

flag_funrc

Y00三10选01一

addr_sel

1 二 选 0 一

0001 四10 选11 一

io_port

10000001 0010 0011

STRR [R2] , R3动画演示

在存储器读写周期 ,

完成把寄存器堆中的一个寄存器 (R

3) 的内容写入存储器的由 AR 指定地址的一个存储单元

2

338132

1234

3579

00003579

00

35793579

+

12341234

Page 9: 以动画形式看几条指令的执行过程: 2200:  ADD   R2, R3       ; 3  条指令的地址为 2200 、 2201 、 2202

PC

B 寄 存 器A 堆 REGs

控制信号产生线路

CU

A D 存储器

AR

S

A L U R

指令内容加法器

数据总线DB

地址总线AB

IR

0001 四10 选11 一

缓冲器

缓冲器

0 二 选1 一

三选一10 00 01

双向三态门

三态门

offset

1

串行接口

MAX202

控制器部件 运算器部件 存储器部件和接口电路

输入输出接口部件

串行设备

内部总线 IB

00 01 三 选10 一

0

dr

sr

Flag

C Z V S

1 0

二选一

NPCb_sel

a_sel y_sel

r_sel

s_selalu_func

Cy Over Sign Zero

reg_src

add_src

pc_wt ir_rt

pc_src

reg_wt

y_ib

ar_wt

gate_en

gate_dir

4

alu_out

reg_input

三态门

1

0

1

ncp_ib

npc_wt

三态门 sr_ib

0

add_out

flag_funrc

clock

reset

Y00三10选01一

addr_sel

二 0选 一 1

1 二 选 0 一

0001 四10 选11 一

io_port

取指操作

实现功能: pc→AB , mem[AB]→ir , pc+1→pc

控制信号: addr_sel=01, gate_en=1, mio=1, ir_wt=1, pc_wt=1

1 2 0 1

0 0 2 34 5 F

E1

4 5 F E

1 2 0 21 2 0 1

Page 10: 以动画形式看几条指令的执行过程: 2200:  ADD   R2, R3       ; 3  条指令的地址为 2200 、 2201 、 2202

PC

B 寄 存 器A 堆 REGs

控制信号产生线路

CU

A D 存储器

AR

S

A L U R

指令内容加法器

数据总线DB

地址总线AB

IR

0001 四10 选11 一

缓冲器

缓冲器

0 二 选1 一

三选一10 00 01

双向三态门

三态门

offset

1

串行接口

MAX202

控制器部件 运算器部件 存储器部件和接口电路

输入输出接口部件

串行设备

内部总线 IB

00 01 三 选10 一

0

dr

sr

Flag

C Z V S

1 0

二选一

NPCb_sel

a_sel y_sel

r_sel

s_selalu_func

Cy Over Sign Zero

reg_src

add_src

pc_wt ir_rt

pc_src

reg_wt

y_ib

ar_wt

gate_en

gate_dir

4

alu_out

reg_input

三态门

1

0

1

ncp_ib

npc_wt

三态门 sr_ib

0

add_out

flag_funrc

clock

reset

Y00三10选01一

addr_sel

二 0选 一 1

1 二 选 0 一

0001 四10 选11 一

io_port

双寄存器指令

实现功能: Regs[dr] op Regs[sr] → Regs[dr]

控制信号: b_src=00, a_sel=0, s_sel=00, r_sel=00,

alu_func= OP 码 , reg_wt=1 (cmp 、 test 除外 ), flag_func=001

Page 11: 以动画形式看几条指令的执行过程: 2200:  ADD   R2, R3       ; 3  条指令的地址为 2200 、 2201 、 2202

PC

B 寄 存 器A 堆 REGs

控制信号产生线路

CU

A D 存储器

AR

S

A L U R

指令内容加法器

数据总线DB

地址总线AB

IR

0001 四10 选11 一

缓冲器

缓冲器

0 二 选1 一

三选一10 00 01

双向三态门

三态门

offset

1

串行接口

MAX202

控制器部件 运算器部件 存储器部件和接口电路

输入输出接口部件

串行设备

内部总线 IB

00 01 三 选10 一

0

dr

sr

Flag

C Z V S

1 0

二选一

NPCb_sel

a_sel y_sel

r_sel

s_selalu_func

Cy Over Sign Zero

reg_src

add_src

pc_wt ir_rt

pc_src

reg_wt

y_ib

ar_wt

gate_en

gate_dir

4

alu_out

reg_input

三态门

1

0

1

ncp_ib

npc_wt

三态门 sr_ib

0

add_out

flag_funrc

clock

reset

Y00三10选01一

addr_sel

二 0选 一 1

1 二 选 0 一

0001 四10 选11 一

io_port

单寄存器指令( INC 、 DEC )

实现功能: Regs[dr] +1 ( 或 -1) → Regs[dr]

控制信号: b_src=00, s_sel=00, r_sel=11,

alu_func= 000 或 001, reg_wt=1, flag_func=001

Page 12: 以动画形式看几条指令的执行过程: 2200:  ADD   R2, R3       ; 3  条指令的地址为 2200 、 2201 、 2202

PC

B 寄 存 器A 堆 REGs

控制信号产生线路

CU

A D 存储器

AR

S

A L U R

指令内容加法器

数据总线DB

地址总线AB

IR

0001 四10 选11 一

缓冲器

缓冲器

0 二 选1 一

三选一10 00 01

双向三态门

三态门

offset

1

串行接口

MAX202

控制器部件 运算器部件 存储器部件和接口电路

输入输出接口部件

串行设备

内部总线 IB

00 01 三 选10 一

0

dr

sr

Flag

C Z V S

1 0

二选一

NPCb_sel

a_sel y_sel

r_sel

s_selalu_func

Cy Over Sign Zero

reg_src

add_src

pc_wt ir_rt

pc_src

reg_wt

y_ib

ar_wt

gate_en

gate_dir

4

alu_out

reg_input

三态门

1

0

1

ncp_ib

npc_wt

三态门 sr_ib

0

add_out

flag_funrc

clock

reset

Y00三10选01一

addr_sel

二 0选 一 1

1 二 选 0 一

0001 四10 选11 一

io_port

单寄存器指令( SHL 、 SHR )

实现功能: Regs[dr] << 1 ( 或 >> 1) → Regs[dr]

控制信号: b_src=00, s_sel=00, r_sel=01,

alu_func= 000, reg_wt=1, flag_func=011 ( 或 100)

Page 13: 以动画形式看几条指令的执行过程: 2200:  ADD   R2, R3       ; 3  条指令的地址为 2200 、 2201 、 2202

PC

B 寄 存 器A 堆 REGs

控制信号产生线路

CU

A D 存储器

AR

S

A L U R

指令内容加法器

数据总线DB

地址总线AB

IR

0001 四10 选11 一

缓冲器

缓冲器

0 二 选1 一

三选一10 00 01

双向三态门

三态门

offset

1

串行接口

MAX202

控制器部件 运算器部件 存储器部件和接口电路

输入输出接口部件

串行设备

内部总线 IB

00 01 三 选10 一

0

dr

sr

Flag

C Z V S

1 0

二选一

NPCb_sel

a_sel y_sel

r_sel

s_selalu_func

Cy Over Sign Zero

reg_src

add_src

pc_wt ir_rt

pc_src

reg_wt

y_ib

ar_wt

gate_en

gate_dir

4

alu_out

reg_input

三态门

1

0

1

ncp_ib

npc_wt

三态门 sr_ib

0

add_out

flag_funrc

clock

reset

Y00三10选01一

addr_sel

二 0选 一 1

1 二 选 0 一

0001 四10 选11 一

io_port

MVRD 指令 实现功能: pc→AB , mem[AB]→dr , pc+1→pc

控制信号: s_sel=01, r_sel=10, reg_wt=1, pc_wt=1

addr_sel=01, gate_en=1, mio=1

Page 14: 以动画形式看几条指令的执行过程: 2200:  ADD   R2, R3       ; 3  条指令的地址为 2200 、 2201 、 2202

PC

B 寄 存 器A 堆 REGs

控制信号产生线路

CU

A D 存储器

AR

S

A L U R

指令内容加法器

数据总线DB

地址总线AB

IR

0001 四10 选11 一

缓冲器

缓冲器

0 二 选1 一

三选一10 00 01

双向三态门

三态门

offset

1

串行接口

MAX202

控制器部件 运算器部件 存储器部件和接口电路

输入输出接口部件

串行设备

内部总线 IB

00 01 三 选10 一

0

dr

sr

Flag

C Z V S

1 0

二选一

NPCb_sel

a_sel y_sel

r_sel

s_selalu_func

Cy Over Sign Zero

reg_src

add_src

pc_wt ir_rt

pc_src

reg_wt

y_ib

ar_wt

gate_en

gate_dir

4

alu_out

reg_input

三态门

1

0

1

ncp_ib

npc_wt

三态门 sr_ib

0

add_out

flag_funrc

clock

reset

Y00三10选01一

addr_sel

二 0选 一 1

1 二 选 0 一

0001 四10 选11 一

io_port

相对转移指令( JR 、 JRC 、 JRNC 、 JRZ 、 JRNZ )

实现功能: pc + offset → pc ( 如果转移条件成立 )

控制信号: add_src=1, pc_wt=1 ( 如果转移条件成立 )

Page 15: 以动画形式看几条指令的执行过程: 2200:  ADD   R2, R3       ; 3  条指令的地址为 2200 、 2201 、 2202

PC

B 寄 存 器A 堆 REGs

控制信号产生线路

CU

A D 存储器

AR

S

A L U R

指令内容加法器

数据总线DB

地址总线AB

IR

0001 四10 选11 一

缓冲器

缓冲器

0 二 选1 一

三选一10 00 01

双向三态门

三态门

offset

1

串行接口

MAX202

控制器部件 运算器部件 存储器部件和接口电路

输入输出接口部件

串行设备

内部总线 IB

00 01 三 选10 一

0

dr

sr

Flag

C Z V S

1 0

二选一

NPCb_sel

a_sel y_sel

r_sel

s_selalu_func

Cy Over Sign Zero

reg_src

add_src

pc_wt ir_rt

pc_src

reg_wt

y_ib

ar_wt

gate_en

gate_dir

4

alu_out

reg_input

三态门

1

0

1

ncp_ib

npc_wt

三态门 sr_ib

0

add_out

flag_funrc

clock

reset

Y00三10选01一

addr_sel

二 0选 一 1

1 二 选 0 一

0001 四10 选11 一

io_port

JMPA 指令 实现功能: pc→AB , mem[AB]→pc

控制信号: pc_src=10, pc_wt=1

addr_sel=01, gate_en=1, mio=1

Page 16: 以动画形式看几条指令的执行过程: 2200:  ADD   R2, R3       ; 3  条指令的地址为 2200 、 2201 、 2202

PC

B 寄 存 器A 堆 REGs

控制信号产生线路

CU

A D 存储器

AR

S

A L U R

指令内容加法器

数据总线DB

地址总线AB

IR

0001 四10 选11 一

缓冲器

缓冲器

0 二 选1 一

三选一10 00 01

双向三态门

三态门

offset

1

串行接口

MAX202

控制器部件 运算器部件 存储器部件和接口电路

输入输出接口部件

串行设备

内部总线 IB

00 01 三 选10 一

0

dr

sr

Flag

C Z V S

1 0

二选一

NPCb_sel

a_sel y_sel

r_sel

s_selalu_func

Cy Over Sign Zero

reg_src

add_src

pc_wt ir_rt

pc_src

reg_wt

y_ib

ar_wt

gate_en

gate_dir

4

alu_out

reg_input

三态门

1

0

1

ncp_ib

npc_wt

三态门 sr_ib

0

add_out

flag_funrc

clock

reset

Y00三10选01一

addr_sel

二 0选 一 1

1 二 选 0 一

0001 四10 选11 一

io_port

读内存指令 LDRR_1

实现功能: sr → ar

控制信号: s_sel=01, ar_wt=1

Page 17: 以动画形式看几条指令的执行过程: 2200:  ADD   R2, R3       ; 3  条指令的地址为 2200 、 2201 、 2202

PC

B 寄 存 器A 堆 REGs

控制信号产生线路

CU

A D 存储器

AR

S

A L U R

指令内容加法器

数据总线DB

地址总线AB

IR

0001 四10 选11 一

缓冲器

缓冲器

0 二 选1 一

三选一10 00 01

双向三态门

三态门

offset

1

串行接口

MAX202

控制器部件 运算器部件 存储器部件和接口电路

输入输出接口部件

串行设备

内部总线 IB

00 01 三 选10 一

0

dr

sr

Flag

C Z V S

1 0

二选一

NPCb_sel

a_sel y_sel

r_sel

s_selalu_func

Cy Over Sign Zero

reg_src

add_src

pc_wt ir_rt

pc_src

reg_wt

y_ib

ar_wt

gate_en

gate_dir

4

alu_out

reg_input

三态门

1

0

1

ncp_ib

npc_wt

三态门 sr_ib

0

add_out

flag_funrc

clock

reset

Y00三10选01一

addr_sel

二 0选 一 1

1 二 选 0 一

0001 四10 选11 一

io_port

读内存指令 LDRR_2

实现功能: Mem[ar] → dr

控制信号: s_sel=01, r_sel=10, reg_wt=1

Page 18: 以动画形式看几条指令的执行过程: 2200:  ADD   R2, R3       ; 3  条指令的地址为 2200 、 2201 、 2202

PC

B 寄 存 器A 堆 REGs

控制信号产生线路

CU

A D 存储器

AR

S

A L U R

指令内容加法器

数据总线DB

地址总线AB

IR

0001 四10 选11 一

缓冲器

缓冲器

0 二 选1 一

三选一10 00 01

双向三态门

三态门

offset

1

串行接口

MAX202

控制器部件 运算器部件 存储器部件和接口电路

输入输出接口部件

串行设备

内部总线 IB

00 01 三 选10 一

0

dr

sr

Flag

C Z V S

1 0

二选一

NPCb_sel

a_sel y_sel

r_sel

s_selalu_func

Cy Over Sign Zero

reg_src

add_src

pc_wt ir_rt

pc_src

reg_wt

y_ib

ar_wt

gate_en

gate_dir

4

alu_out

reg_input

三态门

1

0

1

ncp_ib

npc_wt

三态门 sr_ib

0

add_out

flag_funrc

clock

reset

Y00三10选01一

addr_sel

二 0选 一 1

1 二 选 0 一

0001 四10 选11 一

io_port

CALA 指令 -1

实现功能: pc→AB , mem[AB]→pc , pc+1→npc, sp-1→sp,ar

控制信号: gate_en=1, mio=1, addr_sel=1, pc_src=10, pc_wt=1, npc_wt=1

b_src=01, r_sel=11, alu_func=001, reg_wt=1, ar_wt=1

Page 19: 以动画形式看几条指令的执行过程: 2200:  ADD   R2, R3       ; 3  条指令的地址为 2200 、 2201 、 2202

PC

B 寄 存 器A 堆 REGs

控制信号产生线路

CU

A D 存储器

AR

S

A L U R

指令内容加法器

数据总线DB

地址总线AB

IR

0001 四10 选11 一

缓冲器

缓冲器

0 二 选1 一

三选一10 00 01

双向三态门

三态门

offset

1

串行接口

MAX202

控制器部件 运算器部件 存储器部件和接口电路

输入输出接口部件

串行设备

内部总线 IB

00 01 三 选10 一

0

dr

sr

Flag

C Z V S

1 0

二选一

NPCb_sel

a_sel y_sel

r_sel

s_selalu_func

Cy Over Sign Zero

reg_src

add_src

pc_wt ir_rt

pc_src

reg_wt

y_ib

ar_wt

gate_en

gate_dir

4

alu_out

reg_input

三态门

1

0

1

ncp_ib

npc_wt

三态门 sr_ib

0

add_out

flag_funrc

clock

reset

Y00三10选01一

addr_sel

二 0选 一 1

1 二 选 0 一

0001 四10 选11 一

io_port

CALA 指令 -2

实现功能: ar→AB , npc→mem[AB]

控制信号: npc_ib=1, gate_en=1, gate_dir=1, mio=1, we=1

Page 20: 以动画形式看几条指令的执行过程: 2200:  ADD   R2, R3       ; 3  条指令的地址为 2200 、 2201 、 2202

PC

B 寄 存 器A 堆 REGs

控制信号产生线路

CU

A D 存储器

AR

S

A L U R

指令内容加法器

数据总线DB

地址总线AB

IR

0001 四10 选11 一

缓冲器

缓冲器

0 二 选1 一

三选一10 00 01

双向三态门

三态门

offset

1

串行接口

MAX202

控制器部件 运算器部件 存储器部件和接口电路

输入输出接口部件

串行设备

内部总线 IB

00 01 三 选10 一

0

dr

sr

Flag

C Z V S

1 0

二选一

NPCb_sel

a_sel y_sel

r_sel

s_selalu_func

Cy Over Sign Zero

reg_src

add_src

pc_wt ir_rt

pc_src

reg_wt

y_ib

ar_wt

gate_en

gate_dir

4

alu_out

reg_input

三态门

1

0

1

ncp_ib

npc_wt

三态门 sr_ib

0

add_out

flag_funrc

clock

reset

Y00三10选01一

addr_sel

二 0选 一 1

1 二 选 0 一

0001 四10 选11 一

io_port

RET 指令 _1

实现功能: sp→AB , sp+1→sp

控制信号: a_sel=1, y_sel=1, ar_wt=1

b_sel=01, r_sel=11, reg_wt=1

Page 21: 以动画形式看几条指令的执行过程: 2200:  ADD   R2, R3       ; 3  条指令的地址为 2200 、 2201 、 2202

PC

B 寄 存 器A 堆 REGs

控制信号产生线路

CU

A D 存储器

AR

S

A L U R

指令内容加法器

数据总线DB

地址总线AB

IR

0001 四10 选11 一

缓冲器

缓冲器

0 二 选1 一

三选一10 00 01

双向三态门

三态门

offset

1

串行接口

MAX202

控制器部件 运算器部件 存储器部件和接口电路

输入输出接口部件

串行设备

内部总线 IB

00 01 三 选10 一

0

dr

sr

Flag

C Z V S

1 0

二选一

NPCb_sel

a_sel y_sel

r_sel

s_selalu_func

Cy Over Sign Zero

reg_src

add_src

pc_wt ir_rt

pc_src

reg_wt

y_ib

ar_wt

gate_en

gate_dir

4

alu_out

reg_input

三态门

1

0

1

ncp_ib

npc_wt

三态门 sr_ib

0

add_out

flag_funrc

clock

reset

Y00三10选01一

addr_sel

二 0选 一 1

1 二 选 0 一

0001 四10 选11 一

io_port

RET 指令 _2

实现功能: ar→AB , mem[AB]→pc

控制信号: pc_src=10, pc_wt=1

gate_en=1, mio=1