高等教育第332算术运算类指令.pptx
《高等教育第332算术运算类指令.pptx》由会员分享,可在线阅读,更多相关《高等教育第332算术运算类指令.pptx(69页珍藏版)》请在咨信网上搜索。
1、第第3 3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式第三章第三章 80 x86的的指令系统指令系统(二二)返回目录返回目录二、算术运算类指令二、算术运算类指令p36第第3 3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式二二算术运算类指令算术运算类指令1.加法指令加法指令2.减法指令减法指令3.乘法指令乘法指令4.除法指令除法指令5.十进制调整指令十进制调整指令返回本节首页返回本节首页算术指令的寻址方式:算术指令的寻址方式:p36双操作数指令双操作数指令的两个操作数中除源操作数为立即数的的两个操作数中除源操作数为立即数的情况外,情况外,必须有
2、一个操作数在寄存器中。必须有一个操作数在寄存器中。单操作数指令不允许使用立即数方式。单操作数指令不允许使用立即数方式。第第3 3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式1.加法运算指令加法运算指令p36(1)加指令)加指令ADD(add)(2)带进位加指令带进位加指令ADC(addwithcarry)(3)非压缩十进制数的加法校正指令非压缩十进制数的加法校正指令AAAAAA(4)加法十进制校正指令加法十进制校正指令DAA(5)加加1指令指令INC(increment)(6)交交换并相加换并相加XADD(exchangeandadd)返回本节首页返回本节首页第第3
3、3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式1加法加法(1)加法指令的一般格式)加法指令的一般格式ADDdst,src功能功能:dstdst+src该指令对源操作数和目的操作数的内容执行一个字节或该指令对源操作数和目的操作数的内容执行一个字节或字的加法,并把结果放回原来存放目的操作数的地方。字的加法,并把结果放回原来存放目的操作数的地方。源操作数可以是立即数、寄存器或存储单元。目的操作源操作数可以是立即数、寄存器或存储单元。目的操作数可以是寄存器或存储单元。数可以是寄存器或存储单元。例如:例如:ADDAL,30H;AL内容加立即数内容加立即数30H,结果存回到结果存
4、回到AL中中ADDAX,SI;AX和和SI两寄存器内容相加,结果存回到两寄存器内容相加,结果存回到AX中中ADDBX+DI,AX;BX+DI和和BX+DI+1两存储单元内容和两存储单元内容和AX内容相加,内容相加,结果存回到上述两存储单元中结果存回到上述两存储单元中第第3 3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式(2)带进位加法指令的一般格式带进位加法指令的一般格式ADC dst,src ADC dst,src 功能:功能:dstdstdst+src+CFdst+src+CF 该指令和该指令和ADDADD指令类似,只是在两个操作数指令类似,只是在两个操作数相加时
5、,要把标志寄存器中进位标志相加时,要把标志寄存器中进位标志CF CF 的当的当前值加上去,结果放回原来存放目的操作数前值加上去,结果放回原来存放目的操作数的地方。的地方。该该指指令令主主要要用用于于多多字字节节运运算算中中。例例如如,见下页:见下页:第第3 3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式例如,有两个四字节的数相加,例如,有两个四字节的数相加,加法要分两次进行,加法要分两次进行,先进行低两字节数相加,先进行低两字节数相加,然后再做高两字节数相加,然后再做高两字节数相加,在高两字节数相加时,要把前两字在高两字节数相加时,要把前两字节相加以后的进位考虑进去,
6、就要用节相加以后的进位考虑进去,就要用到带进位加法指令。到带进位加法指令。第第3 3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式【例【例1 1】无符号双字加法运算。无符号双字加法运算。0234 4657H+0F0F 0F0FH 0234 4657H+0F0F 0F0FHMOVMOV AXAX,4652H 4652H;(AXAX)=4652H =4652H 送低字送低字MOVMOV DXDX,0234H 0234H;(DXDX)=0234H =0234H 送高字送高字ADDADD AXAX,0F0F0H 0F0F0H;(AXAX)=3742H=3742H,CF=1 CF
7、=1 加低字加低字ADCADC DXDX,0F0F0H0F0F0H;(DXDX)=0F325H=0F325H,CF=0 CF=0 加高字和进位加高字和进位第第3 3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式【例【例2 2】无符号双字加法运算无符号双字加法运算若两个四字节的无符号数,分别存放在首址为若两个四字节的无符号数,分别存放在首址为2000H和和3000H的存储单元内,低位在前,高位在后,要求两数相加,结果存放的存储单元内,低位在前,高位在后,要求两数相加,结果存放在首址为在首址为2000H的单元中,可用如下程序段实现:的单元中,可用如下程序段实现:MOVSI,
8、2000H;第一个数首址送第一个数首址送SIMOVAX,SI;第一个数低第一个数低16位送位送AXMOVDI,3000H;第二个数首址送第二个数首址送DIADDAX,DI;两数低两数低16位相加位相加MOVSI,AX;低低16位数相加后的和存入位数相加后的和存入2000H和和2001H两存两存储单元中储单元中MOVAX,SI+2;第一个数高第一个数高16位送位送AXADCAX,DI+2,;两数高两数高16位带进位加位带进位加MOVSI+2,AX;两高两高16位数带进位相加后的和存入位数带进位相加后的和存入2002H和和2003H两单元两单元第第3 3章章 80 80 x86x86的指令系统和寻
9、址方式的指令系统和寻址方式(3)非压缩十进制数的加法校正指令非压缩十进制数的加法校正指令 所谓非压缩十进制数,就是把数字所谓非压缩十进制数,就是把数字0 9的的ASCII码的高码的高四位置四位置0以后形成的数码,如以后形成的数码,如6为为00000110,9为为00001001。两非压缩十进制数相加,要得到正确结果仍为非压缩十两非压缩十进制数相加,要得到正确结果仍为非压缩十进制数,必须用进制数,必须用AAAAAA指令校正,结果存在指令校正,结果存在AXAX中。中。AAA AAA指令指令(ASCII Ajust for Addition)ASCII Ajust for Addition)是对两个
10、非压是对两个非压缩的十进制数相加后缩的十进制数相加后ALAL的和进行校正的和进行校正。第第3 3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式校正方法校正方法 如果如果AL的低的低4位大于位大于9或(或(AF)=1,应校正:在应校正:在AXAX寄存器内容寄存器内容上加上加106106H H,标志位标志位AFAF和和CFCF置置1 1,并且,并且ALAL高四位置高四位置0 0。即:。即:(AL)=(AL)+6(AH)=(AH)+1(AF)=(CF)=1且且AL高高4位清零。位清零。否则:(否则:(CF)=(AF)=0,AL高高4位清零。位清零。如在如在ALAL和和BLBL
11、中,如各存有一个非压缩中,如各存有一个非压缩BCDBCD数相加,其和存在数相加,其和存在ALAL中也是非压缩中也是非压缩BCDBCD数,可用如下程序段:数,可用如下程序段:MOV ALMOV AL,09H 09H ;非压缩非压缩BCD数表示为数表示为00001001 MOV BL MOV BL,06H 06H ;非压缩非压缩BCD数表示为数表示为00000110 ADD AL,BL ADD AL,BL ;两数相加两数相加,结果为,结果为00001111,不是非压缩,不是非压缩BCD数数 AAA AAA ;必须用必须用AAA指令进行指令进行校正,最后校正,最后结果为(结果为(AH)=000000
12、01,(AL)=00000101,(,(AF)=(CF)=1第第3 3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式(4)加法十进制校正指令加法十进制校正指令DAA 所谓压缩十进制数,就是把数字所谓压缩十进制数,就是把数字0 9的的ASCII码的低四码的低四位分别放在一个字节的高低四位后形成的数码,如位分别放在一个字节的高低四位后形成的数码,如63为为01100011,3 39为为00111001。DAA DAA指令指令(Decimal Adjust for Addition)Decimal Adjust for Addition)是压缩型十是压缩型十进制数的加法校正指
13、令,即进制数的加法校正指令,即ALAL存两位存两位BCDBCD数,数,DAADAA指令的校指令的校正和正和AAAAAA指令类似,它必须考虑两位指令类似,它必须考虑两位BCDBCD数。数。方法是:如果方法是:如果ALAL的低四位所存值大于的低四位所存值大于9 9,或标志位,或标志位AFAF为为1 1,则把,则把ALAL加上加上6 6,并置标志位,并置标志位AFAF为为1 1;如果;如果ALAL的高四位所存的高四位所存值大于值大于9 9,或标志位,或标志位CFCF为为1 1,则把,则把ALAL加上加上6060H H,并置标志位并置标志位CFCF为为1 1。MOV AL MOV AL,37H 37H
14、 ;压缩十进制数压缩十进制数37+49=8637+49=86 ADD AL,49H ADD AL,49H ;压缩十进制数应为压缩十进制数应为8686,但结果,但结果8080H H DAA DAA ;校正后校正后ALAL中得正确十进制数的结果中得正确十进制数的结果8686 第第3 3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式【例【例2 2】压缩】压缩BCDBCD码的加法运算。码的加法运算。MOV ALMOV AL,68H68H;(ALAL)=68H=68H,表示压缩表示压缩BCDBCD码码6868MOV BLMOV BL,28H28H;(BLBL)=28H=28H,表
15、示压缩表示压缩BCDBCD码码2828ADD ALADD AL,BLBL;(ALAL)=68H+28H=90H=68H+28H=90HDAADAA ;十进制调整:十进制调整:(ALAL)=96H=96H ;实现压缩实现压缩BCDBCD码加法:码加法:68+28=9668+28=96第第3 3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式(5 5)加)加1 1指令指令 INCINCINCdst功能:功能:dstdst+1这条指令完成对指定的操作数加这条指令完成对指定的操作数加1,然后返回该操作,然后返回该操作数。数。此指令主要用于在循环程序中修改地址指针和循环此指令主要用
16、于在循环程序中修改地址指针和循环次数等。可用这条指令对字或字节内容加次数等。可用这条指令对字或字节内容加1。例如:例如:INCCX;寄存器中字加寄存器中字加1,即(,即(CX)+1CX。INCAL;寄存器中字节加寄存器中字节加1,即(即(AL)+1AL。INCBYTEPTRBX+DI+10H;BX+DI+10H所指的所指的存储单元中字节加存储单元中字节加1第第3 3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式(6)XADD交换并相加指令(交换并相加指令(386后)后)语句格式:语句格式:XADD DSTXADD DST,SRCSRC功能:功能:TEMP (DSTDST
17、)+(SRCSRC)(SRCSRC)(DSTDST)(DSTDST)TEMP源操作数只能用寄存器寻址方式,源操作数只能用寄存器寻址方式,目的操作数则可用寄存器或任一种存储器寻址方式。目的操作数则可用寄存器或任一种存储器寻址方式。例例3.47XADDBL,DL如指令执行前如指令执行前(BL)=12H,(DL)=02H则指令执行后则指令执行后(BL)=14H,(DL)=12H第第3 3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式加法指令总结加法指令总结1、三条加法指令都可作字或字节运算;、三条加法指令都可作字或字节运算;2、除、除INC指令不影响指令不影响CF标志标志外,
18、它外,它们都影响条件标志位;们都影响条件标志位;3、条件标志位的影响见下:条件标志位的影响见下:返回本节首页返回本节首页第第3 3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式条件标志位的条件标志位的影响影响3、条件标志位最主要的是条件标志位最主要的是CF、ZF、SF、OF运算结果为零,则运算结果为零,则ZF=1,否则否则ZF=0;运算结果为负,则运算结果为负,则SF=1,否则否则SF=0;运算有进位时,运算有进位时,CF=1,否则否则CF=0;两操作数的符号相同,而结果的符号与之两操作数的符号相同,而结果的符号与之相反时,相反时,OF=1(有溢出),其余情况有溢出),
19、其余情况OF=0。下面举例说明下面举例说明CF、OF的设置情况。的设置情况。第第3 3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式数的溢出数的溢出CF位则可用来表示无符号数的溢出,位则可用来表示无符号数的溢出,OF位可以用来表示带符号数的溢出位可以用来表示带符号数的溢出。(1)带符号数和无符号数都不溢出 二进制加法 看作无符号数 看作带符号数 0000 0100 4 +4+0000 1011 +11 +(+11)0000 1111 15 +15 CF=0 OF=0(2)无符号数溢出 二进制加法 看作无符号数 看作带符号数 0000 0111 7 +7 +1111 10
20、11 +251 +(-5)0000 0010=+2 258 +2(结果对)1 CF=1 OF=0两个正数相加,应为正数+258(大于+255,有进位,CF=1),现为+2,结果错第第3 3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式(3)带符号数溢出(OF位可以用来表示带符号数的溢出,OF=1)二进制加法 看作无符号数 看作带符号数 0000 1001 9 +9+0111 1100 +124 +(+124)1000 0101 133 +133 CF=0 OF=1 两个正数相加,应为正数+133(大于+127,所以OF=1),现为-123,结果错(4)带符号数和无符号数
21、都溢出(CF位和OF位均为1)二进制加法 看作无符号数 看作带符号数 1000 0111 135 (-121)+1111 0101 +245 +(-11)0111 1100=(124D)380 -132 1 CF=1 OF=1 两个负数相加,应为负数-132(小于-128,所以OF=1),现为+124,结果错第第3 3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式例例ADDDX,0F0F0H如指令执行前如指令执行前(DX)=4652H则则46520100011001010010+F0F0+111100001111000000110111010000101指令执行后(指令
22、执行后(DX)=3742H,ZF=0,SF=0,CF=1,OF=0第第3 3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式例例3.46例例3.46ADDAX,CX;两个双精度数的加法。两个双精度数的加法。ADCDX,BX;(AX)=0F365H1111001101100101(CX)=0E024H+1110000000100100(AX)=0D389H1101001110001001CF=1则第一条指令执行后(则第一条指令执行后(AX)=0D389H,SF=1,ZF=0,CF=1,OF=0(BX)=0005H0000000000000101(DX)=0E024H0000
23、000000000010CF=+1(DX)=00080000000000001000第二条指令执行后(第二条指令执行后(DX)=0008H,SF=0,ZF=0,CF=0,OF=0因此该指令系列执行后(因此该指令系列执行后(DX)=0008H,(AX)=0D389H结果正确结果正确第第3 3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式2.减法运算指令减法运算指令(1)减指令)减指令SUB(2)带借位减指令)带借位减指令SBB(3)非压缩十进制减法校正指令非压缩十进制减法校正指令AAS(4)减法十进制校正指令减法十进制校正指令DAS(5)减)减1指令指令DEC(6)求补指
24、令求补指令NEG(7)比较指令比较指令CMP返回本节首页返回本节首页第第3 3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式(1)(1)减法指令减法指令SUBSUB语句格式:语句格式:SUB DSTSUB DST,SRCSRC功功能能:目目的的操操作作数数减减源源操操作作数数,结结果果存存于于目目的地址,源地址内容不变。的地址,源地址内容不变。即即(DST)(DST)(DSTDST)()(SRCSRC)这这条条指指令令可可完完成成两两个个操操作作数数的的字字节节或或字字相减。具体说,相减。具体说,可以从累加器中减去立即数,可以从累加器中减去立即数,或从寄存器减去立即数,
25、或从寄存器减去立即数,或从内存操作数中减去立即数,或从内存操作数中减去立即数,或从寄存器中减去寄存器或内存操作数等或从寄存器中减去寄存器或内存操作数等,或从寄存器中减去内存操作数等或从寄存器中减去内存操作数等.第第3 3章章 80 80 x86x86的指令系统和寻址方式的指令系统和寻址方式【例】例】减法运算。减法运算。SUB AL,10 SUB AL,10 ;AL;AL中数减去立即数中数减去立即数1010,结果存回,结果存回ALAL中中SUB SI,1000H SUB SI,1000H ;SI;SI数减去立即数数减去立即数10001000H H,结果存回结果存回SISI中中SUB WORD P
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高等教育 332 算术 运算 指令
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。