include Macros.inc
include Irvine32.inc
hello macro x:req,y:req
local L1,L2
;;向宏传输两个实参,第一个(x)为32位内存操作数,第二个为16位内存操作数
push eax
push ebx
call ReadInt
mov ebx,eax
shr eax,16
cmp eax,0;;确认是否为32位数或16位正数
je L1
cmp eax,0ffffh;;确认是否为16位负数
je L1
mov x,ebx
jmp L2
L1:
mov y,bx
L2:
pop ebx
pop eax
endm
.data
big sdword 0
sma sword 0
.code
main proc
hello big,sma
mShow big
mShow sma
mov eax,0
exit
main endp
end main
修复了-65536(0FFFF0000h)无法输出的bug
include Macros.inc
include Irvine32.inc
hello macro x:req,y:req
local L1,L2,L3,L4
;;向宏传输两个实参,第一个(x)为32位内存操作数,第二个为16位内存操作数
push eax
push ebx
call ReadInt
mov ebx,eax
shr eax,16
cmp eax,0;;确认是否为32位数或16位正数
je L3
cmp eax,0ffffh;;确认是否为16位负数
je L1
L4:
mov x,ebx
jmp L2
L1:
cmp bx,0
je L4
L3:
mov y,bx
L2:
pop ebx
pop eax
endm
.data
big sdword 0
sma sword 0
.code
main proc
hello big,sma
mShow big
mShow sma
mov eax,0
exit
main endp
end main