;add 加法 ;add 操作数1 操作数2 ---->结果放在操作数1 ;sub 减法指令 ;sub 操作数1 操作数2 ----->操作1-操作2 结果放在操作数1里面 ;inc 自增 dec 自减 ;inc 操作数 ;neg 非操作,按位取反
减法运算
.586 .MODEL flat,stdcall option casemap:none ; inc 是一个头文件 include windows.inc include user32.inc include kernel32.inc ;msvcrt.inc 引用c中的输入输出功能 include msvcrt.inc ;库文件 includelib user32.lib includelib kernel32.lib includelib msvcrt.lib .data format dd "%d",0 ;相当于 char *text "my name is wangtengxian!" text db "my name is wangtengxiang!",0 .code main proc mov eax,6 mov ebx,1 sub eax,ebx call ExitProcess add esp,4 main ENDP END main
关于标记寄存器
参考:https://blog.csdn.net/jn1158359135/article/details/7761011
1、状态标志(Status Flags) EFLAGS寄存器的状态标志(0、2、4、6、7以及11位)指示算术指令(如ADD, SUB, MUL以及DIV指令)的结果,这些状态标志的作用如下: CF(bit 0) [Carry flag] 进制标志位,若算术操作产生的结果在最高有效位(most-significant bit)发生进位或借位则将其置1,反之清零。这个标志指示无符号整型运算的溢出状态,这个标志同样在多倍精度运算(multiple-precision arithmetic)中使用。 PF(bit 2) [Parity flag] 如果结果的最低有效字节(least-significant byte)包含偶数个1位则该位置1,否则清零。 AF(bit 4) [Adjust flag] 如果算术操作在结果的第3位发生进位或借位则将该标志置1,否则清零。这个标志在BCD(binary-code decimal)算术运算中被使用。 ZF(bit 6) [Zero flag] 若结果为0则将其置1,反之清零。 SF(bit 7) [Sign flag] 该标志被设置为有符号整型的最高有效位。(0指示结果为正,反之则为负) OF(bit 11) [Overflow flag] 如果整型结果是较大的正数或较小的负数,并且无法匹配目的操作数时将该位置1,反之清零。这个标志为带符号整型运算指示溢出状态。
例子:结果不为0 ZF标志位置1