gpt4 book ai didi

forth - 如何在 Forth 中转储一个词?

转载 作者:行者123 更新时间:2023-12-05 00:46:24 25 4
gpt4 key购买 nike

目的是在字典中创建一个 Forth 单词,然后打印出该单词的内存内容。第一步很容易。 : main word 是按照教程中的描述创建的。创建单词后,字典指针移动到下一个位置,所以我必须从中减去一些项目,现在可以转储出创建单词的内存区域:

\ create a dummy routine
: main 1 dup + . ;

\ put dictionary pointer to the stack
\ and subtract 50 indizies
dp 50 -

\ print out 20 cells to the screen from dp-50 until dp+50
\ but where is my newly created routine ": main"?
100 dump

bye
------
gforth "a.fs"

7F81DF443FC6: 00 00 20 17 12 AF 60 55 - 00 00 04 00 00 00 00 00 .. ...`U........
7F81DF443FD6: 00 00 A0 58 14 AF 60 55 - 00 00 10 00 00 00 00 00 ...X..`U........
7F81DF443FE6: 00 00 FF FF FF FF FF FF - FF FF 00 00 00 00 00 00 ................
7F81DF443FF6: 00 00 50 82 49 DF 81 7F - 00 00 F8 3F 44 DF 81 7F ..P.I......?D...
7F81DF444006: 00 00 08 82 49 DF 81 7F - 00 00 F0 81 49 DF 81 7F ....I.......I...
7F81DF444016: 00 00 32 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ..2.............
7F81DF444026: 00 00 00 00

不幸的是,dump 命令显示的内存区域没有以 : main 开头的部分。以及 1 dup ... 里面的语句也不见了。那么新创建的单词究竟在哪里呢?如何查看内存中的原始字节?

最佳答案

1)有一个预定义的词see哪个应该做你想做的,查看各自的来源应该会给你一个提示。

2)您的方法仅适用于某种内存模型,即。 e.将名称和代码放在同一个区域中,这远不能保证。 (我不确定它是否适用于 Gforth )。来自 dup , 1 , +等,您将一无所获,因为它们被相应的地址或调用指令所取代。

关于forth - 如何在 Forth 中转储一个词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54179966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com