MASM で、マクロ命令を対応するアセンブリ言語命令に変換することはできますか? マクロが実際にどのように動作するかを確認できるように、MASM のマクロ命令を単純なアセンブリ言語命令に変換したいと考えています。
たとえば、これらのマクロ命令を対応するアセンブリ言語命令 (マクロなし) に変換したいと思います。
.if(x > 5)
mov eax, x
.else
mov ebx, x
.endif
提案された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