ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:92.86KB ,
资源ID:11924977      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11924977.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第二章80X86指令系2.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第二章80X86指令系2.docx

1、第二章80X86指令系2云南大学软件学院实 验 报 告第二章 80X86指令系统2.1数据传送指令的使用一、数据传送指令概述 负责把数据、地址或立即数传送到寄存器、存储单元以及I/O端口,或从内存单元、I/O端口中读取数据。可以分为下面几类:1. 通用传送指令: MOV,PUSH,POP,XCHG,XLAT2. 输入输出指令指令: IN,OUT3. 目的地址传送指令: LEA,LDS,LES4. 标志位传送指令: LAHF,SAHF,PUSHF,POPF注意:除 SAHF和POPF指令外,所有指令对标志寄存器没有影响。二、数据传送指令详解略三、数据传送指令的有关说明1. MOV指令的源操作数和

2、目的操作数必须同时为字节或字操作数;若指令中给出的两个操作数一个为立即数操作数,另一个为内存操作数,则不能确定内存操作数为字节操作数还是字操作数,必须使用PTR伪指令进行说明;若指令中有一个操作数为寄存器操作数,则由寄存器规定操作数是字节还是字操作数;例如:MOV NEM1,AX;把AX寄存器中字数据传送到地址为NEM1字内存单元中,高字节AH中内容传送到地址为NEM1+1内存单元中,低字节AL中的内容传送到地址NEM1内存单元中;从指令中可以看出,在内存中存放一个字数据需要两个内存单元;内存单元中字数据的地址使用低字节的地址表示;MOV NEM1,12H把12H传送到地址为NEM1的内存单元

3、。上面的指令是错误的,原因是NEM1可以表示内存单元中一个字节数据的地址或者是一个字数据的地址,那么12H到底应该传送到字内存单元中还是字内存单元中呢?不能由12H的大小而断定上面的语句是字节传送指令。正确语句应该表示如下:MOV WORD PTR NEM1,12H把12H传送到字内存单元NEM1中MOV BYTE PTR NEM1,12H把12H传送到字节内存单元NEM1中2. PUSH、POP指令只需要一个操作数,必须为字操作数;另一个默认的操作数是SS:SP所指向的字内存单元操作数。POPF和PUSHF指令的操作数也必须为字操作,而且默认为标志寄存器PSW和SS:SP所指向字内存单元;S

4、AHF和LAHF指令的操作数必须为字节操作数,而且默认为AH寄存器和PSW寄存器的低8位。3. LEA、LDS和LES是用来取源操作数的地址的指令,则目的操作数必须为16位的通用寄存器;四、例题讲解1. 使用数据传送指令,把标志寄存器中的OF标志清0其余位保持不变;PUSHF ;把PSW中的内容传送到堆栈中POP AX ;把PSW的内容从堆栈中弹出,传送到AX寄存器中AND AX,0F7FF H ;把AX中第11位置0,其余位保持不变PUSH AX ;把AX中内容压入堆栈POPF ;把堆栈中内容弹出到PSW中思考:采用SAHF和LAHF能否实现上面的功能,为什么? 2. 在当前数据段偏移地址为

5、2000H开始的4个内存单元中,存放着某个内存空间的地址指针,高字存放段地址指针,低字存放偏移地址指针,试把该地址指针指向的内存空间的内容读出放入AX寄存器中。 MOV SI,2000HMOV AX,SI MOV BX,AX MOV AX,SI+2 MOV DS,AX MOV AX,BX五、练习1. 传送指令1)用A命令在内存100H处键入下列内容:MOV AX,1234MOV BX,5678XCHG AX,BXMOV AH,35MOV AL,48MOV DX,75ABXCHG AX,DX2)用U命令检查键入的程序并记录,特别注意左边的机器码。3)用T命令逐条运行这些指令,每运行一行检查并记录

6、有关寄存器及IP的变化情况。并注意标志位有无变化。2. 改变标志寄存器psw中AF标志的状态(01或10),其余位保持不变。PUSHF POP AX XOR AX,08 H PUSH AX POPF3. 设DS=当前段地址,BX=0300H,SI=0002H,请用DEBUG的命令将存储器偏移地址300H304H连续单元顺序装入0AH,0BH,0CH,0DH,0EH。在DEBUG状态下使用A命令送入下面程序,并用单步T命令执行的方法,分析每条指令源地址的形成过程?当数据传送每完成一次,试分析AX寄存器中的内容是什么?程序清单如下:MOV AX,BXMOV AX,0304HMOV AX,0304H

