Disassemblers

An example of its use, disassemble DUP, ?DUP & DROP in noForth:

das dup
  20000EDC:    1F09  sp 4 # subs
  20000EDE:  ` 600B  tos sp 0 #) str
  20000EE0:    C804  ip { w } ldm
  20000EE2:    CA10  w { hop } ldm
  20000EE4:  F 46A7  pc hop mov
name ?DUP
  20000EF8:  + 2B00  tos 0 # cmp
  20000EFA:    D1EF  -22 to 20000EDC bne
  20000EFC:    C804  ip { w } ldm
  20000EFE:    CA10  w { hop } ldm
  20000F00:  F 46A7  pc hop mov
name DROP
  20000F14:    C908  sp { tos } ldm
  20000F16:    C804  ip { w } ldm
  20000F18:    CA10  w { hop } ldm
  20000F1A:  F 46A7  pc hop mov
Command Example Purpose
DAS DAS DUP Disassemble from the word DUP
MDAS<addr> MDASDisassemble from <addr>

Each time the space bar is hit, a new line is disassembled. When any other key is hit the disassembly stops! Note that the noForth version is slightly more advanced. It recognizes a header and prints its name.

Contributions

Alternative Implementations

Back to PFW page