实验二算术逻辑运算及移位操作

合集下载

算术逻辑运算实验总结

算术逻辑运算实验总结

算术逻辑运算实验总结一、引言在现代社会中,算术逻辑运算是一项基本且必不可少的能力。

它们不仅在日常生活中起着重要作用,也广泛应用于各个领域的科学和工程。

为了提高算术逻辑运算的能力,我进行了几项实验,并总结了一些重要的经验和教训。

二、实验一:基本算术运算在这个实验中,我进行了一系列的基本算术运算,如加法、减法、乘法和除法。

通过这些运算,我更加熟悉了数字和运算的关系,并且提高了我的计算速度和准确性。

通过这个实验,我发现了一些有趣的现象。

首先,我发现加法和减法是最简单的运算,因为它们只涉及到数字的简单相加或相减。

而乘法和除法则需要更多的思考和推理,因为它们涉及到数字的相对大小和关系。

除此之外,在进行算术运算时,我还体会到了一些技巧和方法。

例如,在进行长数列的相加时,可以将它们分成多个小段,然后分别相加,最后再将结果相加。

这样可以降低错误的可能性,同时提高计算的效率。

三、实验二:逻辑运算逻辑运算是另一种重要的运算方式。

在这个实验中,我学习了逻辑运算的基本原理和方法,并进行了一些实际的应用。

首先,我学习了与运算、或运算和非运算的基本规则。

通过这些规则,我可以判断一个命题的真假,或者从若干个命题中得出一个新的结论。

这是在科学和工程中经常用到的一种思维方式。

其次,我了解了逻辑运算在算法设计和编程中的重要性。

在编写程序时,逻辑运算用于判断条件和控制程序的流程。

通过合理地使用逻辑运算,可以使程序更加高效和精确。

实验中,我发现了一些常见的逻辑谬误。

例如,德摩根定律的错误应用会导致逻辑矛盾和错误的结果。

因此,在进行逻辑运算时,我要特别注意各种规则和定律的正确使用。

四、实验三:复杂算术逻辑运算在这个实验中,我尝试了一些更加复杂的算术逻辑运算,如平方根运算、对数运算和三角函数运算。

通过这些运算,我更深入地了解了数学的奥秘和复杂性。

在进行这些运算时,我遇到了一些困难和挑战。

首先,一些运算需要使用特殊的方法和技巧,我要仔细学习和掌握这些技术。

实验2 算术与逻辑运算指令实验

实验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)低电平控制信号送总线。

二算术逻辑运算指令

二算术逻辑运算指令

三、逻辑运算指令
⑵移位指令
• 累加器A循环左移指令: • RL A ; • 累加器A连同进位位循环左移指令: • RLC A ; • 累加器A循环右移指令: • RR A ; • 累加器A连同进位位循环右移指令 • RRC A ;
三、逻辑运算指令
• 例3-18:若(A)=10111101B=BDH, Cy=0
• 注:执行结果只影响PSW的奇偶校验位P (以A为操 作数时 )
二、算术运算指令
3.乘、除法指令
• MUL AB ; (A)←[(A)×(B)]7-0

(B)←[(A)×(B)]15-8
• 如果积大于255(FFH),则溢出标志OV置1,否则清0。进
位标志位Cy总为0。
二、算术运算指令
• 例3-17:设(A)=50H(80),(B) =0AH(160) 执行指令:MUL AB;
• 执行“ RLC A”的结果为 • (A)=01111010B=7AH,Cy=1 • A的内容扩大2倍
三、逻辑运算指令
2 .双操作数的逻辑运算指令
• ⑴逻辑“与”指令
• ANL A,Rn ;(A) ←(A)∧(Rn) • ANL A,direct ;(A) ←(A)∧(direct) • ANL A,@Ri ;(A) ←(A)∧((Ri)) • ANL A,#data ;(A) ←(A)∧data • ANL direct, A ;(direct)←(direct)∧(A) ANL direct,#data;(direct)←(direct)∧data
• 本指令不能简单的把累加器A中的16进制数变换成 BCD码
二、算术运算指令
• 例3-13:设累加器A内容为压缩BCD码56 (即01010110B),寄存器R3的内容为 压缩BCD码67(即01100111B),Cy内 容为1。执行下列的指令:

计算机组成原理实验二-移位运算实验

计算机组成原理实验二-移位运算实验

《计算机组成原理》实验报告实验二移位运算实验一、实验目的掌握移位控制的功能及工作原理二、实验环境EL-JY-II 型计算机组成原理实验系统一套,排线若干。

三、实验内容与实验过程及分析(写出详细的实验步骤,并分析实验结果)实验步骤:开关控制操作方式实验本实验中所有控制开关拨动,相应指示灯亮代表高电平“1”,指示灯灭代表低电平“0”。

1、按图 2-4 接线:连线时应注意:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。

为了避免总线冲突,首先将控制开关电路的所有开关拨到输出高电平“1”状态,所对应的指示灯亮。

2、实验过程:(以左移为例)开始实验前要把所有控制开关电路上的开关置为高电平“1”状态。

拨动清零开关 CLR,使其指示灯灭。

再拨动 CLR,使其指示灯亮。