7、MOV AX,BXMOV AX,0001BXMOV AX,BXSIHLT4. 使用标志位传送指令,编程序段将标志位寄存器的低八位的值存入内存单元DS:1000H中或堆栈中,然后将标志位寄存器的低八位置位为10101010。PUSHF POP DS:1000H MOV DS:1000H,0AAH 2.2算术逻辑运算和移位指令的使用一、算术逻辑运算和移位指令概述使用算术逻辑运算和移位指令,可以实现对二进制数据的加、减、乘、除等四则运算,与、或、非、异或等逻辑运算,以及移位运算和代码转换运算。具体说来,可以分为如下几类:1. 算术运算指令:加法指令、减法指令,乘法指令、除法指令以及转换指令;对于算术

8、运算指令来说, 大部分都影响标志位,不同指令影响不同: (1) 加、减法指令影响 SF,ZF,AF,PF,CF,OF; (2) 加1和减1指令不影响CF; (3) 乘法指令影响CF,OF; (4) 除法指令使大部分标志位的状态不确定; (5) 对BCD码调整指令对标志位的影响不同; (6) 转换指令对标志位无影响 都可以用于字节、字的运算; 双操作数指令除源为立即数外,其余必须有一个操作数为寄存器;单操作数指令不能为立即数。2. 逻辑运算指令:AND,TEST,OR,XOR,NOT 对于逻辑运算指令来说,逻辑运算是按位操作,操作数应该是位串而不是数;在8086/8088中,可以使用的操作数可以

9、为8位或16位二进制数,即可以是一个字节或字数据;NOT指令不允许使用立即数,其它4条指令除非源操作数是立即数,至少有一个操作数必须放在寄存器中,另一个操作数则可以使用任意的寻址方式;NOT指令不影响标志位,其它4条指令对标志位的影响规定如下:CF0F=0, AF未定义 ,SF 、ZF、PF 根据运算结果进行设置。3. 移位指令:移位运算可以分为算术逻辑移位和循环移位两类。 (1)算术逻辑移位指令:SHL,SHR,SAL,SAR(2)循环移位指令:ROL,ROR,RCL,RCR对于移位指令来说,(1) 所有的移位指令都可以用来对字节或字数据进行移位运算;(2) 移位指令的目的操作数可以使用寄存

10、器或储存器寻址方式;(3) 若移位次数大于1次,则移位次数应先放在CL寄存器;移位指令对标志位的影响规定如下:(1)算术逻辑移位指令影响: 执行多次移位指令后对CF、OF的影响:CF=从目标操作数移出的最后一位;OF不定。执行一次移位指令后对CF、OF的影响:OF用于判断移位后最高有效位是否发生变化:最高位与CF不等,OF = 1;无变化时,OF = 0;CF根据各条指令的规定设置;对于SF、ZF、PF,AF无定义。 (2)循环移位指令的影响:SF、ZF、PF、AF不影响。OF、CF见指令说明。二、算术逻辑运算和移位指令详解略三、算术逻辑运算和移位指令的有关说明1. 不论程序中给出的是何种进制

11、的数值,在程序执行时,运算指令都按照二进制数的运算规律进行数值的运算,运算的结果都为二进制数;2. 加法与减法运算OF、CF的讨论:加法:OF=1,表示两个同符号数相加,结果符号与其相反,产生溢出,即运算结果错误;OF=0,表示两个同符号数相加,结果符号与其相同,不产生溢出;或两个异号数相加,不可能溢出。CF=1,表示两个无符号数相加产生溢出,但结果并没有错,只是结果放不下。CF=0,表示两个无符号数相加不产生溢出,结果正确;减法:OF=1,表示两个带符号数符号相反,进行减法运算,结果符号与减数相同,则运算结果发生溢出。OF=0,表示两个带符号数符号相反,或两个带符号数符号相同,进行减法运算,

