是否有任何方法可以为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
你可以定义一个多行宏…
%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
提供的参数是您希望在堆栈上保留多少空间。