【问题标题】:Masm code translated into Nasm codeMasm 代码翻译成 Nasm 代码
【发布时间】:2013-11-14 00:04:45
【问题描述】:
如何将代码从 masm 转换为 nasm 代码。
foo_get_counter proc object:DWORD
mov ebx, object
mov eax, foo.m_counter[ebx]
ret
foo_get_counter endp
我不明白的部分是 proc object:DWORD
【问题讨论】:
标签:
assembly
x86
nasm
masm
【解决方案1】:
除非我弄错了,否则它是传递给函数的参数。您可以找到包含 proc 宏的 Nasm 宏集。我认为在“原始 Nasm”语法中,类似于...
; does "proc" imply "global foo_get_counter"? Might.
foo_get_counter:
push ebp
mov ebp, esp
; could %define object ebp + 8
mov ebx, [ebp + 8]
mov eax, [foo.m_counter + ebx]
leave
ret
我不知道foo.m_counter 是什么。您可能需要在那里更改语法。可能是[foo + foo.m_counter + ebx] 或类似的。根据 Masm 的 .model 指令,ret 可能需要为 ret 4(如果是 STDCALL ?)。祝你好运。