怎样写一个 push 64位浮点立即数的宏?

one2III one2III 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
再问:下面的用来压64位的内存参数有没问题?
invokeDmem MACRO funname, args:VARARG ;;args必须是64位内存地址
LOCAL txt, count
txt TEXTEQU <>
count = 0
for i,<args>
count = count + 1
txt TEXTEQU @CatStr(i,<!,>,<%txt>) ;;翻转参数
endm
if count GT 0
txt SUBSTR txt,1,@SizeStr(%txt)-1 ;;去掉最后的逗号
endif

% FOR arg, <txt> ;;每个参数分两次压栈
push dword ptr arg
push dword ptr arg[4]
ENDM
call funname
ENDM

如:
.data
d_45 dq 45.0
d_0p1 dq 0.1
d_100 dq 100.0

.code
LOCAL ratio:qword

invokeDmem gluPerspective, d_45, ratio, d_0p1, d_100


现在的问题是怎样写一个象下面的宏:

myMacro somestdapi, 0.0, 1.1, -2.2

请多指教。
...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部
one2III
汇编语言 21,500 成员 41,619 内容