计算机组成原理课设Tec-2 02-实例分析

书接上文,想要理解最好的方法是看个实例,下面是上篇01-基础入门里面的一个微程序每一步的分析,大家可以利用微指令分析器一条一条对着看一遍。

题目:

把用绝对地址表示的内存单元ADDR1中的内容与内存单元ADDR2中的内容相减,结果存于内存单元ADDR1中。

指令格式:D5××,ADDR1,ADDR2,   三字指令(控存入口100H)

功能:    [ADDR1]=[ADDR1] -[ADDR2]

设计思路

该指令为三字指令,需要取出两个地址中的内容进行相减,并储存回第一个地址位置。由此可见第一个地址直至最后都需要使用到,为了增加效率,可以先将第二个操作数取出储存至Q寄存器,再取用第一个操作数。

流程图中的缩写含义:

PC: Program Counter (程序计数器)

AR: Address Register (地址寄存器)

MEM: Memory (当出现MEM的时候,就是在对"AR"存的地址取值)

AR相当于"指针",MEM相当于"值"

Q: Q Register (用来计算的)

微指令流程图

微指令详细设计

序号

微指令功能

微指令代码

详细功能

1

PC+1→AR

0000 0E00 90B5 5402

为AR读入第二个操作数的地址做准备

2

MEMAR

0000 0E00 10F0 0002

AR读入第二个操作数的地址

3

MEMQ

0000 0E00 00F0 0000

读第二个操作数并送Q寄存器

4

PCAR,PC+1→PC

0000 0E00 A0B5 5402

为AR读入第一个操作数的地址做准备

5

MEM→AR

0000 0E00 10F0 0002

AR读入第一个操作数的地址

6

QMEM-QQ

0000 0E01 02E0 0000

读第一个操作数并进行减法,结果送Q寄存器

7

QMEM,CC#=0

0029 0300 1020 0010

Q寄存器结果送回第一个操作数位置

逐条分析

每条指令里面,标黄的部分是关键的指令位,对着analyzer一条一条看一遍,大概能理解了就

Instruction#1

B55-B46

下地址字段

顺序执行时,下地址段任意

B45-B44

备用

备用位任意

B43-B40

CI3~CI0

顺序执行

B39-B37

SCC

任意

B36

SC

任意

B35

备用

备用位任意

B34-B32

SST

不是运算,任意即可

B31,B27,B23

/MIO、/REQ、/WE

不操作

B30-B28

MI8-6

运算器Y输出送F

B26-B24

MI5-3

运算功能选择为“R+S

B22-B20

MI2-0

Am2901的运算数来源选择0B

B19-B16

A口

R5(PC)

B15-B12

B口

R5(PC)

B11-B10

SCi

进位设置为1(实现PC+1)

B9-B8

SSH

无需移位

B7

SA

选择A口地址

B6-B4

DC1

未向总线发送控制,可任意

B3

SB

选择B口地址

B2-B0

DC2

运算器输出送AR,选/GAR

Instruction#2

B55-B46

下地址字段

顺序执行时,下地址段任意

B45-B44

备用

备用位任意

B43-B40

CI3~CI0

顺序执行

B39-B37

SCC

任意

B36

SC

任意

B35

备用

备用位任意

B34-B32

SST

不是运算,任意即可

B31,B27,B23

/MIO、/REQ、/WE

储存器读取

B30-B28

MI8-6

运算器Y输出送F

B26-B24

MI5-3

运算功能选择为“R+S

B22-B20

MI2-0

Am2901的运算数来源选择D0

B19-B16

A口

未用,任意

B15-B12

B口

未用,任意

B11-B10

SCi

进位为0

B9-B8

SSH

无需移位

B7

SA

选择A口地址

B6-B4

DC1

未向总线发送控制,可任意

B3

SB

选择B口地址

B2-B0

DC2

运算器输出送AR,选/GAR

Instruction#3

B55-B46

下地址字段

顺序执行时,下地址段任意

B45-B44

备用

备用位任意

B43-B40

CI3~CI0

顺序执行

B39-B37

SCC

任意

B36

SC

任意

B35

备用

备用位任意

B34-B32

SST

不是运算,任意即可

B31,B27,B23

/MIO、/REQ、/WE

储存器读取

B30-B28

