【发布时间】:2017-04-06 20:44:13
【问题描述】:
我想获取并解码地址 X 处的指令。之后,我想将地址增加 4,然后执行解码后的指令。寄存器是 32 位大端。我不是在寻求解决方案,更多的是关于如何在 C 中执行此操作的指针或提示,或者是否有人知道一些好的指南可以遵循。
【问题讨论】:
-
“地址”将使用指向
char的指针来实现。您模拟的“指令”将存在于一个字符数组中。 -
好的,让我们说 reg 63 作为程序计数器工作,我如何调用它并将其用作其他指令的指针
-
相信你是在找这个功能跳转到地址man7.org/linux/man-pages/man3/fseek.3.html和这个去读linux.die.net/man/3/fread(读后地址自动更新)。
-
首先,在纸上设计这个,有图片和基本流程。然后将其翻译成您熟悉的任何语言,或伪代码,或只是您发明的某种类似计算机的语言。通过逻辑检查确保它有效;这已经足够了。只有这样你才能把它翻译成“C”。这样的事情可以用语言的一个非常小的子集来实现——也许你的问题出在最初的几个步骤中。如果您仍然无法将某些结构翻译成“C”,请返回您的伪代码,有人会帮助您。
-
欢迎来到 Stack Overflow!请edit您的问题显示the code you have so far。您应该至少包含您遇到问题的代码的大纲(但最好是minimal reproducible example),然后我们可以尝试帮助解决具体问题。您还应该阅读How to Ask。
标签: c cpu-registers instructions