实验二 算术逻辑运算及移位操作
算术逻辑运算实验总结
算术逻辑运算实验总结一、引言在现代社会中,算术逻辑运算是一项基本且必不可少的能力。
它们不仅在日常生活中起着重要作用,也广泛应用于各个领域的科学和工程。
为了提高算术逻辑运算的能力,我进行了几项实验,并总结了一些重要的经验和教训。
二、实验一:基本算术运算在这个实验中,我进行了一系列的基本算术运算,如加法、减法、乘法和除法。
通过这些运算,我更加熟悉了数字和运算的关系,并且提高了我的计算速度和准确性。
通过这个实验,我发现了一些有趣的现象。
首先,我发现加法和减法是最简单的运算,因为它们只涉及到数字的简单相加或相减。
而乘法和除法则需要更多的思考和推理,因为它们涉及到数字的相对大小和关系。
除此之外,在进行算术运算时,我还体会到了一些技巧和方法。
例如,在进行长数列的相加时,可以将它们分成多个小段,然后分别相加,最后再将结果相加。
这样可以降低错误的可能性,同时提高计算的效率。
三、实验二:逻辑运算逻辑运算是另一种重要的运算方式。
在这个实验中,我学习了逻辑运算的基本原理和方法,并进行了一些实际的应用。
首先,我学习了与运算、或运算和非运算的基本规则。
通过这些规则,我可以判断一个命题的真假,或者从若干个命题中得出一个新的结论。
这是在科学和工程中经常用到的一种思维方式。
其次,我了解了逻辑运算在算法设计和编程中的重要性。
在编写程序时,逻辑运算用于判断条件和控制程序的流程。
通过合理地使用逻辑运算,可以使程序更加高效和精确。
实验中,我发现了一些常见的逻辑谬误。
例如,德摩根定律的错误应用会导致逻辑矛盾和错误的结果。
因此,在进行逻辑运算时,我要特别注意各种规则和定律的正确使用。
四、实验三:复杂算术逻辑运算在这个实验中,我尝试了一些更加复杂的算术逻辑运算,如平方根运算、对数运算和三角函数运算。
通过这些运算,我更深入地了解了数学的奥秘和复杂性。
在进行这些运算时,我遇到了一些困难和挑战。
首先,一些运算需要使用特殊的方法和技巧,我要仔细学习和掌握这些技术。
实验2 算术与逻辑运算指令实验
实验2 算术与逻辑运算指令实验一、实验目的1. 学习算术与逻辑运算的原理及指令的用法;2. 进一步学习emu8086调试程序的用法,并学会emu8086下编写简单应用程序的方法;3. 掌握BCD码加、减法以及ASCII码加减法。
二、实验内容1. 用emu8086执行各加减法指令以及不同编码方式的运算方法,记录执行结果,进行分析、比较,掌握各功能类似的指令之间的差别。
2. 用emu8086编写一个COM文件,其功能是检查自身的长度以及代码检查和。
如果自身的长度改变或检查和改变,则显示“VIRUS”,否则显示“OK”。
三、实验步骤(一) 加法、减法以及逻辑运算指令练习1. 启动emu8086;2. 用单步按钮命令调试以下程序段(分号后注释部分不用输入);-Axxxx:0100 XOR AX,AX ;AX= , C=____, Z=____xxxx:0102 MOV AX,89AB ;AX= , C=____, Z=____xxxx:0105 MOV BX,AX ;BX=xxxx:0107 INC AX ;AX= , C=____, Z=____xxxx:0108 DEC AX ;AX= , C=____, Z=____xxxx:0109 ADD AX,SI ;AX= , C=____, Z=____xxxx:010B SUB AX,SI ;AX= , C=____, Z=____xxxx:010D ADC AX,SI ;AX= , C=____, Z=____xxxx:010F SBB AX,SI ;AX= , C=____, Z=____xxxx:0111 NOPxxxx:0112 MOV AX,0808xxxx:0115 MOV BX,0080xxxx:0118 MOV CX,0880 ;CX=___________xxxx:011B OR AX,BX ;AX=___________ , C=____, OV=____xxxx:011D MOV AX,0808 ;AX=___________, BX=___________xxxx:0120 AND AX,CX ;AX=___________, C=____, S=____xxxx:0122 MOV AX,0808 ;AX=___________, CX=___________xxxx:0125 XOR AX,BX ;AX=___________, BX=___________xxxx:0127 NOT AX ;AX=___________xxxx:0129 NEG AX ;AX=___________xxxx:012B3. 分析上述程序段,用铅笔填写指令依次执行后寄存器和标志位的值,观察它们的变化。
计算机组成原理--实验二 算术逻辑运算实验
实验二算术逻辑运算实验一、实验目的(1)了解运算器芯片(74LS181)的逻辑功能。
(2)掌握运算器数据的载入、读取方法,掌握运算器工作模式的设置。
(3)观察在不同工作模式下数据运算的规则。
二、实验原理1.运算器芯片(74LS181)的逻辑功能74LS181是一种数据宽度为4个二进制位的多功能运算器芯片,封装在壳中,封装形式如图2-3所示。
图2-374LS181封装图主要引脚有:(1)A0—A3:第一组操作数据输入端。
(2)B0—B3:第二组操作数据输入端。
(3)F0—F3:操作结果数据输入端。
(4)F0—F3:操作功能控制端。
(5):低端进位接收端。
(6):高端进位输出端。
(7)M:算数/逻辑功能控制端。
芯片的逻辑功能见表2-1.从表中可以看到当控制端S0—S3为1001、M为0、为1时,操作结果数据输出端F0—F3上的数据等于第一组操作数据输入端A0—A3上的数据加第二组操作数据输入端B0—B3上的数据。
当S0—S3、M、上控制信号电平不同时,74LS181芯片完成不同功能的逻辑运算操作或算数运算操作。
在加法运算操作时,、进位信号低电平有效;减法运算操作时,、借位信号高电平有效;而逻辑运算操作时,、进位信号无意义。
2.运算器实验逻辑电路试验台运算器实验逻辑电路中,两片74LS181芯片构成一个长度为8位的运算器,两片74LS181分别作为第一操作数据寄存器和第二操作数据寄存器,一片74LS254作为操作结果数据输出缓冲器,逻辑结构如图2-4所示。
途中算术运算操作时的进位Cy判别进位指示电路;判零Zi和零标志电路指示电路,将在实验三中使用。
第一操作数据由B-DA1(BUSTODATA1)负脉冲控制信号送入名为DA1的第一操作数据寄存器,第二操作数据由B-DA2(BUSTODATA2)负脉冲控制信号送入名为DA2的第二操作数据寄存器。
74LS181的运算结果数据由(ALUTOBUS)低电平控制信号送总线。
移位运算实验
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
9
计 算 机 组 成 原 理 实 验
六.思考题
算出若置数10101010,进位分别为1或0时, 执行3次不带进位左移和3次带进位左移的 结果。并和实验所得结果进行比较验证。
10
计 算 机 组 成 原 理 实 验
计算机组成原理
实验一运算器实验
2、移位运算实验
计 算 机 组 成 原 理 实 验
1、算术逻辑运算实验
一、实验目的:
验证移位控制的组合功能。
2
计 算 机 组 成 原 理 实 验
2、移位运算实验
二、实验原理
使用了一片74LS299作为移位发生器,其八输入/输 出端以排针方式和总线单元连接。299—B信号控制 其使能端,T4时序为其时钟脉冲,实验时将“W/R UNIT”中的T4接至“STATE UNIT”中的KK2单脉冲发 生器,由S0、S1、M控制信号控制其功能状态。
置数,具体步骤如下:
数据开关
(01101011)
三 门
态
置 数
(01101011)
三 态 门 SW-B=1
SW-B=0
S 0 = 1 S 1 = 1 T 4 =
8
计 算 机 组 成 原 理 实 验
五、分析整理实验数据,写出实验报告 A=01101011 (6B)
299-B 0 S1 0 S2 0 M 任意 移位结果
5
计 算 机 组 成 原 理 实 验
2、移位运算实验
三、实验仪器 TDN-CM++计算机组成原理教学实验系统一 台,排线若干。
实验二:算术逻辑运算和移位运算
西安交通大学实验报告
课程名称:微机原理与接口技术实验名称数据传送
班级:机械36班姓名:申湾舟学号:2130101125
实验日期:2015年9 月29日教师审阅签字:1.实验目的
(1)熟悉算数逻辑运算指令和移位指令的功能;
(2)了解标志寄存器中各个标志位的意义以及指令执行对它的影响。
2.实验内容
(1)标志位改变规律;
(2)简单存储和计算;
(3)写出规定功能的程序1;
(4)写出规定功能的程序2;
(5)补全规定功能的程序;
(6)清除操作;
(7)执行已知程序;
(8)实验结果分析。
3.实验工具
操作系统:windows7;实验平台:调试工具TD.EXE。
4.实验步骤与结果
(1)标志位改变规律;
在TD.EXE中输入程序段并且单步运行,观察标志位变化。
(2)简单存储和计算;
(3)写出规定功能的程序1;
(4)写出规定功能的程序2;
(5)补全规定功能的程序;
(6)清除操作;
(7)执行已知程序;
(8)实验结果分析。
五、实验小结
Page2 of 7。
运算器移位运算实验报告
运算器移位运算实验报告大家好,今天我们来聊聊运算器移位运算。
移位运算,听起来是不是有点高深,其实它就是把二进制数里的位数往左或者往右移动。
就好比你把手里的糖果往一边推,推得越远,糖果就越少,推的方向不同,糖果的分布也会变。
想象一下,如果你有一个二进制数“1011”,往左移一位,就变成“0110”,简单吧?这就像把一块蛋糕切成两半,左右两边都有不同的口感。
移位运算有两种主要方式,分别是逻辑移位和算术移位。
逻辑移位就像是清理桌面,把不需要的东西往边上推,留出更多空间。
比如说,把“0001”逻辑右移一位,结果是“0000”,因为我们把那个“1”给推掉了。
而算术移位就更像是做数学题,保持符号位不变。
比如把“1111”右移一位,结果变成“1111”,这边的“1”继续留在那儿,就像是有个坚强的队友,没让他离开。
移位运算的意义是什么呢?这可是大有来头!在计算机里,运算器用移位运算来做乘法和除法。
这种方式效率高得惊人。
想象一下,你要把10乘以2,普通方法得一笔一划地加,耗时又费力;可如果用移位运算,你只需把“10”左移一位,就直接变成了“100”,这可是速度与激情的完美结合。
简直是搬家时一挥而就,省时省力。
移位运算也有一些小技巧和注意事项。
比如说,左移一位相当于乘以2,而右移一位则相当于除以2。
这时候,很多小伙伴可能会想,哎,这不是太简单了吗?简单的背后往往有深意。
比如在处理负数时,算术右移就很有必要了,得考虑符号位,不然就像走路没看路,容易摔跤。
聪明的小伙伴们可别忘了这一点哦。
在实验过程中,我们用了一些工具来帮助我们实现这些操作。
比如说,运算器和一些编程软件,这些工具就像是我们实验室里的“小助手”。
每次移位运算之后,看到结果在屏幕上瞬间出现,心里那种满足感简直不要太好。
就像把新买的零食打开,一口下去,幸福感爆棚!我们还做了些小实验,看看不同的移位运算会有什么不同的结果。
有时我们故意用一些边界值,比如说全是“1”的数,结果每次操作都能引发“哇”的一声惊叹。
实验二 算术逻辑运算及移位操作
实验二算术逻辑运算及移位操作一.实验任务1.实验程序段及结果表格如表:分析:程序段1:MOV AX, 1018H ;AX←1018HMOV SI, 230AH ;SI←230AHADD AX, SI ;AX=3322H,低8位为00100010B,1的个数;为偶数,PF=1,同时D3向D4有进位发生,AF=1 ADD AL, 30H ;AX=3352H,低8位1个个数为奇数,PF=0 MOV DX, 3FFH ;DX←3FFHADD AX,BX ;AX=3352H,MOV [20H], 1000H ;[20H]←1000HADD [20H], AX ;[20H]=4352HPUSH AX ;POP BX ;BX=3352H程序段2:MOV AX, 0A0AH ;AX←0A0AHADD AX, 0FFFFH ;AX=0A09H,最高位进位CF=1,低8位1的;个数为偶数PF=1;D3向D4进位AF=1 MOV CX, 0FF00H ;CX←0FF00HADC AX, CX ;AX=090AH,最高位进位CF=1,低8位1的个;数为偶数PF=1SUB AX, AX ;AX=0,运算结果为零ZF=1INC AX ;AX=1HOR CX, 0FFH ;CX=0FFFFH,最高位为1,ZF=1,低8位1的;个数为偶数PF=1AND CX, 0F0FH ;CX=0F0FH,低8位1的个数为偶数PF=1MOV [10H], CX ;[10H]←0F0FH程序段3:MOV BL, 25H ;BL←25HMOV BYTE PTR[10H], 4 ;[10H]←04HMOV AL, [10H] ;AL←04HMUL BL ;AL=94H程序段4:MOV WORD PTR[10H],80H ;[10H]←0080HMOV BL, 4 ;BL←04HMOV AX, [10H] ;AX←0080HDIV BL ;AX=0020H程序段5:MOV AX, 0 ;AX←0000HDEC AX ;AX=0FFFFH,最高位为1,SF=1,低8;位1的个数为偶数PF=1,最高位向前、;D3向D4有借位,CF=1,AF=1 ADD AX, 3FFFH ;AX=3FFEH,D3向D4有进位,AF=1 ADD AX, AX ;AX=7FFCH,低8位1的个数为偶数,PF=1;D3向D4有进位,AF=1NOT AX ;AX=8003HSUB AX, 3 ;AX=8000H,低8位1的个数为偶数,PF=1;最高位为1,SF=1OR AX, 0FBFDH ;AX=0FBFDH,最高位为1,SF=1AND AX, 0AFCFH ;AX=0ABCDH,最高位为1,SF=1SHL AX,1 ;AX=579AH,低8位1的个数为偶数,PF=1,;算数结果溢出OF=1,最高位进位CF=1 RCL AX,1 ;AX=0AF35H,低8位1的个数为偶数,;PF=1,算数结果溢出OF=12.用BX寄存器作为地址指针,从BX所指的内存单元(0010H)开始连续存入三个无符号数(10H、04H、30H),接着计算内存单元中的这三个数之和,和放在0013H单元中,再求出这三个数之积,积放0014单元中。
汇编实验2
汇编实验2.1-2.4软件工程20091120183 李铮2.1数据传送指令的使用1.实验目的:负责把数据、地址或立即数传送到寄存器、存储单元以及I/O端口,或从内存单元、I/O端口中读取数据。
可以分为下面几类:1. 通用传送指令:MOV,PUSH,POP,XCHG,XLA T2. 输入输出指令指令: IN,OUT3. 目的地址传送指令: LEA,LDS,LES4. 标志位传送指令: LAHF,SAHF,PUSHF,POPF2.实验步骤:1. 传送指令1)用A命令在内存100H处键入下列内容:MOV AX,1234MOV BX,5678XCHG AX,BXMOV AH,35MOV AL,48MOV DX,75ABXCHG AX,DX2)用U命令检查键入的程序并记录,特别注意左边的机器码。
3)用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。
并注意标志位有无变化。
2.改变标志寄存器psw中tf标志的状态(0——1或1——0),其余位保持不变。
3. 设DS=当前段地址,BX=0300H,SI=0002H,请用DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装入0AH,0BH,0CH,0DH,0EH。
在DEBUG状态下使用A 命令送入下面程序,并用单步T命令执行的方法,分析每条指令源地址的形成过程?当数据传送每完成一次,试分析AX寄存器中的内容是什么?程序清单如下:MOV AX,BXMOV AX,0304HMOV AX,[0304H]MOV AX,[BX]MOV AX,0001[BX]MOV AX,[BX][SI]HLT4. 使用标志位传送指令,编程序段将标志位寄存器的低八位的值存入内存单元DS:1000H 中或堆栈中,然后将标志位寄存器的低八位置位为10101010。
2.2算术逻辑运算和移位指令的使用1.实验目的:使用算术逻辑运算和移位指令,可以实现对二进制数据的加、减、乘、除等四则运算,与、或、非、异或等逻辑运算,以及移位运算和代码转换运算。
计算机组成原理 -实验一运算器组成实验_
三.实验内容
验证74LS181的算术运算和逻辑运算功能(采 用正逻辑)
改变运算器的功能设置,观察运算器的输出。
SW-B=1、ALU-B=0保持不变 在给定DR1=65、DR2=A7的情况下,改变运算器的功
能设置,观察运算器的输出,填入下表中,并和理论分 析进行比较、验证。 例如:置S3 S2 S1 S0 M CN为 1 0 0 1 0 1 运算器做加 法运算;
45
4.实验步骤
4.对源程序进行编译
在左方Source in Project栏中选中第二行ispLSI1032-70LJ84, 在右方Process for current Source栏中双击第七行JEDEC File按钮,则开始编译。如果编译正确,则生成可下载的文 件JEDEC File,即使出现警告提示,也表示已成功生成了可 下载文件。如果提示错误,则需要修改程序,然后重新编译。
40
3.实验原理
对该器件的逻辑系统设计是通过使用硬件描述 语言活原理图输入来实现的,硬件描述语言有 ABEL、VHDL等多种语言。
为了方便同学学习,这里以硬件描述语言进行 编程,描写器件功能,下面用ABEL语言编程 来实现一个加法器。
41
4.实验步骤
1.安装EDA。
打开计算机电源,进入windows系统,安装上述 ispDesignEXPERT软件,安装完成后,桌面和开始菜单中 则建有ispDesignEXPERT软件图标。
5
三.实验内容
图中已将用户需要连接的控制信号用圆圈标明(其 他实验相同,不再说明),其中除T4为脉冲信号, 其它均为电平信号。由于实验电路中的时序信号均 已连至“W/R UNIT”的相应时序信号引出端,因此, 在进行实验时,只需将“W/R UNIT”的T4接至 “STATE UNIT”的微动开关KK2的输出端,按动微 动开关,即可获得实验所需的单脉冲,而S3、S2、 S1、S0 、Cn、M、LDDR1、LDDR2、ALU-B、 SW-B各电平控制信号用“SWITCH UNIT”中的二 进制数据开关来模拟,其中Cn、ALU-B、SW-B为 低电平有效,LDDR1、LDDR2为高电平有效。
算术逻辑单元 移位
算术逻辑单元移位
算术逻辑单元中的移位操作是指将二进制数在位级上向左或向
右移动一定的位数。
移位操作可以用于快速实现乘、除、乘方、取模等算法。
具体来说,移位操作可分为逻辑移位和算术移位两种。
逻辑移位只是简单地将二进制数的位向左或向右移动,不考虑符号位;而算术移位则需要考虑符号位,对于正数,算术移位和逻辑移位结果相同,但对于负数则有所不同。
在电路中,移位操作通常是由移位寄存器实现的。
移位寄存器是一种特殊的寄存器,可以实现数值的移位操作。
常见的移位寄存器有左移寄存器和右移寄存器,它们分别可以将二进制数向左或向右移动一定的位数。
移位寄存器可以使用逻辑门电路来实现,例如使用与门和非门可以实现左移寄存器,使用或门和非门可以实现右移寄存器。
总之,移位操作是算术逻辑单元中非常重要的一个操作,它可以用于实现很多高效的算法,对于电路设计工程师来说也是必须掌握的一项技能。
- 1 -。
移位操作电路实验报告(3篇)
第1篇一、实验目的1. 理解移位操作电路的工作原理。
2. 掌握移位操作电路的设计与搭建方法。
3. 验证移位操作电路的功能和性能。
二、实验原理移位操作电路是数字电路中常用的基本单元,用于实现二进制数的移位操作。
根据移位方向的不同,移位操作可分为逻辑移位和算术移位。
1. 逻辑移位:将移位的数据视为无符号数据,移位过程中不考虑数据的符号位。
逻辑移位包括逻辑左移(SLL)和逻辑右移(SRL)。
2. 算术移位:将移位的数据视为带符号数据,移位过程中保持符号位不变。
算术移位包括算术右移(SRA)。
移位操作电路主要由移位寄存器和控制逻辑组成。
移位寄存器用于存储待移位的数据,控制逻辑根据移位指令控制移位寄存器的移位操作。
三、实验设备1. 移位寄存器:一片74LS1942. 逻辑门电路:若干3. 电源:+5V4. 导线:若干5. 实验平台:示波器、逻辑分析仪等四、实验内容1. 逻辑左移(SLL)实验(1)搭建电路:将74LS194连接成8位左移寄存器,并添加控制逻辑。
(2)输入数据:将初始数据输入移位寄存器。
(3)控制移位:通过控制逻辑,实现数据的逻辑左移操作。
(4)观察结果:使用示波器或逻辑分析仪观察移位寄存器的输出,验证逻辑左移功能。
2. 逻辑右移(SRL)实验(1)搭建电路:将74LS194连接成8位右移寄存器,并添加控制逻辑。
(2)输入数据:将初始数据输入移位寄存器。
(3)控制移位:通过控制逻辑,实现数据的逻辑右移操作。
(4)观察结果:使用示波器或逻辑分析仪观察移位寄存器的输出,验证逻辑右移功能。
3. 算术右移(SRA)实验(1)搭建电路:将74LS194连接成8位算术右移寄存器,并添加控制逻辑。
(2)输入数据:将初始数据输入移位寄存器。
(3)控制移位:通过控制逻辑,实现数据的算术右移操作。
(4)观察结果:使用示波器或逻辑分析仪观察移位寄存器的输出,验证算术右移功能。
五、实验结果与分析1. 逻辑左移实验结果:通过示波器或逻辑分析仪观察移位寄存器的输出,发现数据实现了逻辑左移,验证了逻辑左移功能。
算术移位与逻辑移位
算术移位与逻辑移位
算术移位指令对带符号数进⾏移位。
逻辑移位指令对⽆符号数进⾏移位。
算术左移、右移,逻辑左移、右移的图⽰如下
算术左移和算术右移主要⽤来进⾏有符号数的倍增、减半;
逻辑左移和逻辑右移主要⽤来进⾏⽆符号数的倍增、减半。
算术左移和逻辑左移⼀样都是右边补0:⽐如 00101011
算术左移⼀位:01010110
逻辑左移⼀位:01010110
对于⼆bai进制的数值来说左移n位等于原来的数值乘以2的n次⽅
⽐如00011010⼗进制是26,左移两位后是01101000转成⼗进制是104恰好是26的4倍。
ps:这种倍数关系只适⽤于左移后被舍弃的⾼位不含1的情况,否则会溢出。
2、算术右移,逻辑右移
逻辑右移很简单,只要将⼆进制数整体右移,左边补0即可
如10101101逻辑右移⼀位为01010110
算术右移符号位要⼀起移动,并且在左边补上符号位,也就是如果符号位是1就补1符号位是0就补0 ⽐如:11100算术右移⼀位为11110(符号位1跟着⼀起移动并且左边补了1)
对于⼆进制的数值来说右移n位等于原来的数值除以2的n次⽅。
计算机组成原理 运算器实验—算术逻辑运算实验
实验报告一、实验名称运算器实验—算术逻辑运算实验二、实验目的1、了解运算器的组成原理。
2、掌握运算器的工作原理。
3、掌握简单运算器的数据传送通路。
4、验证运算功能发生器(74LS181)的组合功能。
三、实验设备TDN-CM++计算机组成原理教学实验系统一套,导线若干。
四、实验原理实验中所用的运算器数据通路如图1-1所示。
其中两片74LSl81以串行方式构成8位字长的ALU,ALU的输出经过一个三态门(74LS245)和数据总线相连。
三态门由ALU-R控制,控制运算器运算的结果能否送往总线,低电平有效。
为实现双操作数的运算,ALU的两个数据输入端分别由二个锁存器DR1、DR2(由74LS273实现)锁存数据。
要将数据总线上的数据锁存到DRl、DR2中,锁存器的控制端LDDR1和DDR2必须为高电平,同时由T4脉冲到来。
数据开关(“INPUT DEVICE")用来给出参与运算的数据,经过三态(74LS245)后送入数据总线,三态门由SW—B控制,低电平有效。
数据显示灯(“BUS UNIT")已和数据总线相连,用来显示数据总线上的内容。
图中已将用户需要连接的控制信号用圆圈标明(其他实验相同,不再说明),其中除T4为脉冲信号外,其它均为电平信号。
由于实验电路中的时序信号均已连至“W/R UNIT”的相应时序信号引出端,因此,在进行实验时,只需将“W /R UNIT"的T4接至“STATE UNIT”的微动开关KK2的输入端,按动微动开关,即可获得实验所需的单脉冲。
ALU运算所需的电平控制信号S3、S2、S1、S0 、Cn、M、LDDRl、LDDR2、ALU-B、SW-B均由“SWITCH UNIT ”中的二进制数据开关来模拟,其中Cn、ALU—B、SW一B为低电平有效LDDR1、LDDR2为高电平有效。
对单总线数据通路,需要分时共享总线,每一时刻只能由一组数据送往总线。
五、实验内容1.输入数据通过三态门74LS245后送往数据总线,在数据显示灯和数码显示管LED上显示。
实验二 算术逻辑单元实验
实验二算术逻辑单元(ALU)的设计与实现实验目的1.认识算术逻辑单元的功能及意义2.掌握算术逻辑单元的结构与实现3.进一步熟练Modelsim、Vivado软件和Verilog硬件描述语言的使用4.理解Digilent N4 DDR FPGA开发板上数码管显示原理实验原理1.ALU算术逻辑单元(Arithmetic/Logic Unit , ALU)是现代计算机的核心部件之一。
其内部由算术和逻辑操作部件组合而成,可以实现整数加、减等算术运算和与、或等逻辑运算。
一个典型的算术逻辑单元由两路N位输入、一路N位输出、一组功能选择信号和一些标志位(flag)组成。
两路N位输入数据作为参与运算的两个操作数,输入到ALU中,通过改变功能选择信号,控制ALU对两操作数进行不同的算术或逻辑运算操作,并将N位的结果输出,与结果一同输出的还有运算产生的标志位,例如运算结果为零的标记信号Z(zero)与运算结果溢出的标记信号O(over)、进位标志C(CY)、符号位S(SF)等,如图2-1所示。
图2- 1ALU模块示意图在本次实验中,我们把输入和输出的数据长度定为4位,数据输入命名为A、B,数据输出为F,功能控制信号输入为opcode,进位输入为C n,只产生结果为零的zero标志位。
功能控制信号opcode的定义如表2-1所示。
例如:opcode=0001,运算器实现加法运算。
2.数码管显示关于N4 DDR开发板上数码管的显示原理,参见前面的实验准备部分内容。
实验内容1.基础实验。
用实验调试软件验证ALU的功能,并操作分析、记录结果。
图2- 2 ALU虚拟实验示意图(1)运算功能和控制信号①输入输出对于的开关指示灯分配如下:输入信号A:SW(4-7) B:SW(3-0) Cn:SW8 opcode:SW(12-9)输出信号F:LD(12-15) 标志位S :LD(3) Z LD(2) O: LD(1) C: LD(0)②各种运算对应的控制信号及功能,如下表。
实验二 算术逻辑运算及移位操作复习进程
实验二算术逻辑运算及移位操作实验二算术逻辑运算及移位操作一、实验目的1.熟悉算术逻辑运算指令和移位指令的功能。
2.了解标志寄存器各标志位的意义和指令执行对它的影响。
二、实验预习要求1.复习8086指令系统中的算术逻辑类指令和移位指令。
2.按照题目要求在实验前编写好实验中的程序段。
三、实验任务1.实验程序段及结果表格如表1.2:表1.22.用BX 寄存器作为地址指针,从BX 所指的内存单元(0010H)开始连续存(10H 、04H 、30H),接着计算内存单元中的这三个数之和,和0013H 单元中,再求出这三个数之积,积放0014单元中。
写出完成此功3.写出完成下述功能的程序段。
上机验证你写出的程序段,程序运行的最(AX)=?5.下面的程序段用来清除数据段中从偏移地址0010H 开始的12个字存储单元的内容(即将零送到这些存储单元中去)。
(1) 将第4条比较指令语句填写完整(划线处)。
MOV SI ,0010HNEXT : MOV WORD PTR[SI],0 ADD SI ,2CMP SI ,答案 22H (或者20H )JNE NEXTHLT(2) 假定要按高地址到低地址的顺序进行清除操作(高地址从0020H 开始),则上述程序段应如何修改?上机验证以上两个程序段并检查存储单元的内容是否按要求进行了改变。
6.输入并运行表1.3中的程序段,把结果填入表右边的空格中,并分析结果,说明本程序段的功能是什么。
精品资料表1.3四、实验报告要求1.整理出完整的实验程序段和运行结果。
2.回答题目中的问题。
3.简要说明ADD、SUB、AND、OR指令对标志位的影响。
4.简要说明一般移位指令与循环移位指令之间的主要区别。
运算器移位运算实验实验报告
(2)进行四次循环右移或者四次循环左移。
五、实验小结
敢于动手,大胆尝试。
任课教师评语:
教师签字:年月日
教师签字:年月日
上面方括号中的控制电平变化要按照从上到下的顺序来进行, 其中T4的正脉冲是通过按动一次CONTROL UNIT的触动开关START来产生的。
(2)参照表1,改变S0 S1 M 299_G的状态,按动触动开关START,观察移位结果。
表1 74LS299功能表
299_G
S1
S0
M
功能
0
0
0
任意
保持
0
1
0
0
循环右移
0
101带进位循环移001
0
循环左移
0
0
1
1
带进位循环左移
任意
1
1
任意
装数
3.实验结果
循环右移或左移的时候, 每来一次脉冲, 发光二极管亮的次序也跟着依次改变, 进位标志位一直保持亮的状态, 带进位的循环则是产生进位的时候, 进位标志位的二极管熄灭。
四、回答问题
1.X=00101011, Y=10001111, 完成如下运算: (1)X加Y→X, (2)交换X高4位与低4位, 若借助实验1与实验2电路如何实现(简述操作过程)?
信息学院
实验报告
学号:
姓名:
班级:
课程名称:计算机组成原理
实验名称:实验二运算器移位运算实验
实验性质:①综合性实验②设计性实验③验证性实验:√
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二算术逻辑运算及移位操作
一.实验任务
1.实验程序段及结果表格如表:
分析:
程序段1:
MOV AX, 1018H ;AX←1018H
MOV SI, 230AH ;SI←230AH
ADD AX, SI ;AX=3322H,低8位为00100010B,1的个数
;为偶数,PF=1,同时D3向D4有进位发生,AF=1 ADD AL, 30H ;AX=3352H,低8位1个个数为奇数,PF=0 MOV DX, 3FFH ;DX←3FFH
ADD AX,BX ;AX=3352H,
MOV [20H], 1000H ;[20H]←1000H
ADD [20H], AX ;[20H]=4352H
PUSH AX ;
POP BX ;BX=3352H
程序段2:
MOV AX, 0A0AH ;AX←0A0AH
ADD AX, 0FFFFH ;AX=0A09H,最高位进位CF=1,低8位1的
;个数为偶数PF=1;D3向D4进位AF=1 MOV CX, 0FF00H ;CX←0FF00H
ADC AX, CX ;AX=090AH,最高位进位CF=1,低8位1的个
;数为偶数PF=1
SUB AX, AX ;AX=0,运算结果为零ZF=1
INC AX ;AX=1H
OR CX, 0FFH ;CX=0FFFFH,最高位为1,ZF=1,低8位1的
;个数为偶数PF=1
AND CX, 0F0FH ;CX=0F0FH,低8位1的个数为偶数PF=1
MOV [10H], CX ;[10H]←0F0FH
程序段3:
MOV BL, 25H ;BL←25H
MOV BYTE PTR[10H], 4 ;[10H]←04H
MOV AL, [10H] ;AL←04H
MUL BL ;AL=94H
程序段4:
MOV WORD PTR[10H],80H ;[10H]←0080H
MOV BL, 4 ;BL←04H
MOV AX, [10H] ;AX←0080H
DIV BL ;AX=0020H
程序段5:
MOV AX, 0 ;AX←0000H
DEC AX ;AX=0FFFFH,最高位为1,SF=1,低8
;位1的个数为偶数PF=1,最高位向前、
;D3向D4有借位,CF=1,AF=1 ADD AX, 3FFFH ;AX=3FFEH,D3向D4有进位,AF=1 ADD AX, AX ;AX=7FFCH,低8位1的个数为偶数,PF=1
;D3向D4有进位,AF=1
NOT AX ;AX=8003H
SUB AX, 3 ;AX=8000H,低8位1的个数为偶数,PF=1
;最高位为1,SF=1
OR AX, 0FBFDH ;AX=0FBFDH,最高位为1,SF=1
AND AX, 0AFCFH ;AX=0ABCDH,最高位为1,SF=1
SHL AX,1 ;AX=579AH,低8位1的个数为偶数,PF=1,
;算数结果溢出OF=1,最高位进位CF=1 RCL AX,1 ;AX=0AF35H,低8位1的个数为偶数,
;PF=1,算数结果溢出OF=1
2.用BX寄存器作为地址指针,从BX所指的内存单元(0010H)开始连续存入三个无符号数(10H、04H、30H),接着计算内存单元中的这三个数之和,和放在0013H单元中,再求出这三个数之积,积放0014单元中。
写出完成此功能的程序段并上机验证结果。
程序段:
LEA BX,0010H
MOV [BX],10H
MOV [BX+1],04H
MOV [BX+2],30H
MOV AX,0000H
ADD AL,[BX]
ADD AL,[BX+1]
ADD AL,[BX+2]
MOV DS:[0013H],AL
MOV AL,[BX]
MUL [BX+1]
MUL [BX+2]
MOV DS:[0014],AX
上机验证:
3.写出完成下述功能的程序段。
上机验证你写出的程序段,程序运行的最后结果(AX)=?
(1) 传送15H到AL寄存器;
(2) 再将AL的内容乘以2;
(3) 接着传送15H到BL寄存器;
(4) 最后把AL的内容乘以BL的内容。
程序段:
MOV CL,02H
MOV AL,15H
MUL CL
MOV BL,15H
MUL BL
结果AX=0372H
4.写出完成下述功能的程序段。
上机验证你写出的程序段,程序运行后的商=?
(1) 传送数据2058H到DS:1000H单元中,数据12H到DS:1002H单元中;
(2) 把DS:1000H单元中的数据传送到AX寄存器;
(3) 把AX寄存器的内容算术右移二位;
(4) 再把AX寄存器的内容除以DS:1002H字节单元中的数;
(5) 最后把商存入字节单元DS:1003H中。
程序段:
MOV DS:[1000H],2058H
MOV DS:[1002H],12H
MOV AX,DS:[1000H]
SAR AX,2
MOV BL,DS:[1002H]
DIV BL
MOV DS:[1003H],AX
最后商为73H
5.下面的程序段用来清除数据段中从偏移地址0010H开始的12个字存储单元的内容(即将零送到这些存储单元中去)。
(1) 将第4条比较指令语句填写完整(划线处)。
MOV SI,0010H
NEXT: MOV WORD PTR[SI],0
ADD SI,2
CMP SI,001CH
JNE NEXT
HLT
(2) 假定要按高地址到低地址的顺序进行清除操作(高地址从0020H开始),则上述程序段应如何修改?
MOV SI,0020H
NEXT: MOV BYTE PTR[SI],0
SUB SI,1
CMP SI,0014H
JNE NEXT
HLT
6.输入并运行表1.3中的程序段,把结果填入表右边的空格中,并分析结果,说明本程序段的功能是什么。
程序段字单元(1A00H)= 字单元(1A02H)=
MOV [1A00H], 0AA55H MOV [1A02H], 2AD5H SHL WORD PTR[1A02H],1 CMP [1A00H], 8000H CMC
RCL WORD PTR[1A02H],1 RCL WORD PTR[1A00H],1 AA55 0000 AA55 2AD5 AA55 55AA AA55 55AA AA55 55AA AA55 AB55 54AA AB55
说明:
MOV [1A00H], 0AA55H ;[1A00H] ← 0AA55H
MOV [1A02H], 2AD5H ;[1A02H] ← 2AD5H
SHL WORD PTR[1A02H],1 ;[1A02H]=DATA*2
CMP [1A00H], 8000H ;[1A00H]—8000H,结果不送回[1A00H] CMC ;进位标志取反
RCL WORD PTR[1A02H],1 ;将[1A02H]带CF的循环左移一位
RCL WORD PTR[1A00H],1 ;将[1A00H]带CF的循环左移一位
二.简答
3.简要说明ADD,SUB,AND,OR对标志位的影响。
答:4条指令满足以下条件时会对个标志位产生影响:
CF:当进行加减运算时若最高位向前有进位或借位,则CF=1,否则CF=0。
PF:当运算结果的低八位中1的个数为奇数时PF=1,否则PF=0。
AF:在加减法操作中,D3向D4有进位或借位时AF=1,否则AF=0。
ZF:当运算结果为零时ZF=1。
SF:当运算结果最高位为1时SF=1,否则SF=0。
OF:当运算结果溢出时OF=1。
4.简要说明一般移位指令与循环移位指令之间的区别
答:一般移位指令将最左(右)端移入CF,而另一端则会补0。
循环移位指令同样将最左(右)端移入CF,但另一端会用CF或最左(右)端填充。