1

有什么方法可以为 nasm 中的例程生成以下页眉和页脚,而无需在每次定义新例程时都显式编码它们?

标题:

  push  ebp
  mov   ebp, esp    ; Entry code - set up ebp and esp

例行程序的主体

页脚:

  mov   esp, ebp    ; Function exit code
  pop   ebp
  ret

我正在寻找类似的东西:

some command that generates entry code
body of the routine
some command that generates exit code
4

1 回答 1

2

您可以定义一个多行宏...

%macro  prologue 1 

        push    ebp 
        mov     ebp,esp 
        sub     esp,%1 

%endmacro

来源

您可以为函数进入和退出定义一个。

%macro  prologue 1 

        push    ebp 
        mov     ebp,esp 
        sub     esp,%1 

%endmacro

%macro  epilogue 1 

        mov     esp,ebp
        pop     ebp 
        ret

%endmacro

提供的参数是您希望在堆栈上保留多少空间。

于 2013-05-01T11:35:00.717 回答