实验中所用的运算器数据通路如下图所示。ALU运算器由CPLD描述。运算器的输出经过2片74LS245三态门与数据总线相连,2个运算寄存器AX、BX的数据输入端分别由4个74LS374锁存器锁存,锁存器的输入端与数据总线相连。准双向I/O输入输出端口用来给出参与运算的数据,经2片74LS245三态门与数据总线相连。
在上图中,AXW、BXW在“搭接态”由实验连接对应的二进制开关控制,“0”有效,通过【单拍】按钮产生的负脉冲把总线上的数据打入,实现AXW、BXW写入操作。
ALU运算器编码表
K23~K0置“1”,灭M23~M0控位显示灯。然后按下表要求“搭接”部件控制电路。
1. 字算术运算
(1) 字写操作
通过I/O单元“S15~S0”开关向累加器AX和暂存器BX置数,操作步骤如下:
(2) 字读操作
关闭AX、BX写使能,令K18=K17=“1”,按下流程分别读AX、BX。Dbus:1122h;3344h
(3) 字加法与减法运算
令M S2 S1 S0(K15 K13~K11=0100),FUN及总线单元显示AX+BX的结果。4466
令M S2 S1 S0(K15 K13~K11=0101),FUN及总线单元显示AX-BX的结果。ddde
2. 字节算术运算
(1) 偶字节写(置数操作)k23-k0=1
通过I/O单元“S15~S0”开关向累加器AL(L:low低位)和暂存器BL置数,具体操作步骤如下:置0022h和0044h ax和bx显示
(2) 偶字节读操作(运算寄存器AL和BL内容送总线)
关闭AL、BL写使能,令K18=K17=1,按下流程分别读AL、BL。
(3) 字节减法算术运算(不带进位加)
令M S2 S1 S0(K15 K13~K11=0100),FUN单元显示AL+BL的结果。0066
令M S2 S1 S0(K15 K13~K11=0101),FUN单元显示AL-BL的结果。
1. 字逻辑运算
(1) 字写操作(置数操作)
通过I/O单元“S15~S0”开关向累加器AX和暂存器BX置数,操作步骤如下:1122,3344
(2) 字读操作(运算寄存器AX和BX内容送总线)
关闭AX、BX写使能,令K18=K17=“1”,按下流程分别读AX、BX。1122,3344
(3) 字逻辑运算
令M S2 S1 S0(K15 K13~K11=1101),为逻辑与,FUN及总线显示AX逻辑与BX的结果1100。
令M S2 S1 S0(K15 K13~K11=1100),为逻辑或,FUN及总线显示AX逻辑或BX的结果3366。
移位运算时把累加器A视为移位的源寄存器,也就是说移位是通过累加器A实现的。
2. 移位执行过程
① 循环左移 | ② 循环右移 |
---|---|
③ 带进位循环左移 | ④ 带进位循环右移 |
◆不带进位循环左移:各位按位左移,最高位移入最低位。
◆不带进位循环右移:各位按位右移,最低位移入最高位。
◆带进位循环左移:各位按位左移,最高位移入CY中,CY中内容移入最低位。
◆带进位循环右移:各位按位右移,最低位移入CY中,CY中内容移入最高位。
◆循环移位一般用于实现循环式控制、高低字节的互换,还可以用于实现多倍字长数据的算术移位或逻辑移位。
3. 字移位运算k23-k0全置1
(1) 向AX寄存器置数
拨动“I/O输入输出单元”开关向移位源寄存器AX置数,具体操作步骤如下:
令M=0 S1=1参照表2.3.2改变S2、S0的状态,再按动【单拍】按钮,观察AX移位变化。
0080-0040-0020-0010-0008-0004-0002-0001-8000-4000-2000-1000-0800-0400-0200-0100-0080
4. 字节移位运算
(1) AL寄存器置数
拨动“I/O输入输出单元”开关向移位源寄存器AL置数,具体操作步骤如下:
(2) AL寄存器移位
令M=0 S1=1参照表2.3.2改变S2、S0的状态,再按动【单拍】按钮,观察AL移位变化。
1、 将0008H写入AH寄存器,然后完成AH寄存器移位运算
2、在给定AX=6655h、BX=AA77h的情况下,改变运算器的功能设置,观察运算器的输出,填入下页表格中,并和理论分析进行比较、验证。
1. 标志控制原理
(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时,灯“亮”,反之灯“灭”。
2. 实验连线
(3) 进位标志CY实验
(1) CY标志控制实验
① 进位控制流程
② 按上流程建立控制状态,参照下表改变方式控制,按【单拍】观察CY灯的变化
(2) 进位运算实验
① 按【返回】键,通过I/O单元向AX、BX分别置数,操作如下:
② 带进位加减法运算流程(加:0001,减:FFEB)
(3) 零标志实验(字识别)
① 向寄存器AX和BX置数
通过“I/O输入输出单元”向AX、BX均置数0001h,操作步骤如下:
② 验证零标志锁存功能
按【返回】键清Z标志,按下流程建立零标志运算控制状态。K11=1时减法运算FUN=0000,按【单拍】钮Z标志灯亮(Z=1);K11=0时加法运算FUN=0002按【单拍】钮Z标志灯灭(Z=0)。
学院、系: | 计算机学院 |
---|---|
专业名称: | 软件工程 |
学生姓名: | 小何学长 |
十六位机运算器
掌握十六位机字与字节运算的数据传输格式,验证运算功能发生器及进位控制的组合功能。
完成算术、逻辑、移位运算实验,熟悉ALU运算控制位的运用。
1.字算术运算
(1)字写操作
通过I/O单元“S15~S0”开关向累加器AX和暂存器BX置数,操作步骤如下:
(2)字读操作
关闭AX、BX写使能,令K18=K17=“1”,按下流程分别读AX、BX。Dbus:1122h ;3344h
实验结果:
2.字节逻辑运算
(1)奇字节写操作(置数操作) k23-k0=1
通过I/O单元“S15~S0”开关向累加器AH(H:high高位)和暂存器BH置数,具体操作步骤如下:
(2)奇字节读操作(运算寄存器AH和BH内容送数据总线)
关闭AH、BH写使能,令K18=K17=1,按下流程分别读AH、BH。
实验结果:
4.字节移位运算
(1)AL寄存器置数
拨动“I/O输入输出单元”开关向移位源寄存器AL置数,具体操作步骤如下:
(2)AL寄存器移位
实验结果:
本节课学习了并掌握十六位机字与字节运算的数据传输格式,验证运算功能发生器及进位控制的组合功能。同时完成算术、逻辑、移位运算实验,熟悉ALU运算控制位的运用。虽然操作有点麻烦,但还是坚持完成并验证了其原理,自己的动手能力有所增强,还学到了知识,真开心啊!
完整版的实验内容+实验报告的Word文档
下载地址:https://download.csdn.net/download/HXBest/21561593?spm=1001.2014.3001.5503