(1)置数:置C-G=1,299-G=0,通过数据输入电路输入要移位的数据,置 D15---D0= “0000000000000001”,然后置C-G=0,数据总线显示灯显示“0000000000000001”,置 S0=1,S1=1,M=1 参考功能表表 2-2 可见,此时为置数状态,按脉冲源及时序电路上的【单步】按钮,置 C-G=1,完成置数的过程,进位指示灯亮表示进位“Z”已置位。

(2)不带进位移位:置299-G=0,S0=1,S1=0,M=0,参考功能表 2-2,此时为循环左移状态,数据总线显示灯显示“0000000000000001”,按【单步】,数据总线显示灯显示“0000000000000010”,再按一次【单步】,数据总线显示的数据向左移动一位。

连续按【单步】,观察不带进位移位的过程。

如想进行右移,参考表 2-2,置 S0=0,S1=1,再按【单步】即可实现右移操作。

(3)带进位移位当数据总线显示“0000000000000001”时,置 299-G=0,S0=1,S1=0,M=1,参考功能表 2-2,此时为带进位循环左移状态。

实验二:算术逻辑运算和移位运算

实验二:算术逻辑运算和移位运算

西安交通大学实验报告
课程名称:微机原理与接口技术实验名称数据传送
班级:机械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.熟悉8086指令系统的数据传送指令及8086的寻址方式。

2.利用TurboDebugger调试工具来调试汇编语言程序。

实验任务:1.通过下述程序段的输入和执行来熟悉TurboDebugger的使用,并通过显示器屏幕观察程序的执行情况。

练习程序段如下:MOVBL,08HMOVCL,BLMOVAX,03FFHMOVBX,AXMOVDS:[0020H],BX2.用以下程序段将一组数据压入(PUSH)堆栈区,然后通过不同的出栈顺序出栈,观察出栈后数据的变化情况。

压栈程序段如下:MOVAX,0102HMOVBX,0304HMOVCX,0506HMOVDX,0708HPUSHAXPUSHBXPUSHCXPUSHDX出栈程序段请自行编写(用不同的出栈顺序)。

3.指出下列指令的错误并加以改正,上机验证之。

(1)MOV[BX],[SI](2)MOVAH,BX(3)MOVAX,[SI][DI](4)MOVBYTEPTR[BX],2000H(5)MOVCS,AX(6)MOVDS,2000H4.设置各寄存器及存储单元的内容如下:(BX)=0010H,(SI)=0001H(10010H)=12H,(10011H)=34H,(10012H)=56H,(10013H)=78H(10120H)=0ABH,(10121H)=0CDH,(10122H)=0EFH说明下列各条指令执行完后AX寄存器中的内容,并上机验证。

(1)MOVAX,1200H(2)MOVAX,BX(3)MOVAX,[0120H](4)MOVAX,[BX](5)MOVAX,0110H[BX](6)MOVAX,[BX][SI](7)MOVAX,0110H[BX][SI]5.将DS:1000H字节存储单元中的内容送到DS:2020H单元中存放。

试分别用8086的直接寻址、寄存器间接寻址、变址寻址、寄存器相对寻址传送指令编写程序段,并上机验证结果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二算术逻辑运算及移位操作
一、实验目的
1.熟悉算术逻辑运算指令和移位指令的功能。

2.了解标志寄存器各标志位的意义和指令执行对它的影响。

二、实验预习要求
1.复习8086指令系统中的算术逻辑类指令和移位指令。

2.按照题目要求在实验前编写好实验中的程序段。

三、实验任务
1.实验程序段及结果表格如表:

2.用BX 寄存器作为地址指针,从BX 所指的内存单元(0010H)开始连续存入(10H 、04H 、30H),接着计算内存单元中的这三个数之和,和放在
单元中,再求出这三个数之积,积放0014单元中。

写出完成此功能的程
3
后结果(AX)=
(1) 传送15H 到AL 寄存器; (2) 再将AL 的内容乘以2

(3) 接着传送15H 到BL 寄存器; (4) 最后把AL 的内容乘以BL 的内容。

4商=
(1) 传送数据2058H 到DS:1000H 单元中,数据12H 到DS:1002H 单元中; (2) 把
DS:1000H 单元中的数据传送到AX 寄存器;
(3) 把AX 寄存器的内容算术右移二位; (4) 再把AX 寄存器的内容除以DS:1002H 字节单元中的数;
(5) 最后把商存入字节单元DS:1003H 中。

5.下面的程序段用来清除数据段中从偏移地址0010H 开始的12元的内容(即将零送到这些存储单元中去)。

(1) 将第4条比较指令语句填写完整(划线处)。

MOV SI ,0010H NEXT: MOV WORD PTR[SI],0 ADD SI ,2
CMP SI ,答案 22H (或者20H )
JNE NEXT
HLT
(2) 假定要按高地址到低地址的顺序进行清除操作(高地址从0020H 开始),则上述程序段应如何修改
上机验证以上两个程序段并检查存储单元的内容是否按要求进行了改变。

6. 输入并运行表中的程序段,把结果填入表右边的空格中,并分析结果,说明本程序段的功能是什么。


四、实验报告要求
1.整理出完整的实验程序段和运行结果。

2.回答题目中的问题。

3.简要说明ADD、SUB、AND、OR指令对标志位的影响。

4.简要说明一般移位指令与循环移位指令之间的主要区别。

相关文档
最新文档