实验内容
一、实验原理
实验中所用的运算器数据通路如下图所示。ALU运算器由CPLD描述。运算器的输出经过2片74LS245三态门与数据总线相连,2个运算寄存器AX、BX的数据输入端分别由4个74LS374锁存器锁存,锁存器的输入端与数据总线相连。准双向I/O输入输出端口用来给出参与运算的数据,经2片74LS245三态门与数据总线相连。
![image](https://img-blog.csdnimg.cn/img_convert/11c556cd654d989ab55655475a595284.png)
在上图中,AXW、BXW在“搭接态”由实验连接对应的二进制开关控制,“0”有效,通过【单拍】按钮产生的负脉冲把总线上的数据打入,实现AXW、BXW写入操作。
二、运算器功能编码
ALU运算器编码表
![image](https://img-blog.csdnimg.cn/img_convert/25cebe11edeaeeede9b2f9c019b7a523.png)
三、实验连线
K23~K0置“1”,灭M23~M0控位显示灯。然后按下表要求“搭接”部件控制电路。
![image](https://img-blog.csdnimg.cn/img_convert/b5f0fa22d5bdb7a175a57bfa5cf10fbf.png)
实验1:算术运算
1. 字算术运算
(1) 字写操作
通过I/O单元“S15~S0”开关向累加器AX和暂存器BX置数,操作步骤如下:
![image](https://img-blog.csdnimg.cn/img_convert/412743b63386da483abcd9aa6c859ba9.png)
![image](https://img-blog.csdnimg.cn/img_convert/07b54b8ce8fd684a9f131d7ee53bd8aa.png)
(2) 字读操作
关闭AX、BX写使能,令K18=K17=“1”,按下流程分别读AX、BX。Dbus:1122h;3344h
![image](https://img-blog.csdnimg.cn/img_convert/1dc90224f5d27b5b1aa0c11317040e58.png)
(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显示
![image](https://img-blog.csdnimg.cn/img_convert/5679a2555e7fae64c85b409f4c2ef7dd.png)
(2) 偶字节读操作(运算寄存器AL和BL内容送总线)
关闭AL、BL写使能,令K18=K17=1,按下流程分别读AL、BL。
![image](https://img-blog.csdnimg.cn/img_convert/7d3fd761450d2dcb1b783e51ae546790.png)
![image](https://img-blog.csdnimg.cn/img_convert/eac8ceb58faf8540994f862fb16d5b9d.png)
(3) 字节减法算术运算(不带进位加)
令M S2 S1 S0(K15 K13~K11=0100),FUN单元显示AL+BL的结果。0066
令M S2 S1 S0(K15 K13~K11=0101),FUN单元显示AL-BL的结果。
实验2:逻辑运算
1. 字逻辑运算
(1) 字写操作(置数操作)
通过I/O单元“S15~S0”开关向累加器AX和暂存器BX置数,操作步骤如下:1122,3344
![image](https://img-blog.csdnimg.cn/img_convert/329ff1d3267d9293f06c5c46ad2dda7c.png)
![image](https://img-blog.csdnimg.cn/img_convert/fbc24f8234f288d3670d65ccfbfa6e5a.png)
(2) 字读操作(运算寄存器AX和BX内容送总线)
关闭AX、BX写使能,令K18=K17=“1”,按下流程分别读AX、BX。1122,3344
![image](https://img-blog.csdnimg.cn/img_convert/54a41d25c31a5b58fef1a413f107478d.png)
![image](https://img-blog.csdnimg.cn/img_convert/110ad27e59d0b7f12b17f0250f2f90b1.png)
(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。
实验3:移位运算
移位运算时把累加器A视为移位的源寄存器,也就是说移位是通过累加器A实现的。
1. 移位控制编码
![image](https://img-blog.csdnimg.cn/img_convert/62e4b8ede09cccd47882f4f64572c1d0.png)
2. 移位执行过程
① 循环左移 | ② 循环右移 |
---|
![image](https://img-blog.csdnimg.cn/img_convert/86745845a746f26c73736a9cd285294c.png) | ![image](https://img-blog.csdnimg.cn/img_convert/140da22cd7a13b14a334e717db9118a3.png) |
③ 带进位循环左移 | ④ 带进位循环右移 |
![image](https://img-blog.csdnimg.cn/img_convert/8bb1a6138dce5c7c7892dab7c2d4e984.png) | ![image](https://img-blog.csdnimg.cn/img_convert/e07304d3feb73ef0bbea6ec2887cc773.png) |
◆不带进位循环左移:各位按位左移,最高位移入最低位。
◆不带进位循环右移:各位按位右移,最低位移入最高位。
◆带进位循环左移:各位按位左移,最高位移入CY中,CY中内容移入最低位。
◆带进位循环右移:各位按位右移,最低位移入CY中,CY中内容移入最高位。
◆循环移位一般用于实现循环式控制、高低字节的互换,还可以用于实现多倍字长数据的算术移位或逻辑移位。
3. 字移位运算k23-k0全置1
(1) 向AX寄存器置数
拨动“I/O输入输出单元”开关向移位源寄存器AX置数,具体操作步骤如下:
![image](https://img-blog.csdnimg.cn/img_convert/dcfba7bb27a44384ab9f0fb3857f6341.png)
![image](https://img-blog.csdnimg.cn/img_convert/b33da1b5108840a7054e4f6d32395bb4.png)
(2) AX寄存器移位
![image](https://img-blog.csdnimg.cn/img_convert/99143b93bd5dedbb28121de483a2faf4.png)
![image](https://img-blog.csdnimg.cn/img_convert/08feda8d128d5980046b726434d2125b.png)
令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置数,具体操作步骤如下:
![image](https://img-blog.csdnimg.cn/img_convert/3d9418f902be827f5082f67e3d878919.png)
![image](https://img-blog.csdnimg.cn/img_convert/8b14587994797671a92c02de912a197c.png)
(2) AL寄存器移位
![image](https://img-blog.csdnimg.cn/img_convert/a0a49bf0274b125fb749bb36ad50e467.png)
令M=0 S1=1参照表2.3.2改变S2、S0的状态,再按动【单拍】按钮,观察AL移位变化。
实验题
1、 将0008H写入AH寄存器,然后完成AH寄存器移位运算
![image](https://img-blog.csdnimg.cn/img_convert/3e71a94b8ac5a39f8e3b8e60fc89398b.png)
![image](https://img-blog.csdnimg.cn/img_convert/0cdf595972fa66bf25982fb9202f8aae.png)
2、在给定AX=6655h、BX=AA77h的情况下,改变运算器的功能设置,观察运算器的输出,填入下页表格中,并和理论分析进行比较、验证。
![image](https://img-blog.csdnimg.cn/img_convert/7b539b4ad4f8936942ca1c35d2c44415.png)
实验4:进位控制与零标志
1. 标志控制原理
![image](https://img-blog.csdnimg.cn/img_convert/64d315b778d814901b31c2d146a76bbc.png)
(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. 实验连线
![image](https://img-blog.csdnimg.cn/img_convert/721a55bd64ddf04bf25c4cb60232c14f.png)
(3) 进位标志CY实验
(1) CY标志控制实验
① 进位控制流程
![image](https://img-blog.csdnimg.cn/img_convert/8671616eb18848f54c671689a325af41.png)
② 按上流程建立控制状态,参照下表改变方式控制,按【单拍】观察CY灯的变化
![image](https://img-blog.csdnimg.cn/img_convert/cf2322825b4e549a61b95fce63cd1ad3.png)
(2) 进位运算实验
① 按【返回】键,通过I/O单元向AX、BX分别置数,操作如下:
![image](https://img-blog.csdnimg.cn/img_convert/345504b52c67a602200de28976cc4f14.png)
② 带进位加减法运算流程(加:0001,减:FFEB)
![image](https://img-blog.csdnimg.cn/img_convert/e4eec21888ddae32efc8f0251b6f452f.png)
(3) 零标志实验(字识别)
① 向寄存器AX和BX置数
通过“I/O输入输出单元”向AX、BX均置数0001h,操作步骤如下:
![image](https://img-blog.csdnimg.cn/img_convert/c9009945bbf62c5be146be2074abbbca.png)
![image](https://img-blog.csdnimg.cn/img_convert/7bbfc4d909b8fca92f91371ceb31e1e8.png)
② 验证零标志锁存功能
按【返回】键清Z标志,按下流程建立零标志运算控制状态。K11=1时减法运算FUN=0000,按【单拍】钮Z标志灯亮(Z=1);K11=0时加法运算FUN=0002按【单拍】钮Z标志灯灭(Z=0)。
![image](https://img-blog.csdnimg.cn/img_convert/3c612104638f6ba83a728a475de86bdd.png)
实验报告
学院、系: | 计算机学院 |
---|
专业名称: | 软件工程 |
学生姓名: | 小何学长 |
一、实验题目
十六位机运算器
二、实验目的与要求
实验目的
掌握十六位机字与字节运算的数据传输格式,验证运算功能发生器及进位控制的组合功能。
实验要求
完成算术、逻辑、移位运算实验,熟悉ALU运算控制位的运用。
三、实验步骤
实验1:算术运算
1.字算术运算
(1)字写操作
通过I/O单元“S15~S0”开关向累加器AX和暂存器BX置数,操作步骤如下:
![image](https://img-blog.csdnimg.cn/img_convert/a08129366e51b02cdb7871a733afc8c6.png)
(2)字读操作
关闭AX、BX写使能,令K18=K17=“1”,按下流程分别读AX、BX。Dbus:1122h ;3344h
![image](https://img-blog.csdnimg.cn/img_convert/92c2dfa4f37c3a0763e3148cbffdfe44.png)
实验结果:
![image](https://img-blog.csdnimg.cn/img_convert/1f1e5ce964012471c42d475c722164f0.png)
![image](https://img-blog.csdnimg.cn/img_convert/3f7977909396a15dce38dd339fdb4216.png)
实验2:逻辑运算
2.字节逻辑运算
(1)奇字节写操作(置数操作) k23-k0=1
通过I/O单元“S15~S0”开关向累加器AH(H:high高位)和暂存器BH置数,具体操作步骤如下:
![image](https://img-blog.csdnimg.cn/img_convert/146904d9bbc3569978cf72795d419daa.png)
(2)奇字节读操作(运算寄存器AH和BH内容送数据总线)
关闭AH、BH写使能,令K18=K17=1,按下流程分别读AH、BH。
![image](https://img-blog.csdnimg.cn/img_convert/2890f3f39479f88439e5a9b3e2fcbfec.png)
实验结果:
![image](https://img-blog.csdnimg.cn/img_convert/b3f975a6668faa11547339c094b9fe28.png)
![image](https://img-blog.csdnimg.cn/img_convert/cdd76492aba05177e281bada5ab3edf4.png)
实验3:移位运算
4.字节移位运算
(1)AL寄存器置数
拨动“I/O输入输出单元”开关向移位源寄存器AL置数,具体操作步骤如下:
![image](https://img-blog.csdnimg.cn/img_convert/548986a16918ec47b97621d3176268bb.png)
(2)AL寄存器移位
![image](https://img-blog.csdnimg.cn/img_convert/d6478d33bb783703fd9b69c62f152dde.png)
实验结果:
![image](https://img-blog.csdnimg.cn/img_convert/4e19982d2b55c99c0a230f4978fc373d.png)
四、心得体会
本节课学习了并掌握十六位机字与字节运算的数据传输格式,验证运算功能发生器及进位控制的组合功能。同时完成算术、逻辑、移位运算实验,熟悉ALU运算控制位的运用。虽然操作有点麻烦,但还是坚持完成并验证了其原理,自己的动手能力有所增强,还学到了知识,真开心啊!
文档获取
完整版的实验内容+实验报告的Word文档
下载地址:https://download.csdn.net/download/HXBest/21561593?spm=1001.2014.3001.5503
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)