gpt4 book ai didi

c - C中简单的基于堆栈的机器

转载 作者:行者123 更新时间:2023-12-04 02:10:10 28 4
gpt4 key购买 nike

我必须创建一个简单的基于堆栈的机器。指令集由5条指令组成;推、弹出、添加、多、结束。我接受一个包含指令部分 (.text) 和数据部分 (.data) 的源代码文件,然后我必须通过模拟使用 32 位地址的内存系统将它们存储在内存中。

我必须存储在内存中的示例源代码文件可能是

    .text
main:
push X
push Y
add //remove top two words in stack and add them then put result on top of stack
pop (some memory address) // stores result in the address
end

.data
X: 3 // allocate memory store the number 3
Y: 5

关于如何做内存系统有什么建议吗?我可能应该将数据存储在一个部分(也许是一个数组?),然后将指令存储在另一个部分,但我不能只使用数组索引,因为我需要在我的代码中使用 32 位地址。

编辑:一旦我将数字 3 和 5 分配给内存中的空间(在我的数据数组中),还有没有办法用实际地址替换 X 和 Y? . . .有点像两遍汇编器可能会做的。

最佳答案

数组有什么问题?如果您知道自己需要的尺寸,它们应该可以使用。
机器代码中的地址实际上是数组中的索引。

对数组使用 32 位索引不是问题。当然,并不是所有的索引都是有效的——只有那些从 0 到数组大小的索引。但是是否需要模拟4GB内存,或者可以设置内存大小的限制吗?

关于c - C中简单的基于堆栈的机器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18953153/

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