Macro.inc

;*******************************************************************
; 将参数列表的顺序翻转
;*******************************************************************
reverseArgs macro arglist:VARARG
  local txt,count
   
 txt TEXTEQU <>
 count = 0
 for i,<arglist>
         count = count + 1
         txt TEXTEQU @CatStr(i,<!,>,<%txt>)
 endm
 if count GT 0
         txt SUBSTR  txt,1,@SizeStr(%txt)-1
 endif
 exitm txt
endm
;*******************************************************************
; 建立一个类似于 invoke 的 Macro
;*******************************************************************
_invoke  macro _Proc,args:VARARG
  local count
   
 count = 0
% for i,< reverseArgs( args ) >
  count = count + 1
  push i
 endm
 call dword ptr _Proc   
   
endm
;*******************************************************************

;*******************************************************************
; 将两个内存2传递给内存变量1
;*******************************************************************
m2m macro m1,m2
 push m2
 pop m1
endm

;*******************************************************************
; 带参数返回
;*******************************************************************
return macro arg
 mov eax,arg
 ret
 endm

;*******************************************************************
; 压入有自定位的全局变量
;*******************************************************************
pushm macro arg
 mov eax,[ebx + arg]
 push eax
 endm

;*******************************************************************
; 指针传递
;*******************************************************************
mp2m macro m1,m2
 mov eax,m1
 mov eax,[eax]
 mov m2,eax
 endm

;*******************************************************************
; EAX==0时跳转
;*******************************************************************
JEAXZ macro Destination
 test eax,eax
 je Destination
 endm 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值