如何将代码从masm转换为nasm代码。
foo_get_counter proc object:DWORD
mov ebx, object
mov eax, foo.m_counter[ebx]
ret
foo_get_counter endp
我不理解的部分是proc对象:DWORD
答案 0 :(得分: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
?)。祝你好运。