013-【X86-汇编语言】-整数的加法和减法

加1(INC)

INC指令的作用是将目的操作数的值加1,将其结果存到目的操作数中,命令格式如下

INC 目的操作数

【目的操作数】可以是寄存器,变量

减1(DEC)

DEC指令的作用是将目的操作数的值减1,将其结果存到目的操作数中,命令格式如下

DEC 目的操作数

【目的操作数】可以是寄存器,变量

加(ADD)

ADD指令是将【目的操作数】和【源操作数】相加,将其结果存到目的操作数中,命令格式如下

ADD 目的操作数,源操作数

【目的操作数】可以是寄存器,变量

【源操作数】可以是寄存器,变量,立即数

目的操作数和源操作数不可以同时为变量,目的操作数和源操作数的bit位数必须相同。

减(SUB)

ADD指令是将【目的操作数】减去【源操作数】,将其结果存到目的操作数中,命令格式如下

SUB 目的操作数,源操作数

【目的操作数】可以是寄存器,变量

【源操作数】可以是寄存器,变量,立即数

目的操作数和源操作数不可以同时为变量,目的操作数和源操作数的bit位数必须相同。

负(NEG)

NEG指令是求【目的操作数】的相反数(即补码),将其结果存到目的操作数中,命令格式如下

NEG 目的操作数

程序实例

.386
.model flat,stdcall
.stack 4096
ExitProcess PROTO, dwExitCode:DWORD

.data
forAdd DWORD 0fh;
forSub DWORD 08h;
.code
ADDTEST PROC
MOV	EAX,0h	;将EAX设置成0
MOV EBX,2h		;将EBX设置成2
INC forAdd		;forAdd加1,forAdd为10h
DEC forSub		;forSub减1,forSub为07h
INC EAX			;将EAX加1. EAX为1
DEC EBX			;将EBX减1. EBX为1
ADD forAdd,EAX	;将forAdd+EAX的值存入forAdd.forAdd为11h
SUB forSub,EBX	;将forSub-EBX的值存入forSub.forSub为06h
ADD forAdd,02h	;将forAdd-02h的值存入forAdd.forAdd为13h
SUB forSub,02h	;将forSub-02h的值存入forSub.forSub为04h
ADD EAX,EBX		;将EAX+EBX的值存到EAX,EBX不变.EAX为2 EBX为01h
SUB EAX,EBX		;将EAX-EBX的值存到EAX,EBX不变.EXA为1 EBX为01h
ADD EAX,02h		;将EAX+02h的值存到EAX.EAX为03h
SUB EBX,01h		;将EBX-01h的值存到EAX.EAX为00h
ADD EBX,forAdd	;将EBX+forAdd的值存到EBX.EBX为13h
NEG EBX			;将EBX取反(补码).EBX为0FFFFFFEDh
INVOKE ExitProcess,0
ADDTEST ENDP
END ADDTEST

 

猜你喜欢

转载自blog.csdn.net/patronwa/article/details/88565233