计算机组成与系统结构实验一:运算器实验
1、掌握简单运算器的数据传输方式。⒉ 验证运算功能发生器(74LS181)及进位控制的组合功能。通过Dais-CMX16计算器组成原型教学实验系统,完成不带进位及带进位算术运算实验、逻辑、移位运算实验,熟悉ALU控制位的运用。实验中所用的运算器数据通路如图2-3-1所示。ALU运算器由CPLD描述。
一、实验目的
1、掌握简单运算器的数据传输方式。
⒉ 验证运算功能发生器(74LS181)及进位控制的组合功能。
二、实验要求
通过Dais-CMX16+计算器组成原型教学实验系统,完成不带进位及带进位算术运算实验、逻辑、移位运算实验,熟悉ALU控制位的运用。
三、实验原理
2.3.1的实验原理
实验中所用的运算器数据通路如图2-3-1所示。ALU运算器由CPLD描述。运算器的输出经过2片74LS245三态门与数据总线相连,2个运算寄存器AX、BX的数据输入端分别由4个74LS574锁存器锁存,锁存器的输入端与数据总线相连,准双向I/O输入输出端口用来给出参与运算的数据,经2片74LS245三态门与数据总线相连。
图2-3-1中,AXW、BXW在“搭接态”由实验连接对应的二进制开关控制,“0”有效,通过【单拍】按钮产生的负脉冲把总线上的数据打入,实现AXW、BXW写入操作。
2.3.2的实验原理
实验中所用的通用寄存器数据通路如下图所示。由四片8位字长的74LS574组成CX(R1 R0)、DX(R3 R2)通用寄存器组。图中X2 X1 X0定义输出选通使能,SI、XP控制位为源选通选择。RXW为寄存器数据写入使能,OP、DI为目的寄存器选择。DRCK信号为寄存器写脉冲,下降沿有效。准双向I/O输入输出端口用于置数操作,经2片74LS245三态门与数据总线相连。
四、实验内容与过程(写出实验步骤、结果截图及对每一个步骤设置的理解)
示例1 算术运算
1、字算术运算
(1)字写操作
通过I/O单元“S15~S0”开关向累加器AX和暂存器BX置数,操作步骤如下:
(2)字读操作
关闭AX、BX写使能,令K18=K17=“1”,按下流程分别读AX、BX。
(3)字加法与减法运算
令M S2 S1 S0(K15 K13~K11=0100),FUN及总线单元显示AX+BX的结果。
令M S2 S1 S0(K15 K13~K11=0101),FUN及总线单元显示AX-BX的结果。
2、字节算术运算
(1)偶字节写(置数操作)
通过I/O单元“S15~S0”开关向累加器AL和暂存器BL置数,具体操作步骤如下:
(2)偶字节读操作(运算寄存器AL和BL内容送总线)
关闭AL、BL写使能,令K18=K17=1,按下流程分别读AL、BL。
(3)字节减法算术运算(不带进位加)
令M S2 S1 S0(K15 K13~K11=0100),FUN及总线单元显示AL+BL的结果。
令M S2 S1 S0(K15 K13~K11=0101),FUN及总线单元显示AL-BL的结果。
示例2 逻辑运算
1、字逻辑运算
(1)字写操作(置数操作)
通过I/O单元“S15~S0”开关向累加器AX和暂存器BX置数,操作步骤如下:
(2)字读操作(运算寄存器AX和BX内容送总线)
关闭AX、BX写使能,令K18=K17=“1”,按下流程分别读AX、BX。
(3)字逻辑运算
令M S2 S1 S0(K15 K13~K11=1101),为逻辑与,FUN及总线显示AX逻辑与BX的结果。
令M S2 S1 S0(K15 K13~K11=1100),为逻辑或,FUN及总线显示AX逻辑或BX的结果。
2、字节逻辑运算
(1)偶字节写操作(置数操作)
通过I/O单元“S15~S0”开关向累加器AL和暂存器BL置数,具体操作步骤如下:
(2)偶字节读操作(运算寄存器AL和BL内容送数据总线)
关闭AL、BL写使能,令K18=K17=1,按下流程分别读AL、BL。
若运算控制位设为(M S2 S1 S0=1111)则F=AL,即AL内容送到数据总线。
若运算控制位设为(M S2 S1 S0=1000)则F=BL,即BL内容送到数据总线。
(3)偶字节逻辑运算
令M S2 S1 S0(K15 K13~K11=1101),为逻辑与,FUN及总线显示AL逻辑与BL的结果。
令M S2 S1 S0(K15 K13~K11=1100),为逻辑或,FUN及总线显示AL逻辑或BL的结果。
(4)奇字节写操作(置数操作)
通过I/O单元“S15~S0”开关向累加器AH和暂存器BH置数,具体操作步骤如下:
(5)奇字节读操作(运算寄存器AH和BH内容送数据总线)
关闭AH、BH写使能,令K18=K17=1,按下流程分别读AH、BH。
若运算控制位设为(M S2 S1 S0=1111)则F=AH,即AH内容送到数据总线。
若运算控制位设为(M S2 S1 S0=1000)则F=BH,即BH内容送到数据总线。
(6)奇字节逻辑运算
令M S2 S1 S0(K15 K13~K11=1101),为逻辑与,FUN及总线显示AH逻辑与BH的结果。
令M S2 S1 S0(K15 K13~K11=1100),为逻辑或,FUN及总线显示AH逻辑或BH的结果。
示例3 移位运算
◆不带进位循环左移:各位按位左移,最高位移入最低位。
◆不带进位循环右移:各位按位右移,最低位移入最高位。
◆带进位循环左移:各位按位左移,最高位移入C中,C中内容移入最低位。
◆带进位循环右:各位按位右移,最低位移入C中,C中内容移入最高位。
循环移位一般用于实现循环式控制、高低字节的互换,还可以用于实现多倍字长数据的算术移位或逻辑移位。
3、字移位运算
(1)向AX寄存器置数
拨动“I/O输入输出单元”开关向移位源寄存器AX置数,具体操作步骤如下:
(2)AX寄存器移位
令M=0 S1=1参照表2.3.2改变S2、S0的状态,再按动【单拍】按钮,观察AX移位变化。
4、字节移位运算
(1)AL寄存器置数
拨动“I/O输入输出单元”开关向移位源寄存器AL置数,具体操作步骤如下:
(2)AL寄存器移位
令M=0 S1=1参照表2.3.2改变S2、S0的状态,再按动【单拍】按钮,观察AL移位变化。
(3)AH寄存器置数
拨动“I/O输入输出单元”开关向移位源寄存器AH置数,具体操作步骤如下:
(4)AH寄存器移位
令M=0、S1=1参照表2.3.2改变S2、S0的状态,再按动【单拍】按钮,观察AH移位变化。
示例4 进位控制与零标志
(1)进位标志CY
运算标志CY是带复位可预置的进位标志,在运算时由M信号控制,当M=0时,按【单拍】按钮,在DRCK下降沿把当前运算溢出位(进位或借位)打入CY的锁存输出端Q2。在M=1时,由CN位控制CY的“位操作”。当CN=0时,按【单拍】按钮,在DRCK下降沿执行CY的置“1”、清零、取反操作;遇M=1、CN=1时,CY保持原始状态。CY的复位端由管理CPU直接控制。
(2)零标志Z
零标志Z是带复位端的运算结果判零标志,取源于运算器输出FUN。当FUN=00h时,zd为“1”,反之为“0”。;零标志由M信号控制,当M=0时,按【单拍】按钮,在DRCK下降沿把当前zd打入Z(零标志)的锁存输出端Q1。遇M=1,零标志Z保持原始状态。
(3)标志位的初始化
标志位的清零端由系统掌控与控位无关,在手动实验中需要清标志时,通过按动【返回】键来实现标志位的初始化。
系统提供CY与Z的状态灯,其显示特征为:进位标志CY=1时,灯“亮”,反之灯“灭”;零标志Z=1时,灯“亮”,反之灯“灭”。
进位标志CY实验
1、CY标志控制实验
(1)进位控制流程
(2)按上流程建立控制状态,参照下表改变方式控制,按【单拍】观察CY灯的变化
2、进位运算实验
2.3.2
1、寄存器的读写操作
(1)目的通路
当RXW=0时,由DI、OP编码产生目的寄存器地址,详见下表。
(2)CX、DX寄存器的写入
通过“I/O输入输出单元”向CX、DX分别置数1122h、3344h,操作步骤如下:
(3)源通路
当X2 X1 X0=0 0 1时,由SI、XP编码产生源寄存器,详见下表。
(4)CX、DX寄存器的读出
关闭CX、DX写使能,令RXW=1,按下流程分别读CX、DX。
2、实验连线:
2.3.1连线
K23~K0置“1”,灭M23~M0控位显示灯。然后按下表要求“搭接”部件控制电路。
2.3.2连线
3.实验过程及结果:
示例一、算术运算
1.字算术运算
(1)字写操作
将k10~k6的开关置为10000,在I/O单元进行置数,I/O=1122h,k18打开,k17-16,关闭,按下单拍,1122寄存在寄存器AX,然后将I/O单元进行置数,I/O=3344h,k17打开,k18和k16关闭,按下单拍,3344寄存在寄存器BX。
(2)字读操作
关闭AX、BX写使能,令K18=K17=“1”,令K10~K6=11000,读取FUN,令K15~K11=11111,数据总线显示AX值,令K13~K11=000,读取BX,数据总线显示BX值。
(3)字加法与减法运算
令M S2 S1 S0(K15 K13~K11=0100),FUN及总线单元显示AX+BX的结果。
令M S2 S1 S0(K15 K13~K11=0101),FUN及总线单元显示AX-BX的结果。
2.字节算术运算
(1)偶字节写(置数操作)
令K10~K6=10001,通过I/O单元置数,I/O=0022h,令K18~K16=100,按单拍,22h寄存到寄存器AL,通过I/O单元置数,I/O=0044h,令K18~K16=010,按单拍,44h寄存到寄存器BL。
(2)偶字节读操作(运算寄存器AL和BL内容送总线)
关闭AL、BL写使能,令K18=K17=1,令K10~K6=11001,读FUN,令K15~K11=11111,数据总线显示AL值,令K13~K11=000,读BL,数据总线显示BL值。
(3)字节减法算术运算(不带进位加)
令M S2 S1 S0(K15 K13~K11=0100),FUN及总线单元显示AL+BL的结果。
令M S2 S1 S0(K15 K13~K11=0101),FUN及总线单元显示AL-BL的结果。
示例2 逻辑运算
1.字逻辑运算
(1)字写操作(置数操作)前面示例一已有具体操作流程
(2)字读操作(运算寄存器AX和BX内容送总线)
(3)字逻辑运算
令M S2 S1 S0(K15 K13~K11=1101),为逻辑与,FUN及总线显示AX逻辑与BX的结果。
令M S2 S1 S0(K15 K13~K11=1100),为逻辑或,FUN及总线显示AX逻辑或BX的结果。
2.字节逻辑运算
(1)偶字节写操作(置数操作)
(2)偶字节读操作(运算寄存器AL和BL内容送数据总线)
- 若运算控制位设为(M S2 S1 S0=1111)则F=AL,即AL内容送到数据总线。
- 若运算控制位设为(M S2 S1 S0=1000)则F=BL,即BL内容送到数据总线。
(3)偶字节逻辑运算
令M S2 S1 S0(K15 K13~K11=1101),为逻辑与,FUN及总线显示AL逻辑与BL的结果。
令M S2 S1 S0(K15 K13~K11=1100),为逻辑或,FUN及总线显示AL逻辑或BL的结果。
(4)奇字节写操作(置数操作)
令K10~K6=10001,I/O单元置数为XX22h,令K18~K16=101,按单拍,将22h寄存在寄存器AH,I/O单元置数为XX66h,令K18~K16=011,按单拍,将66h寄存在寄存器BH。
(5)奇字节读操作(运算寄存器AH和BH内容送数据总线)
关闭AH、BH写使能,令K18=K17=1,令K10~K6=11011,读FUN,令K15~K11=11111,数据总线显示AH值,令K13~K11=000,读BH,数据总线显示BH值。
- 若运算控制位设为(M S2 S1 S0=1111)则F=AH,即AH内容送到数据总线。
- 若运算控制位设为(M S2 S1 S0=1000)则F=BH,即BH内容送到数据总线。
(6)奇字节逻辑运算
令M S2 S1 S0(K15 K13~K11=1101),为逻辑与,FUN及总线显示AH逻辑与BH的结果。
令M S2 S1 S0(K15 K13~K11=1100),为逻辑或,FUN及总线显示AH逻辑或BH的结果。
示例3 移位运算
1.字移位运算
(1)向AX寄存器置数
令K10~K6=10000,I/O单元置数为0080h,令K18~K16=100,按下单拍,将0080h寄存在寄存器AX,AX显示为0080。
(2)AX寄存器移位
令K10~K6=11000,令M=0,S1=1,进行移位控制,令K18~K16=100,按单拍,移位结果打入AX。
令M=0 S1=1参照表2.3.2改变S2、S0的状态,再按动【单拍】按钮,观察AX移位变化。
2.字节移位运算
(1)AL寄存器置数
令K10~K6=10001,I/O单元置数为XX80h,令K18~K16=100,按下单拍,AL=80。
(2)AL寄存器移位
令K10~K6=11001,令M=0,S1=1,进行移位控制,令K18~K16=100,按单拍,移位结果打入AL。
令M=0 S1=1参照表2.3.2改变S2、S0的状态,再按动【单拍】按钮,观察AL移位变化。
(3)AH寄存器置数
令K10~K6=10001,I/O单元置数为XX80h,令K18~K16=101,按下单拍,AH=80。
(4)AH寄存器移位
令K10~K6=11011,令M=0,S1=1,进行移位控制,令K18~K16=101,按单拍,移位结果打入AH。
令M=0、S1=1参照表2.3.2改变S2、S0的状态,再按动【单拍】按钮,观察AH移位变化。
实验思考
验证表2.3.3 ALU运算器编码表所列的运算功能。
在给定AX=6655h、BX=AA77h的情况下,改变运算器的功能设置,观察运算器的输出,填入下页表格中,并和理论分析进行比较、验证。
示例4 进位控制与零标志
进位标志CY实验
(1)CY标志控制实验
进位控制流程
令K23~K0全为1,按【返回】键,CY=0,令K15~K14=10,改变K7、K6,按单拍。
(2)进位运算实验
1、按【返回】键,:令K10~K6=10000,I/O单元置数为FFFEh,令K18~K16=100,按下单拍,AX=FFFEh,I/O单元置数为0003h,K18~K16=010,按下单拍,BX=0003h。
2、带进位加减法运算流程
令K23~K0全为1,关闭控位,令K10~K6=11000,令K15、K13、K12=000,改变K11,令K18-16=100。
3、在完成上流程中规定的设置操作后,按下列顺序执行带进位加减法运算实验:
带进位加法 令K11=0 AX=FFFEH,BX=0003H,CY=0,DBUS=FUN=0001H
按【单拍】钮 AX=0001H,BX=0003H,CY=1,DBUS=FUN=0005H
再按【单拍】钮 AX=0005H,BX=0003H,CY=0,DBUS=FUN=0008H
带进位减法 令K11=1 AX=0005H,BX=0003H,CY=0,DBUS=FUN=0002H
按【单拍】钮 AX=0002H,BX=0003H,CY=0,DBUS=FUN=FFFFH
再按【单拍】钮 AX=FFFFH,BX=0003H,CY=1,DBUS=FUN=FFFBH
(3)零标志实验(字识别)
1、向寄存器AX和BX置数
令K10~K6=10000,I/O单元置数为0001h,令K18-K16=100,按下单拍,AX=0001h,I/O单元置数为0001h,K18-K16=010,按下单拍,BX=0001h。
2、验证零标志锁存功能
按【返回】键清Z标志,令K23-K0=1,令K15-K11=01101,令K10-K6=11000,标志灯亮,令K11=0,,按单拍,建立零标志运算控制状态。K11=1时减法运算FUN=0000,按【单拍】钮Z标志灯亮(Z=1);K11=0时加法运算FUN=0002按【单拍】钮Z标志灯灭(Z=0)。
2.3.2
寄存器的读写操作
1、CX、DX寄存器的写入
令K10-K6=10000,I/O单元置数1122h,令K18-K16=000,按单拍,将1122h寄存到寄存器CX中,i/o单元置数3344h,令K18-K16=010,按下单拍,将3344h寄存到寄存器DX中。
2、CX、DX寄存器的读出
关闭CX、DX写使能,令RXW=1,令K19-K18=01,令K10-K6=00100,数据总线显示CX值,令K19=1,数据总线显示DX值。
五.实验总结(包括未完成内容、结果分析、学习心得等)
更多推荐
所有评论(0)