gpt4 book ai didi

memory - 为什么内存地址在 MIPS 中增加 4?

转载 作者:IT王子 更新时间:2023-10-28 23:35:44 26 4
gpt4 key购买 nike

如果某些内容存储在 0x1001 0000,则下一个内容存储在 0x1001 0004。如果我是正确的,则 32 位架构中的内存块每个都是 32 位。那么 0x1001 0002 会指向 32 位的后半部分吗?

最佳答案

首先,MIPS 架构中的内存地址不会增加 4。MIPS 使用字节寻址,因此您可以从内存中寻址任何字节(参见例如 lblbu 读取单个字节,lhlhu 读取半字)。

事实是,如果您读取 32 位长度的字(4 个字节,lw),那么两个连续的字将彼此相距 4 个字节。在这种情况下,您将在第一个字的地址上加 4 以获得下一个字的地址。

除此之外,如果您阅读单词,您必须将它们以 4 的倍数对齐,否则您将获得对齐异常。

在您的示例中,如果第一个单词存储在 0x10010000 中,则下一个单词将存储在 0x10010004 中,当然前半部分/后半部分将存储在 0x1001000 和 0x1001002 中(排序将取决于 endianness 的建筑)。

关于memory - 为什么内存地址在 MIPS 中增加 4?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10576963/

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