1

如何将代码从 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

4

1 回答 1

1

除非我弄错了,否则它是传递给函数的参数。您可以找到包含宏的 Nasm 宏集proc。我认为在“原始 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?)。祝你好运。

于 2013-11-03T05:32:27.790 回答