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 , を付けると、 末尾が認識されるようになります。