汇编-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  

 

 

 

 

 

 

 

 

posted @ 2023-11-13 16:16  天子骄龙  阅读(1396)  评论(0)    收藏  举报