Next: , Previous: , Up: Assembler and Code Words   [Contents][Index]


6.29.3 Common Disassembler

code ワードは see で逆アセンブルできます(see Debugging)。 以下を使用してメモリのセクションを逆アセンブルできます

discode ( addr u –  ) gforth-0.2 “discode”

逆アセンブラのフック: addr から u バイトのコードを逆アセンブルします。

Gforth には 2 種類の逆アセンブラがあります。 Forth 逆アセンブラ(一部の CPU で利用可能) と gdb 逆アセンブラ(gdb および mktemp を備えたプラットフォームで利用可能)です。 両方が使用可能な場合は、 Forth 逆アセンブラがデフォルトで使用されます。 gdb 逆アセンブラを使いたい場合は、 以下のようにします

' disasm-gdb is discode

どちらも使用できない場合は、discodedump を実行します。

Forth 逆アセンブラは通常、 アセンブラに入力できる出力(つまり、同じ構文など)を生成します。 コメントには追加情報も含まれます。 特に、 命令のアドレスは命令の前のコメントで示されます。

gdb 逆アセンブラは、 デフォルトの形式(flavour)(386 および AMD64 アーキテクチャの AT&T 構文)で、 gdb disassemble コマンドと同じ形式で出力を生成します(see Source and machine code in Debugging with GDB)。

see は、 コードの終わりの認識が信頼できないため、 ワードの実際のコードより多めに表示したり少なめに表示したりする場合があります。 十分に表示されない場合は、 discode を使用できます。 コード・ワードの直後に名前付きワードが続かない場合は、 さらに表示される可能性があります。 他に何かがある場合は、 ワードの後に align latest , を付けると、 末尾が認識されるようになります。