80x86 指令系统—算术运算指令

加法指令

说明:
1、DST:REG/MEM,SRC:8/16data/REG/MEM。
2、DST、SRC不能同时为MEM。
3、加法指令影响标志寄存器的状态标志。
4、INC指令不影响CF标志。

ADD(add)  加法
格式:ADD DST,SRC
操作:DST <= DST+SRC
ADC(add with carry) 带进位的加法
格式:ADC DST,SRC
操作:DST <= DST+SRC+CF
INC(increment) 加1
格式:INC DST
操作:DST <= DST +1

减法指令

说明:
1、DST:REG/MEM,SRC:8/16data/REG/MEM。
2、DST、SRC不能同时为MEM。
3、减法指令影响标志寄存器的状态标志。
4、DEC指令不影响CF标志。

SUB(subtract) 减法
格式:SUB DST,SRC
操作:DST <= DST-SRC
SBB(subtract with borrow) 带借位的减法
格式:SBB DST,SRC
操作:DST <= DST-SRC-CF
DEC(Decrement) 减1
格式:DEC DST
操作: DST <= DST -1
NEG(Negate)求补
格式:NEG DST
操作: DST <= 0-DST 
利用NEG指令可以得到负数的绝对值
CMP(Compare) 比较
格式:CMP DST,SRC
操作:DST-SRC
相当于减法,但不保存结果,仅影响标志。

加减法例题

eg:计算两个多字节十六进制数之和:3B74AC60F8H+20D59E36C1H=?
式中被加数和加数均有5个字节,可以编一个循环程序实现以上运算。
假设已将被加数和加数分别存入从DATA1和DATA2开始的两个内存区,
且均为低位字节在前,高位字节在后。
要求相加所得结果仍存回以DATA1为首址的内存区。
MOV		CX5		;设置循环次数
MOV		SI0		;置位移量初值
CLC 				;清进位CF
LOOPERMOV   ALDATA2[SI]			;取一个加数
ADC		DATA1[SI]AL				;和一个被加数相加
INC		SI			;位移量加1
DEC		CX			;循环次数减1 
JNZ		LOOPER		;加完否,若没完,转LOOPER
                    ;继续相加
HLT					;程序暂停 

被加数和加数在内存中的存放情况

乘法指令

说明:
1、SRC 为 REG/MEM。
2、乘法指令影响状态标志,但只对CF和OF有定义且CF=OF,其余的状态位不确定。

MUL(Unsigned Multiple) 无符号数乘法
格式:MUL SRC
操作:AX<=AL*SRC(字节)/ DX,AX<=AX*SRC(字)
默认使用AX 或 DX,AX 为目的操作数。
IMUL(Signed Multiple) 有符号数乘法
格式:IMUL SRC
操作:AX<=AL*SRC(字节)/ DX,AX<=AX*SRC(字)
默认使用AX 或 DX,AX为目的操作数。

乘法指令

除法指令

说明:
1、SRC 为 REG/MEM。
2、除法指令影响状态标志但对所有标志无定义。
3、商可能出现溢出,会立即产生除法溢出中断。

DIV(Unsigned divide)无符号数除法
格式:DIV SRC
操作:
1、字节除法:AX/SRC, 商=>AL, 余数=>AH
2、字除法:DX,AX/SRC, 商=>AX, 余数=>DX
IDIV(Signed divide)有符号数除法
格式:IDIV SRC
操作:
1、字节除法:AX/SRC, 商=>AL, 余数=>AH
2、字除法:DX,AX/SRC, 商=>AX, 余数=>DX

除法指令

符号扩展指令

说明:
1、CBW和CWD对标志位无影响
2、扩展方法
由符号扩展指令实现,正数补0,负数补1。
(无符号数的扩展:将高位补0)

CBW(Convert byte to word)字节扩展到字
格式:CBW ;如果(AL)<80H,则(AH)<=00H,否则(AH)<=0FFH
操作:把AL扩展到AX。
CWD(Convert word to double word)字扩展到双字
格式:CWD ;如果(AX)<8000H,则(DX)<=0000H,否则(DX)<=0FFFFH
操作:把AX扩展到DX,AX 。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王玄清

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值