MI8-6

运算器Y输出送F

B26-B24

MI5-3

运算功能选择为“R+S

B22-B20

MI2-0

Am2901的运算数来源选择D0

B19-B16

A口

未用,任意

B15-B12

B口

未用,任意

B11-B10

SCi

进位为0

B9-B8

SSH

无需移位

B7

SA

选择A口地址

B6-B4

DC1

未向总线发送控制,可任意

B3

SB

选择B口地址

B2-B0

DC2

未使用

Instruction#4

B55-B46

下地址字段

顺序执行时,下地址段任意

B45-B44

备用

备用位任意

B43-B40

CI3~CI0

顺序执行

B39-B37

SCC

任意

B36

SC

任意

B35

备用

备用位任意

B34-B32

SST

不是运算,任意即可

B31,B27,B23

/MIO、/REQ、/WE

不操作

B30-B28

MI8-6

运算器Y输出送F,寄存器结果返回至B

B26-B24

MI5-3

运算功能选择为“R+S

B22-B20

MI2-0

Am2901的运算数来源选择0B

B19-B16

A口

R5(PC)

B15-B12

B口

R5(PC)

B11-B10

SCi

进位设置为1(实现PC+1)

B9-B8

SSH

无需移位

B7

SA

选择A口地址

B6-B4

DC1

未向总线发送控制,可任意

B3

SB

选择B口地址

B2-B0

DC2

运算器输出送AR,选/GAR

Instruction#5

B55-B46

下地址字段

顺序执行时,下地址段任意

B45-B44

备用

备用位任意

B43-B40

CI3~CI0

顺序执行

B39-B37

SCC

任意

B36

SC

任意

B35

备用

备用位任意

B34-B32

SST

不是运算,任意即可

B31,B27,B23

/MIO、/REQ、/WE

储存器读取

B30-B28

MI8-6

运算器Y输出送F

B26-B24

MI5-3

运算功能选择为“R+S

B22-B20

MI2-0

Am2901的运算数来源选择D0

B19-B16

A口

未用,任意

B15-B12

B口

未用,任意

B11-B10

SCi

进位为0

B9-B8

SSH

无需移位

B7

SA

选择A口地址

B6-B4

DC1

未向总线发送控制,可任意

B3

SB

选择B口地址

B2-B0

DC2

未使用

Instruction#6

B55-B46

下地址字段

顺序执行时,下地址段任意

B45-B44

备用

备用位任意

B43-B40

CI3~CI0

顺序执行

B39-B37

SCC

任意

B36

SC

任意

B35

备用

备用位任意

B34-B32

SST

接受ALU标志位输出值

B31,B27,B23

/MIO、/REQ、/WE

储存器读取

B30-B28

MI8-6

运算器Y输出送F口,寄存器结果返回至Q

B26-B24

MI5-3

运算功能选择为“R-S

B22-B20

MI2-0

Am2901的运算数来源选择DQ

B19-B16

A口

未用,任意

B15-B12

B口

未用,任意

B11-B10

SCi

进位为0

B9-B8

SSH

无需移位

B7

SA

选择A口地址

B6-B4

DC1

未向总线发送控制,可任意

B3

SB

选择B口地址

B2-B0

DC2

未使用

Instruction#7

B55-B46

下地址字段

跳转执行,下地址段为A4,进行中断检测

B45-B44

备用

备用位任意

B43-B40

CI3~CI0

条件转移

B39-B37

SCC

判断CC#=0 

B36

SC

任意

B35

备用

备用位任意

B34-B32

SST

不是运算,任意即可

B31,B27,B23

/MIO、/REQ、/WE

储存器写入

B30-B28

MI8-6

运算器Y输出送F

B26-B24

MI5-3

运算功能选择为“R+S

B22-B20

MI2-0

Am2901的运算数来源选择0Q

B19-B16

A口

未用,任意

B15-B12

B口

未用,任意

B11-B10

SCi

进位为0

B9-B8

SSH

无需移位

B7

SA

选择A口地址

B6-B4

DC1

向总线发送控制,运算器输出至[AR]

B3

SB

选择B口地址

B2-B0

DC2

未使用

看懂了这条之后

下一篇继续

计算机组成原理课设Tec-2 03-指令设计​​​​​​​

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值