文章目录
数据传送类指令
通用数据传送指令
MOV
XCHG
XLAT 换码指令
其中BX就是存储一个基础地址,然后加上AL存储的偏移量
堆栈操作指令
标志传送指令
标志位操作指令
地址传送指令
算术运算类指令
常用标志位
对于无符号数来说,一般不讲溢出,而是使用进位
这个CF只是说最高位有进位,那么这个最高位有可能是单字节或者双字节
加法指令
ADD
ADC
与ADD的区别就是考虑了进位
INC
减法指令
SUB
SBB
同样,和sub的差别就是考虑了CF符号位
DEC
NEG
可以拿NEG
来求负数的绝对值:因为当我们存储一个负数的时候,我们想求这个负数的绝对值,我们可以把这个负数的补码形式,全部按位取反,再加一即可
CMP
注意CMP指令只是去设置标志位,并没有改变目的操作数
乘法指令
MUL(无符号)
乘法要注意相对应的位数相乘,隐含操作数是AL和AX
IMUL(有符号)
MUL和IMUL对符号的影响
除法指令
DIV
你会发现一个问题,其实除法的话和我们平时的计算存储结果的逻辑是一样的,也就是先写商再写余数,所以也就是商在低地址,余数在高地址
IDIV
符号拓展指令
十进制调整指令
DAA (加法压缩)
会利用判断AF,CF位