经常看到这样的汇编指令
inc %eax;
或者
add 1,%eax
那么他们之间有什么区别呢?
请看这样一个汇编代码
.section .text
.global _start
_start:
nop
movb $0xff,%al
add $0x1,%al //255+1就得到256,那么就会溢出,标志位CF就会置为1.
int $0x80
.section .text
.global _start
_start:
nop
movb $0xff,%al
inc %eax
inc %eax
inc %eax
movb $0x01,%ah
inc %ah
int $0x80
可以看到eflags中的进位标志位CF置为0,所以inc指令不影响标志位