You can disassemble a
code word with
(see Debugging). You can disassemble a section of memory with
discodeaddr u – gforth “discode”
hook for the disassembler: disassemble u bytes of code at addr
There are two kinds of disassembler for Gforth: The Forth disassembler
(available on some CPUs) and the gdb disassembler (available on
mktemp). If both are
available, the Forth disassembler is used by default. If you prefer
the gdb disassembler, say
' disasm-gdb is discode
If neither is available,
The Forth disassembler generally produces output that can be fed into the assembler (i.e., same syntax, etc.). It also includes additional information in comments. In particular, the address of the instruction is given in a comment before the instruction.
The gdb disassembler produces output in the same format as the gdb
disassemble command (see Source and machine
code in Debugging with GDB), in the default flavour (AT&T syntax for
the 386 and AMD64 architectures).
See may display more or less than the actual code of the word,
because the recognition of the end of the code is unreliable. You can
discode if it did not display enough. It may display more, if
the code word is not immediately followed by a named word. If you have
something else there, you can follow the word with
align latest ,
to ensure that the end is recognized.