算术运算类指令.pptx

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算术运算类指令微机原理与接口技术 2009年6月2日星期二2 算术运算类指令加法减法乘法除扩展指令外,指令的执行结果都影响状态标志位 指 令 名 称指 令 书 写 格 式状 态 标 志 位OF SF ZF AF PF CF加法加法带进位加法加1交换加 (486)ADD reg/mem,reg/mem/immADC reg/mem,reg/mem/immINC reg/memXADD reg/mem,regY Y Y Y Y YY Y Y Y Y YY Y Y Y Y YY Y Y Y N Y减法减法带借位减法减1取负比较比较交换 (486)8字节比较交换(奔腾)SUB reg/mem,reg/mem/imm SBB reg/mem,reg/mem/imm DEC reg/memNEG reg/memCMP reg/mem,reg/mem/immCMPXCHG reg/mem,regCMPXCHG8B mem64Y Y Y Y Y Y Y Y Y Y Y YY Y Y Y Y NY Y Y Y Y 1Y Y Y Y Y YY Y Y Y Y YN N Y N N N除法扩展十进制调整 2009年6月2日星期二3一.加减法类指令(1)加减法指令ADD/SUB指令格式: ADD reg / mem,reg/ mem/ imm SUB reg / mem,reg/ mem/ imm 功能: ADD完成两个操作数的加运算,结果送入第一个操作数; SUB完成第一个操作数减去第二个操作数,差送回到第一个操作数。 0110010110100000+)1011011110011110 10001110100111110结果非零:ZF=0无进位: AF=0低8位为偶数个1:PF=0最高位有进位:CF=1最高位为0:SF=0OF=最高位进位1⊕次高位进位1,则OF=0【例】 设AX=65A0H,BX=B79EH,指令ADD BX,AX的执行情况如下:BX=1D3EH,CF=1,SF=0,OF=0,AF=0,PF=0,ZF=0。 2009年6月2日星期二4(2)带进位、借位的加减法指令ADC/SBB指令格式:ADC OPRD1,OPRD2 SBB OPRD1,OPRD2指令功能:常用于长度为两个字或两个字以上的操作数的运算,加法操作时在最低位加上进位位CF,或减法操作时减去借位位CF。例如:如果有一个64位数据已存放在EAX(高32位)和EBX(低32位)中,现要加上一个常数123456789ABCDEF0H,这时可用下面两条指令实现: ADD EBX, 9ABCDEF0H ADC EAX, 2009年6月2日星期二5(3)增量和减量指令INC/DEC指令格式: INC MEM/ REG DEC MEM/ REG功能:是单操作数指令,完成对指定的操作数加1/减1(1是隐含的),然后返回此操作数。注意:指令执行的结果影响标志位AF、OF、PF、SF和ZF,而不影响进位标志CF。 例:INC CX ;CX寄存器中的内容加1 DEC WORD PTR [EAX];把EAX指向的字存储单元内容减1在64位方式下,大多数INC/DEC指令都是可以使用的。但是单字节编码的INC/DEC指令因为与16个REX前缀代码相同,所以不能使用。 2009年6月2日星期二6(4)求补指令NEG指令格式:NEG REG / MEM功能:用零减去操作数,再把结果送回操作数。该指令执行的效果是改变操作数的符号,将正数变成负数或将负数变成正数,但绝对值不变,所以又称为取负指令。注意:NEG指令影响所有状态标志:若操作数不是0,则总是使CF=1,否则置0;若在字节操作时对-128、或在字操作时对-32768求补、或在32位操作时对-232求补则操作数没变化,但溢出标志OF=1。例:NEG EBX ;对EBX求补,即EBX← 0-EBXNEG BYTE PTR [SI] ;对8位内存操作数求相反数NEG AL ;AL←0-ALADD AL,200 ;以上两条指令实现AL←(200-AL)的运算NEG RAX ;RAX←0-RAXNEG QWORD PTR [EAX];对64位内存操作数求相反数 2009年6月2日星期

您可能关注的文档

文档评论(0)

132****0155 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档