汇编-sub指令
不带借位的减法指令
SUB指令从目的操作数中减去源操作数。指令的语法为:
SUB dest, source
.386 .model flat,stdcall option casemap:none .data var1 DWORD 30000h var2 DWORD 10000h ExitProcess PROTO,dwExitCode:DWORD .code main PROC mov eax,var1 ;EAX=30000h sub eax, var2 ;EAX=20000h INVOKE ExitProcess,0 main ENDP END main
.386 .model flat,stdcall option casemap:none .data Rval SDWORD ? Yval SDWORD 30 Zval SDWORD 40 ExitProcess PROTO,dwExitCode:DWORD .code main PROC mov eax, Yval ;eax=30=0000001E sub eax,Zval ;eax=FFFFFFF6=-10 INVOKE ExitProcess,0 main ENDP END main
仅使用寄存器操作数的部分时,寄存器的其他部分不会被修改
.386 .model flat,stdcall option casemap:none .stack 4096 .data ExitProcess PROTO,dwExitCode:DWORD .code main PROC mov eax,00000000h sub ax,1 ;EAX = 0000FFFFh ;仅使用16位ax,eax的高位不会被修改 INVOKE ExitProcess,0 main ENDP END main