MIPS 是字节可寻址的

标签 mips cpu-architecture mips32

我一直在观看以下 URL 上解释 MIPS ISA 的讲座。

http://www.youtube.com/watch?v=DVFwXvxyC38&list=PLD8AF625E53B0691F&index=4

据我目前的了解:

对于32位MIP,主存有一个32位地址输入总线,内存中的每个插槽保存8位,因此每个地址可以引用8位内存(这就是为什么它是字节可寻址的);由于寄存器大小是 32 位,因此主内存中的“字”从每 4 个字节开始(因此每个字是内存中的 4 个连续槽 - 4 * 8 = 32)。

但是,讲师在讲座中(时间 3:40)说“字节可寻址意味着对于 MIPS,每个字大小是四个字节”;他不应该说字节可寻址意味着每个地址可以引用 1 个字节吗?

有人可以验证一下吗?

谢谢。

最佳答案

是的,完全正确。字节可寻址是逐字节进行的(其中 1 字节为 8 位)。

每个字的宽度为 4 个字节,因此两个相邻字之间的地址差为 4。您可以将 lbu 与属于单词一部分的 4 个地址中的任何一个一起使用。

在可字寻址的机器上(与 MIPS 不同,如一些现代 DSP),相邻的字具有相邻的地址,并且无法对字中的各个字节进行寻址。

关于MIPS 是字节可寻址的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18433027/

相关文章:

c++ - 需要用 C 或 C++ 编写 MIPS 汇编程序,寻找一些设计建议

c - 这个循环在一个周期内执行了多少条指令?

assembly - 有什么方法可以编写 Intel CPU 直接核对核通信代码吗?

linux - 增加 block 大小时内部碎片会增加吗?

multithreading - x86 超线程对缓存未命中的说明

verilog - 实现处理器(mips单周期)

assembly - 如何使用 MIPS 执行 64 位加法和减法?

c - 数据存储器中缺少浮点变量值

c - 这个 MIPS 程序需要这么长时间吗? (近似 pi 的程序)

c - MIPS32字数组