算术运算指令.doc

算术运算指令.doc

ID:53241739

大小:24.60 KB

页数:5页

时间:2020-04-02

算术运算指令.doc_第1页
算术运算指令.doc_第2页
算术运算指令.doc_第3页
算术运算指令.doc_第4页
算术运算指令.doc_第5页
资源描述:

《算术运算指令.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、u算数类指令经常会影响标志位,搞清楚以下两个概念:ü对标志没有定义:指令执行后这些标志是任意的、不可预测(就是谁也不知道是0还是1)ü对标志没有影响:指令执行不改变标志状态u注意有符号数进行计算是用其补码进行计算的,有符号数在计算机里是以补码的形式进行存储的!!!!!u使用内存地址为寻址方式时,一定要用伪指令指明操作数类型。²加法类(带符号数相加要考虑溢出):1.加法指令ADD(ADD目的操作数,源操作数;将源与目的操作数相加,结果送到目的操作数)目的操作数:reg,mem源操作数:imm,reg,mem注意:1.存储器之间不能相加。2.根据结果对相应的标志位作出改变,即,影响标志位!

2、!!2.带进位加法指令ADC(ADD目的操作数,源操作数;将源、目的操作数与CF标志位相加,结果送到目的操作数)目的操作数:reg,mem源操作数:imm,reg,mem注意:1.存储器之间不能相加。2.根据结果对相应的标志位作出改变,即,影响标志位!!!3.ADC指令主要与ADD配合,实现多精度加法运算。4.CF是本指令执行前的状态b多精度加法运算示例movax,4652h;ax=4652haddax,0f0f0h;ax=3742h,CF=1movdx,0234h;dx=0234hadcdx,0f0f0h;dx=f325h,CF=0;DX.AX=02344652H+F0F0F0F0H

3、=F3253742H3.增量指令INC(increment;INC指令对操作数加1(增量);INCreg/mem)操作数:reg/mem注意:1.不影响进位CF标志,按定义设置其他状态标志。(仅不影响CF,还会影响其他)2.主要用于对计数器和地址指针的调整,而不用来做单纯的算术计算。3.当使用存储器操作数时,不得出现二义性。²减法类:4.减法指令SUB(目的操作数减去源操作数,结果送到目的操作数;sub目的操作数,源操作数)目的操作数:reg,mem源操作数:imm,reg,mem注意:1.存储器之间不能相减。2.根据结果对相应的标志位作出改变,即,影响标志位!!!3.看清谁是减数,谁

4、是被减数。5.带借位减法指令SBB(将目的操作数减去源操作数,再减去借位CF(进位),结果送到目的操作数,)目的操作数:reg,mem源操作数:imm,reg,mem注意:1.存储器之间不能相减。2.根据结果对相应的标志位作出改变,即,影响标志位!!!3.看清谁是减数,谁是被减数。4.SBB指令主要与SUB配合,实现多精度减法运算5.CF是本指令执行前的状态b多精度减法运算示例movax,4652h;ax=4652hsubax,0f0f0h;ax=5562h,CF=1movdx,0234h;dx=0234hsbbdx,0f0f0h;dx=1143h,CF=1;DX.AX=0234465

5、2H-F0F0F0F0H=11435562H6.减量指令DEC(decrement;)操作数:reg/mem注意:1.不影响进位CF标志,按定义设置其他状态标志。(仅不影响CF,还会影响其他)2.主要用于对计数器和地址指针的调整,而不用来做单纯的算术计算。3.当使用存储器操作数时,不得出现二义性。7.求补指令NEG(negative;用零减去操作数,然后结果返回该操作数)操作数:reg,mem注意:1.也可以表达成:将操作数按位取反后加1。2.NEG指令对标志的影响与用零作减法的SUB指令一样,影响标志位!!!b课本P49页两种求补方式!!8.比较指令CMP(compare;CMP指令

6、将目的操作数减去源操作数,按照定义相应设置状态标志,结果不回送目的操作数)目的操作数:reg,mem源操作数:imm,reg,mem注意:1.存储器之间不能相减。2.根据结果对相应的标志位作出改变,即,影响标志位!!!3.看清谁是减数,谁是被减数。4.不更改目的操作数!!!!!!²十进制调整指令(重要)十进制数调整指令对二进制运算的结果进行十进制调整,以得到十进制的运算结果分成压缩BCD码和非压缩BCD码调整(BCD码在计算机中仍以十六进制表示,但是认为是十进制数)Ø压缩BCD码压缩BCD码就是通常的8421码;它用4个二进制位表示一个十进制位,一个字节可以表示两个十进制位,即00~9

7、9Ø非压缩BCD码非压缩BCD码用8个二进制位表示一个十进制位,只用低4个二进制位表示一个十进制位0~9,高4位任意,通常默认为0b示例:二进制编码的十进制数:一位十进制数用4位二进制编码来表示8086支持压缩BCD码和非压缩BCD码的调整运算真值864二进制编码08H40H压缩BCD码08H64H非压缩BCD码08H0604Hl压缩BCD码加(DAA)、减(DAS)调整指令操作数隐含,为寄存器AL(ADDAL,i8/r8/m8)(ADCAL,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。