Intel 8086汇编之加减法指令

2011年05月20日 星期五 19时59分14秒 

1.加法指令add,adc,inc

(1)add dst, src和adc dst, src
dst是目的操作数,src是源操作数。

add指令实现的功能是:将目标操作数和源操作数相加,结果存放在目标操作数中,运算中产生的进位送进位标志位。 即(dst) <-- (dst)+(src)。执行指令后对进位标志CF、辅助进位标志AF、零标志ZF、符号标志SF、溢出标志OF和奇偶标志PF有影响,控制标志不变化。

adc指令实现的功能是:(dst) <-- (dst)+(src)+CF,执行指令后对进位标志CF、辅助进位标志AF、零标志ZF、符号标志SF、溢出标志OF和奇偶标志PF有影响,控制标志不变化。

两条指令中目的操作数和源操作数的有以下几种配对方式:
目标操作数                                                                  源操作数 

通用寄存器(AX BX CX DX SI DI BP SP)        立即数/内存单元/通用寄存器
内存单元(X ptr 段寄存器:[……])                  立即数/通用寄存器

注:通用寄存器还包括ah,al,bh, bl, ch, cl, dh, dl。X是word或byte

两条指令都需注意:
1-1.操作数类型要匹配,要么都为字类型要么都为字节类型。
1-2.目的操作数dst不能是立即数。
1-3.段寄存器不能作为操作数,并且指针寄存器IP也不能作为操作数。
1-4.两个操作数不能同时为内存单元。
1-5.内存单元作为目的操作数时,必须显式指明指令进行的是字操作还是字节操作,并且当寻址方式为直接寻址时,必须使用段跨越前缀。


2.inc opr
指令实现的功能是将opr加1,即(opr) <-- (opr)+1
注意:
2-1.操作数不能是立即数
2-2.操作数不能是段寄存器或指针寄存器IP
2-3.当操作数是内存单元时必须显式指明指令进行的是字操作还是字节操作,并且当寻址方式为直接寻址时,必须使用段跨越前缀。
2-4.inc指令不影响CF标志位

3.减法指令sub,sbb,dec类比加法相关指令;取补指令neg操作数不能是段寄存器或指针寄存器IP或立即数,并且内存单元作为操作数时,必须显式指明指令进行的是字操作还是字节操作,并且当寻址方式为直接寻址时,必须使用段跨越前缀,另取补指令影响标志位。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值