如何查找和更改嵌入式 Forth 控制器中的变量?

Ril*_*ley 2 embedded debugging forth 68hc11

在维修仪表组时,我需要使用 Forth 更换基于 Motorola MC68HC11构建的控制器。虽然我能够转储整个内存,但不知道使用的是哪个 Forth,并且可用的单词似乎非常有限。

在嵌入式 Forth 环境中如何定位和更改内存中的已知值?

Cli*_*ord 5

根据 Forth 的风格,您可以使用vlist或列出所有“单词” words。字包括定义的任何变量或常量,并且可以使用以下运算符来操作变量:

\n
    \n
  • ! ( n addr \xe2\x80\x94 ) 将单长度数字存储到地址中。
  • \n
  • @( addr \xe2\x80\x94 n ) 获取 addr 处的值。
  • \n
  • ?( addr \xe2\x80\x94 ) 打印地址的内容,后跟一个空格。
  • \n
  • +!( n addr \xe2\x80\x94 ) 将单长度数字添加到地址内容中。
  • \n
\n

对于双长度变量有:

\n
    \n
  • 2!( d addr \xe2\x80\x94 ) 或 ( n1 n2 addr \xe2\x80\x94 )\n在地址 addr 处存储一个双长度数字(或一对单长度数字)。
  • \n
  • 2@( addr \xe2\x80\x94 d ) 或 ( addr \xe2\x80\x93 n1 n2 )\n从 addr 中获取一个双长度数字(或一对单长度数字)。
  • \n
\n