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

时间:2013-03-12 18:43:17

标签: assembly macros masm

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

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

.if(x > 5)
    mov eax, x
.else
    mov ebx, x
.endif

1 个答案:

答案 0 :(得分:2)

我打算建议“生成一个列表”,例如500-InternalServerError建议,但在验证后,这不起作用 - 列表仅包含您的指令,而不包含MASM生成的指令。工作如下:

1)使用调试信息进行汇总:

ml /c /Zi file.asm

2)用dumpbin(或其他反汇编程序)反汇编:

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