12、运算结果不发生溢出;CF=1,表示两个不带符号数进行减法运算,结果发生溢出。即CF=1,表示减数被减数,有借位;CF=0,表示被减数减数,无借位;3. 用SAR指令与用IDIV指令做除法的区别:用SAR指令做除法(对负数向下舍入): MOV AX ,81H ;(AX) = -127 SAR AX,1 ;(AX)= - 64用IDIV指令做除法(IDIV指令对负数向上舍入) : MOV AX,81H ;(AX)= -127 MOV CL,2 IDIV CL ;(AL)= -63 ,(AH)= -1四、例题讲解1. 应用举例,求绝对值:在内存中,从WANG开始存放100个带符号数,求各数的绝对值存

13、于XIAO的开始单元。LEA SI,WANG LEA DI,XIAO MOV CX,100CHECK: MOV AL,SI OR AL,AL ;(AL)内容不变,置标志 JNS NEXT ;SF=0转NEXT NEG AL ;负数求补NEXT: MOV DI,AL ;送目标 INC SI INC DI DEC CX JNZ CHECK INT 20H2. 将DX、AX组合起来构成32位寄存器向左移一位。 如下图所示:SHL AX,1 RCL DX,13. 测试(AL)5 =? 0 MOV CL , 3 ROL AL , CL JNC ZERO ZERO: 思考:采用ROR,CL=?4. 对存放

14、在DX和AX中的双字长数据求补码。 MOV BX,DXSHL BX,1 JNC EXIT CLC NOT AX NOT DX ADD AX,1 ADC DX,0EXIT: INT 20H思考:能否使用NEG指令?能否使用INC指令?5. 编制程序,完成双字乘法:MULTCND DW 1234H ;被乘数低字节 DW 5678H ;被乘数高字节MULTPLR DW 9ABCH ;乘数 PRODUCT DW 0 ;乘积 DW 0 DW 0 MOV AX,MULTCND MUL MULTPLR MOV BX,DX MOV PRODUCT,AX MOV AX,MULTCND+2 MUL MULTPLR

15、 ADD AX,BX ADC DX,0 MOV PRODUCT+2,AX MOV PRODUCT+4,DX6. 假定48位二进制数存放在DX:BX:AX中,编制程序,让48位二进制数的乘4。 Shl ax,1 Rcl bx,1 Rcl dx,1 Shl ax,1 Rcl bx,1 Rcl dx,1下面错误:CLC MOV CL,2 ROL AX,CL RCL BX,CL RCL DX,CL五、练习1. 已知程序段定义如下:MOV AX,1234 MOV CL,4 SHL AX,CL INC AX DEC CL ROR AX,CL MOV BX,4 MUL BX MOV BX,4 DIV BX

16、INT 20(1) 每条指令执行后,AX寄存器中的内容是什么?AX=1234 AX=1234 AX=2340 AX=2341 AX=2341 AX=2468 AX=2468 AX=91A0 AX=91A0 AX=2468(2) 每条指令执行后,标志寄存器的各位标志等于什么?(3) 程序结束时,AX和DX的内容等于什么?AX=2468 DX=00002. 编写一程序求双字数据的绝对值。双字数据保存在DX和AX中,结果保存在BX和CX中。TEST DX,DXJS aa: NOT DX NOT AX ADD AX,1 ADC DX,1 MOV CX,AX MOV BX,DXMOV CX,AXMOV

17、BX,DXInt 203. 编制程序,将DX和AX中的双字右移4位。mov ch,4go: shr dx,1rcr ax,1dec chjnz go4. 编制程序,判断DL寄存器的低4位是否全为0?是否有0?判断AL寄存器中的数值是奇数还是偶数?是否为4的倍数?TEST DL,0FHTEST AL,01HTEST AL,03H6. 编制程序,用一条指令让AX寄存器清0;用一条指令使DX寄存器高3位为1,其余位保持不变;用一条指令使BL寄存器低4位为0,其余位保持不变;用一条指令,使SI和DI寄存器中对应位不相同的位置均置1;AND AX,00HOR DX,0E0HAND BL,0F0HXOR SI,DI7. 从内存3000H开始的单元中顺序存放着40个同学某门课的考试成绩,试编写程序段求该班该门课的总成绩和平均成绩。MOV CX,40MOV SI,0MOV AX,3000HSIAGAIN:ADC AX,3000HSI+1; INC SI DEC CXTEST CX,CXJNZ AGAINMOV CL,20SHR AX,20INT 20

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1