汇编语言编程PPT电子课件教案-04 算术与逻辑运算指令.pptVIP

汇编语言编程PPT电子课件教案-04 算术与逻辑运算指令.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言编程PPT电子课件教案-04 算术与逻辑运算指令

3)符号扩展指令 CBW ;字节转换为字:AL符号扩展成AX CWD        ;字转换为双字:AX符号扩展到DX,DX.AX看作一个整体 符号扩展指令常用来获得有符号数的倍长数据。例如获得有符号除法时倍长于除数的被除数。对无符号数应该采用直接使高8位或高16位清0的方法,获得倍长的数据。 MOV AX,-12345 MOV BX,34 CWD ;DX.AX←AX IDIV BX ;AX←DX.AX÷BX 十进制调整指令 算术运算指令实现了二进制数的加减乘除,要实现十进制BCD码运算,还需要对二进制运算结果进行调整 8088/8086支持压缩BCD码调整指令和非压缩 BCD码调整指令。 压缩BCD码就是通常的8421码,它用4个二进制位表示一个十进制位,一个字节可以表示两个十进制位,即 00-99 非压缩BCD码用8个二进制位表示一个十进制位,实际上只是用低4个二进制位表示一个十进制位0-9,高4位任意 例:压缩BCD码加法调整指令 DAA ;压缩BCD码加法调整指令:将AL的加和调整为压缩BCD码 DAA指令跟在以AL为目的操作数的ADD或ADC指令之后,对AL的二进制结果进行压缩BCD码调整,并在AL得到压缩BCD码结果。 MOV AL,68H ;al=68h,压缩BCD码表示真值68 MOV BL,28H ;bl=28h,压缩BCD码表示真值28 ADD AL,BL ;二进制加法:al=68h+28h=90h(144) DAA ;十进制调整:al=96h ;实现压缩BCD码加法:68+28=96 AND dest, src ;逻辑与指令:dest←dest∧src OR dest, src ;逻辑或指令:dest←dest∨src XOR dest, src ;逻辑异或指令:dest←dest src TEST dest, src ;测试指令:dest∧src NOT reg/mem 逻辑运算指令 逻辑运算指令与标志位 双操作数逻辑指令均设置CF=OF=0,根据结果设置SF、ZF和PF状态,而对AF未定义。单操作数逻辑非指令NOT不影响标志位。 逻辑运算指令的应用 AND指令可用于复位某些位(同0相与),不影响其他位:将BL中D3和D0位清0,其它位不变 AND BL,0F6H ;) OR指令可用于置位某些位(同1相或),不影响其他位:将BL中D3和D0位置1,其它位不变 OR BL,9 XOR指令可用于求反某些位(同1相异或),不影响其他位:将BL中D3和D0位求反,其它不变 XOR BL,9 XOR AX,AX ;AX=0,CF=ZF=0,MOV AX,0 测试指令TEST 格式: TEST DEST,SRC 功能: 将两个操作数进行逻辑“与”运算,结果只反映在标志位上,对操作数无影响 受影响标志: CF=0 , OF=0 , PF, ZF,SF 说明:该指令用于测试操作数的某位是否为1,被测试的位与1相“与” TEST AL,1 ;测试D0的值 ZF=0, D0=1 ZF=1,D0=0 移位指令 移位指令分逻辑移位和算术移位,分别具有左移或右移操作 SHL reg/mem,1/CL ;逻辑左移:reg/mem左移1/CL位,最低位补0,最高位进入CF SHR reg/mem,1/CL ;逻辑右移:reg/mem右移1/CL位,最高位补0,最低位进入CF SAL reg/mem,1/CL ;算术左移,与SHL是同一条指令 SAR reg/mem,1/CL ;算术右移:reg/mem右移1/CL位,最高位不变,最低位进入 CF 逻辑左移 shl al,1 * 汇编语言课件04 算术与逻辑运算指令 算术运算类指令 算术运算类指令用来执行二进制的算术运算:加减乘除。 这类指令会根据运算结果影响状态标志,有时要利用某些标志才能得到正确的结果 使用它们时请留心有关状态标志。 加法和减法指令 加法指令包含 ADD、ADC和INC三条指令 减法指令包括SUB、SBB、DEC、NEG和CMP五条指令。 除 INC和DEC不影响CF标志外,其它按定义影响全部状态标志位。 采用双操作数的加法、减法和后面介绍的逻辑运算指令具有共同的操作数组合形式: 运算指令助记符 reg , imm/reg/mem 运算指令助记符 mem , imm/reg 1)加和减指令 ADD dest, src ;加法:dest←dest+src SUB dest, src ;减法:dest←dest-src 加法指令与标志位 若(AL)=

文档评论(0)

gz2018gz + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档