版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章,3.2.2 算术运算类指令,算术运算类指令用来执行二进制的算术运算:加减乘除。 有些指令会根据运算结果影响状态标志,有时要利用某些标志才能得到正确的结果;使用他们时请留心有关状态标志 重点掌握 加法指令:ADD、ADC、INC 减法指令:SUB 、SBB、DEC、CMP、NEG,加法和减法指令,加法指令:ADD, ADC和INC 减法指令:SUB, SBB, DEC, NEG和CMP 他们分别执行字或字节的加法和减法运算,除INC和DEC不影响CF标志外,其他按定义影响全部状态标志位 操作数组合: 运算指令助记符 reg, imm/reg/mem 运算指令助记符 mem, imm/re
2、g,1. 加和减指令,ADD dest,src ;加法:destdestsrc ;ADD指令使目的操作数加上源操作数,和的结果送到目的操作数 SUB dest,src ;减法:destdestsrc ;SUB指令使目的操作数减去源操作数,差的结果送到目的操作数,例题1 加法,MOV AX,7348H;AX7348H ADD AL,27H ;AL48H27H6FH,AX736FH ;OF0,SF0,ZF0,PF1,CF0 ADD AX,3FFFH ;AX736FH3FFFHB36EH ;OF1,SF1,ZF0,PF0,CF0,例题2 减法,SUB AH,0F0H ;AHB3HF0HC3H,AXC
3、36EH ;OF0,SF1,ZF0,PF1,CF1 MOV WORD PTR200H,0EF00H ;200HEF00H,标志不变 SUB 200H,AX ;200HEF00HC36EH2B92H ;OF0,SF0,ZF0,PF0,CF0 SUB SI,SI;SI0 ;OF0,SF0,ZF1,PF1,CF0,2. 带进位加和减指令,ADC dest,src ;加法:destdestsrcCF ;ADC指令除完成ADD加法运算外,还要加上进位CF,结果送到目的操作数 SBB dest,src ;减法:destdestsrcCF ;SBB指令除完成SUB减法运算外,还要减去借位CF,结果送到目的操
4、作数,例3 无符号双字加法和减法,MOV AX,7856H;AX7856H MOV DX,8234H;DX8234H ADD AX,8998H;AX01EEH,CF1 ADC DX,1234H;DX9469H,CF0 SUB AX,4491H;AXBD5DH,CF1 SBB DX,8000H;DX1468H,CF0,DX.AX8234 7856H1234 8998H8000 4491H 1468 BD5DH,3. 比较指令CMP(compare),CMP dest,src ;做减法运算:destsrc ;CMP指令将目的操作数减去源操作数,但差值不回送目的操作数,但影响标志位 比较指令通过减法
5、运算影响状态标志,用于比较两个操作数的大小关系,CMP AX,BX CMP AL,100,4. 增量和减量指令,INC reg/mem ;增量(加1):reg/memreg/mem1 DEC reg/mem ;减量(减1):reg/memreg/mem1 INC指令和DEC指令是单操作数指令 与加法和减法指令实现的加1和减1不同的是:INC和DEC不影响CF标志,INC SI;SISI1 DEC byte PTR SI;SISI1,5. 求补指令NEG(NEGtive),NEG reg/mem ;reg/mem0reg/mem NEG指令对操作数执行求补运算,即用零减去操作数,然后结果返回操作
6、数 求补运算也可以表达成:将操作数按位取反后加1 NEG指令对标志的影响与用零作减法的SUB指令一样 NEG指令也是一个单操作数指令,例题4 求补运算,MOV AX,0FF64H NEG AL;AL064H9CH,AXFF9CH ;OFSF1,ZF0,PF1,CF1 SUB AL,9DH;AL AL9DH 9CH9DHFFH,AXFFFFH ;OF0,SF1,ZF0,PF1,CF1 NEG AX;AX0FFFFH0001H ;OF0,SF0,ZF0,PF0,CF1 DEC AL;AL01H10,AX0000H ;OF0,SF0,ZF1,PF1,CF1 NEG AX;AX000 ;OF0,SF0
7、,ZF1,PF1,CF0,3.4.2 符号扩展指令,符号扩展是指用一个操作数的符号位(最高位)形成另一个操作数,后一个操作数的高位是全0(正数)或全1(负数) 符号扩展虽然使数据位数加长,但数据大小并没有改变,扩展的高部分仅是低部分的符号扩展 符号扩展指令有两条,用来将字节转换为字,字转换为双字 CBW;AL符号扩展成AX CWD;AX符号扩展成DX,例题5 符号扩展,MOV AL,64H ;AL64H (机器数) ,表示10进制数100(真值) CBW ;将符号0扩展,AX0064H,仍然表示100 MOV AX,0ff00H ;AXFF00H,表示有符号10进制数256 CWD ;将符号位
8、“1”扩展,DX.AXFFFFFF00H ;仍然表示256,3.4.3 乘法和除法指令,乘法指令分无符号和有符号乘法指令 MUL reg/mem;无符号乘法 IMUL reg/mem;有符号乘法 除法指令分无符号和有符号除法指令 DIV reg/mem;无符号除法 IDIV reg/mem;有符号除法,3.4.4 十进制调整指令,十进制数调整指令对二进制运算的结果进行十进制调整,以得到十进制的运算结果,以此实现十进制BCD码运算 8088指令系统支持两种BCD码调整运算 压缩BCD码就是通常的8421码;它用4个二进制位表示一个十进制位,一个字节可以表示两个十进制位,即0099 非压缩BCD码
9、用8个二进制位表示一个十进制位,只用低4个二进制位表示一个十进制位09,高4位任意,通常默认为0,编码的比较,真值(十进制)864 二进制编码08H40H 压缩BCD码08H64H 非压缩BCD码08H0604H ASCII码38H3634H,压缩BCD码加减法调整指令 DAA DAS 非压缩BCD码加减乘除法调整指令 AAA AAS AAM AAD,3.5 位操作类指令,位操作类指令以二进制位为基本单位进行数据的操作 当需要对字节或字数据中的各个二进制位操作时,可以考虑采用位操作类指令 注意这些指令对标志位的影响 1. 逻辑运算指令 AND OR XOR NOT TEST 2. 移位指令 S
10、HL SHR SAR 3. 循环移位指令 ROL ROR RCL RCR,3.5.1 逻辑运算指令,双操作数逻辑指令AND、OR、XOR和TEST设置CFOF0,根据结果设置SF、ZF和PF状态,而对AF未定义;它们的操作数组合与ADD、SUB等一样: 运算指令助记符 reg, imm/reg/mem 运算指令助记符 mem, imm/reg 单操作数逻辑指令NOT不影响标志位,操作数与INC、DEC和NEG一样: NOT reg/mem,逻辑与指令AND,对两个操作数执行逻辑与运算,结果送目的操作数,AND dest,src;destdestsrc,只有相“与”的两位都是1,结果才是1;否则
11、,“与”的结果为0,逻辑或指令OR,对两个操作数执行逻辑或运算,结果送目的操作数,OR dest,src;destdestsrc,只要相“或”的两位有一位是1,结果就是1;否则,结果为0,逻辑异或指令XOR,对两个操作数执行逻辑异或运算,结果送目的操作数,XOR dest,src;destdestsrc,只有相“异或”的两位不相同,结果才是1;否则,结果为0,测试指令TEST,对两个操作数执行逻辑与运算,结果并不送目的操作数,仅按AND指令影响标志,TEST dest,src;destsrc,AND与TEST指令的关系, 同SUB与CMP指令的关系一样,逻辑非指令NOT,对一个操作数执行逻辑非
12、运算,NOT reg/mem;reg/memreg/mem,按位取反,原来是“0”的位变为“1”;原来是“1”的位变为“0”,例6 逻辑运算,MOV AL,75H;AL75H AND AL,32H;AL30H ;CFOF0, SF0,ZF0,PF1 OR AL,71H;AL71H ;CFOF0,SF0,ZF0,PF1 XOR AL,0F1H;AL80H ;CFOF0,SF1,ZF0,PF0 not AL;AL7FH,标志不变,例3.17 逻辑运算指令的应用,AND BL,11110110B ;BL中D0和D3清0,其余位不变 OR BL,00001001B ;BL中D0和D3置1,其余位不变
13、XOR BL,00001001B ;BL中D0和D3求反,其余位不变,AND指令可用于复位某些位(同0相与),不影响其他位,OR指令可用于置位某些位(同1相或),不影响其他位,XOR指令可用于求反某些位(同1相异或),不影响其他位,3.5.2 移位指令,将操作数移动一位或多位,分成逻辑移位和算术移位,分别具有左移或右移操作 移位指令的第一个操作数是指定的被移位的操作数,可以是寄存器或存储单元;后一个操作数表示移位位数: 该操作数为1,表示移动一位 该操作数为CL,CL寄存器值表示移位位数 (移位位数大于1只能CL表示) 按照移入的位设置进位标志CF,根据移位后的结果影响SF、ZF、PF,逻辑左
14、移指令SHL,SHL reg/mem,1/CL ;reg/mem左移1或CL位 ;最低位补0,最高位进入CF,演示,逻辑右移指令SHR,SHR reg/mem,1/CL ;reg/mem右移1/CL位 ;最高位补0,最低位进入CF,演示,算术左移指令SAL,SAL reg/mem,1/CL ;与SHL是同一条指令,演示,算术右移指令SAR,SAR reg/mem,1/CL ;reg/mem右移1/CL位 ;最高位不变,最低位进入CF,演示,例7 数据移位,MOV DX,6075H;DX01100000 01110101B SHL DX,1;DX11000000 11101010B ;CF0,S
15、F1、ZF0、PF0 SAR DX,1;DX11100000 01110101B ;CF0,SF1、ZF0、PF0 SHR DX,1;DX01110000 00111010B ;CF1,SF0、ZF0、PF1 MOV CL,4;CL4,标志不变 SAR DX,CL;DX00000111 00000011B ;CF1,SF0、ZF0、PF1,例8 将AL寄存器中的无符号数乘以10,XOR AH,AH;实现AH0,同时使CF0 SHL AX,1;AX2AL MOV BX,AX;BXAX2AL SHL AX,1;AX4AL SHL AX,1;AX8AL ADD AX,BX;AX8AL2AL10AL,
16、逻辑左移一位相当于无符号数乘以2 逻辑右移一位相当于无符号数除以2,3.5.3 循环移位指令,循环移位指令类似移位指令,但要将从一端移出的位返回到另一端形成循环。分为: ROL reg/mem,1/CL;不带进位循环左移 ROR reg/mem,1/CL;不带进位循环右移 RCL reg/mem,1/CL;带进位循环左移 RCR reg/mem,1/CL;带进位循环右移 循环移位指令的操作数形式与移位指令相同,按指令功能设置进位标志CF,但不影响SF、ZF、PF、AF标志,演示,演示,演示,演示,32位数据移位,;将DX.AX中32位数值左移一位 SHL AX,1 RCL DX,1,考虑32位
17、数据的右移等操作,例9 非压缩BCD码合并为压缩BCD,;DBCD有2位非压缩BCD码 MOV DL,dbcd;取低字节 AND DL,0fH;只要低4位 MOV DH,dbcd+1;取高字节 MOV CL,4 SHL DH,CL;低4位移到高4位 OR DL,DH;合并到DL,No !,SHL和SAL指令的功能,SHR指令的功能,SAR指令的功能,ROL指令的功能,ROR指令的功能,RCL指令的功能,RCR指令的功能,串操作指令就是用一条指令实现对一串字符或数据的操作。 重复前缀指令 REP ;无条件重复前缀指令 REPE/ REPZ ;条件重复前缀指令 REPNE/ REPNZ ;条件重复
18、前缀指令,3.2.4 串操作指令,重复前缀,REP 1. 判断CX是否为0,若是,结束本指令,否则2 2. 执行其后的 串指令 3.(CX)-1-(CX) 4. 转1。 REPZ/REPE 1.若CX为0或ZF=0,结束本指令,否则2 其余同上 REPNZ/REPNE 1. 若CX为0或ZF=1,结束本指令,否则2 其余同上,1.字符串传送指令 格式:MOVSB/MOVSW 2.字符串比较指令CMPSBCMPSW 格式:CMPSB/CMPSW 3.字符串检索指令SCASBSCASW 格式:SCASB/SCASW,3.2.4 串操作指令,4.存字符串指令STOSBSTOSW 格式:STOSB/STOSW 例如 使0400H开始的256个单元清0的程序段。 CLD ;清除方向标志 LEA DI,0400H ;将目的地址0400H送DI MOV CX,0080H ;共有256个字节 XOR AX,AX ;AX清0 REP STOSW ;将256个字节清0,3.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乡镇中心学校“四评”工作总结
- 复数的乘法与除法+高一下学期数学人教B版必修第四册
- 2027届届全国高考语文模拟作文:青春的书桌上留得下几声鸟鸣
- 火灾基础技术8
- 湖南省湘潭市2026年九年级下学期一模历史试题附答案
- 家庭密码挂锁忘记密码重置指南
- T∕CNLIC 0187-2024 房间空气调节器室内热舒适性评价方法
- 休克护理试题及答案高一
- 2026年云南省高等职业院校春季招收暨普通高中毕业生考试信息技术试卷(试行)-自定义类型
- 2026年河北省保定市高考物理二模试卷(含答案)
- 2026年商业地产代理服务合同三篇
- 2026四川德阳绵竹市金申投资集团有限公司第一批招聘40人笔试历年常考点试题专练附带答案详解
- 2026-2030中国油田化学品行业市场发展分析及前景趋势与投资研究报告
- 企业安全生产管理现状
- 2026中国铁路兰州局集团有限公司招聘普通高校毕业生113人(三)笔试备考题库及答案解析
- 老旧小区改造工程屋面工程监理实施细则
- 建筑通风系统概述课件
- 中学生文明礼仪知识竞赛试题及答案
- 蒸汽吹灰器技术协议(能源化工有限公司热动力站蒸汽吹灰器)
- 无机材料科学基础:第六章 相平衡与相图
- 采矿工程毕业设计--许厂煤矿1.2 Mta新井设计
评论
0/150
提交评论