debugging - 如何在嵌入式 Forth 控制器中查找和更改变量?
问题描述
在维修仪表组时,我需要更换一个使用 Forth 构建在摩托罗拉 MC68HC11 上的控制器。虽然我能够转储整个内存,但不知道使用的是哪个 Forth,并且可用的单词似乎非常有限。
如何在嵌入式 Forth 环境中定位和更改内存中的已知值?
解决方案
根据风格或 Forth,您可以使用vlist
或列出所有“单词” words
。单词包括定义的任何变量或常量,并且可以使用以下运算符操作变量:
!
( n addr — ) 将单长数字存储到地址中。@
( addr - n ) 在 addr 处获取该值。?
( addr — ) 打印地址的内容,后跟一个空格。+!
( n addr — ) 向地址的内容添加一个单长数字。
对于双长度变量,有:
2!
( d addr — ) 或 ( n1 n2 addr — ) 在地址 addr 处存储一个双长度数字(或一对单长度数字)。2@
( addr - d ) 或 ( addr - n1 n2 ) 从 addr 获取一个双长度数字(或一对单长度数字)。
推荐阅读
- python - Discord 错误:[信号量超时期限已过]
- python - python请求中的字符串“我想从json中提取步骤”
- linkedin - 如果我已经有 id 字段,如何从 LinkedIn API OAuth 2.0 中提取公共 URL?
- linux - 如何在linux中使用交叉调试器x86_64-w64-mingw32-gdb来调试.exe
- java - 如何将导航栏链接到 Android Studio 中的活动?
- .net - Dotnetcore 中父线程和子线程之间的数据流
- javascript - 给定键如何从geojson响应中访问或获取值
- r - 只有前三个 wordcloud2 出现在 knit R markdown 中
- docker - docker 映像中的文件始终归 root 所有
- javascript - ImagerJs 自动加载图像