x86汇编代码中的宏

use*_*300 1 macros x86 assembly

有人可以解释如何在x86汇编编码中使用宏

Dea*_*unt 7

这取决于你使用的编码器.

通常,汇编程序宏将采用以下形式;

begin MyMacro %1, %2
   mov eax, %1
   add eax, %2
end
Run Code Online (Sandbox Code Playgroud)

这将存在于源代码的标题部分,除非被引用,否则不会输出任何代码.您可以使用其他汇编程序对此进行内联.

mov ecx, 88
MyMacro ecx, 12
asr ecx, 3
Run Code Online (Sandbox Code Playgroud)

在这种情况下,"参数"%1和%2将替换为ecx和12,从而生成以下输出

mov ecx, 88
mov eax, ecx
add eax, 12
asr ecx, 3
Run Code Online (Sandbox Code Playgroud)