x86 inc指令学习

inc是加1指令;

INC Reg/Mem;

有两种形式;

对某个寄存器的值加1;把某个内存中的值加1;

执行 inc ax;执行之后寄存器值如下;

如果寄存器之前的值为全1,再加1,就发生溢出,寄存器的值为全0;

先给ax赋值0xffff;

然后ax的值加1;之后ax的值为全0;

看一下此时的标志位;

ZF,零标志置1,因为运算结果为0;

溢出标志OF还是0,OF是针对有符号数,这里是无符号运算;

PF,指令执行的结果的所有位数中1的个数是奇数还是偶数,如果是偶数,置1;这里是偶数;

AF,低半字节有没有向高半字节进位或者借位,如果有AF=1,否则AF=0;这里有进位;

定义一个dw变量num,然后把num加1;

看一下运行之前数据段存储的是39和30;12345的十六进制是3039;

运行之后数据段内存的是3A和30;12346的十六进制是303A;