计算机组成原理-脱机运算器实验

实验目的:

了解脱机操作下 AM2901 运算器的功能与控制信号的使用,了解运算器 AM2901 的内部

结构及工作时序,观察运算器运算的结果对状态标志的影响。

实验内容:

用模拟仿真软件进行运算器实验(1)

按下表所列的操作在“脱机运算器32”或“脱机运算器64”仿真软件上进行运算器实验,将结果填入表中:

运算

I8-I0

SST

SSH

SCI

B

A

压START后

ALU输出

目的寄

存器的值

D1*+0->R0

011000111

001

000

0000

不用

0101

0101

D2*+0->R1

011000111

001

000

0001

不用

1010

1010

R0+R1->R0

011000001

001

000

0000

0001

1111

1111

RO-R1->R0

011001001

001

001

0000

0001

0101

0101

R1-R0->R1

011001001

001

001

0001

0000

0f0f

0f0f

R0∨R1->R1

011011001

001

000

0001

0000

0f0f

0f0f

R0∧R1->R0

011100001

001

000

0000

0001

0101

0101

R0R1->R0

011110001

001

000

0000

0001

0e0e

0e0e

R0R1->R0

011111001

001

000

0000

0001

fefe

fefe

R0逻辑左移

111000011

001

100

0000

不用

fefe

fdfc

R0逻辑右移

101000011

001

100

0000

不用

fdfc

7efe

注:1、按顺序执行。每一个运算按压一次START 键。

2、由于仿真软件与真机实验箱略有不同,给出了部分SST和SCI的控制信号。

3、D1*和D2*为Data输入值,分别为0x01010x1010。

实验结果分析

(从上面表格第5行开始选择任意3个操作运算进行控制信号取值和运算结果值的分析):

1、

R0∨R1->R1

011011001

001

000

0001

0000

0f0f

0f0f

此指令要完成R0并R1的值送给R1。

B口对应R0,且地址为0001;A口对应R1,且地址为0000.

   数据来源为A和B,I2-I0为:001;运算是∨,I5-I3为:011;最后的值存储在A口对应的地址并输出,所以I8-I6所选值为011;该式接受ALU的标志位输出的值,所以

SST所选值为001;该式执行逻辑运算,所以SSH SCI所选值为000.

   因为R0=0101,R1=0f0f,所以按START后输出0f0f

2、

R0∧R1->R0

011100001

001

000

0000

0001

0101

0101

此指令要完成R0交R1的值送给R0。

B口对应R0,且地址为0001;A口对应R1,且地址为0000.

   数据来源为A和B,I2-I0为:001;运算是∧,I5-I3为:100;最后的值存储在B口对应的地址并输出,所以I8-I6所选值为011;该式接受ALU的标志位输出的值,所以

SST所选值为001;该式执行逻辑运算,所以SSH SCI所选值为000.

   因为R0=0101,R1=0f0f,所以按START后输出0101

3、

R0R1->R0

011111001

001

000

0000

0001

fefe

fefe

此指令要完成R0同或R1的值送给R0。

B口对应R0,且地址为0001;A口对应R1,且地址为0000.

   数据来源为A和B,I2-I0为:001;运算是,I5-I3为:111;最后的值存储在B口对应的地址并输出,所以I8-I6所选值为011;该式接受ALU的标志位输出的值,所以

SST所选值为001;该式执行逻辑运算,所以SSH SCI所选值为000.

   因为R0=0101,R1=0f0f,所以按START后输出fefe

用模拟仿真软件进行运算器实验(2)

按下表所列的操作在“脱机运算器32”或“脱机运算器64”仿真软件上进行运算器实验,将结果填入表中:

执行操作

I8

I7

I6

I5

I4

I3

I2

I1

I0

S

S

T

SSH

SCI

B口

A口

按START后

ALU

目的寄存器值

BBBB→R1

011

000

111

001

000

0001

不用

BBBB

BBBB

0001→R2

011

000

111

001

000

0010

不用

0001

0001

R1-R2→R1

011

001

001

001

001

0001

0010

BBBA

BBBA

0001→R3

011

000

111

001

000

0011

不用

0001

0001

R3+1→R3

011

000

011

001

001

0011

不用

0002

0002

1234→R5

011

000

111

001

000

0101

不用

1234

1234

R5→Y

R5+1→R5

010

000

100

001

001

0101

0101

1235

1235

AAAA→R7

011

000

111

001

000

0101

不用

aaaa

aaaa

9999→R8

011

000

111

001

000

1000

不用

9999

9999

R7-R8→R8

011

010

001

001

001

1000

0101

1111

1111

R8逻辑左移

111

000

011

001

100

1000

不用

2222

2222

思考题:

  1. 分析R1-R2→R1和 R7-R8→R8的结果,并说明操作控制的区别。

R1-R2→R1和 R7-R8→R8目的操作数和源操作数不同,前者是将操作的结果输入给被减数,而后者是将结果输入给减数,选择减法结果存储的位置,实现这一操作需要修改I5-I3,前者为001,后者为010。

  1. 说明R3+1→R3与R5→Y同时 R5+1→R5操作控制的区别。

两者在脱机运算器中运算结果没有差别。但是在实际的AM2901芯片中,后者在start键按下之前就已有输出,即R5→Y操作实际是产生了从目的寄存器到ALU再到输出端口Y的通路,这时显示的是目的寄存器改变之前的值。

  • 6
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值