Assembly 将汇编语言宏转换为普通汇编语言

Assembly 将汇编语言宏转换为普通汇编语言,assembly,macros,masm,Assembly,Macros,Masm,在MASM中,是否可以将宏指令转换为相应的汇编语言指令?我想把MASM的宏指令转换成普通的汇编语言指令,这样我就可以看到宏实际上是如何工作的 例如,我想将这些宏指令转换为相应的汇编语言指令(不带宏): 我本来打算建议像proposed那样“生成一个列表”,但在验证之后,这是行不通的——该列表只包含您的指令,而不包含MASM生成的指令。工作原理如下: 1) 使用调试信息组装: ml /c /Zi file.asm 2) 使用dumpbin(或其他反汇编程序)进行反汇编: 对于上面的示例,它生成:

在MASM中,是否可以将宏指令转换为相应的汇编语言指令?我想把MASM的宏指令转换成普通的汇编语言指令,这样我就可以看到宏实际上是如何工作的

例如,我想将这些宏指令转换为相应的汇编语言指令(不带宏):

我本来打算建议像proposed那样“生成一个列表”,但在验证之后,这是行不通的——该列表只包含您的指令,而不包含MASM生成的指令。工作原理如下:

1) 使用调试信息组装:

ml /c /Zi file.asm
2) 使用
dumpbin
(或其他反汇编程序)进行反汇编:

对于上面的示例,它生成:

$$000000:
  00000000: 83 3D 00 00 00 00  cmp         dword ptr [x],5
            05
  00000007: 76 04              jbe         @C0001
  00000009: 8B C2              mov         eax,edx
  0000000B: EB 02              jmp         @C0003
@C0001:
  0000000D: 8B DA              mov         ebx,edx

当然,最简单的方法是让MASM组装文件,并让它生成一个输出列表。我忘了怎么做了——我已经多年没有使用MASM了——但我知道曾经有一个命令行开关来生成输出列表。
dumpbin /disasm file.obj
$$000000:
  00000000: 83 3D 00 00 00 00  cmp         dword ptr [x],5
            05
  00000007: 76 04              jbe         @C0001
  00000009: 8B C2              mov         eax,edx
  0000000B: EB 02              jmp         @C0003
@C0001:
  0000000D: 8B DA              mov         ebx,edx