寻址方式查询

Query regarding addressing modes

索引寻址方式和位移方式的主要区别是什么?两者似乎相同,因为它们都有偏移量和基址寄存器,有效地址是通过将寄存器的内容与偏移量相加来计算的。

在 MIPS 中,地址总是有两部分,一部分是常量(16 位符号扩展),另一部分是来自寄存器的值。

索引模式和位移模式之间的区别在于哪个部分用于什么:在索引模式中,常量部分指的是某物的基数,而寄存器是一个 offset/index 到某物,而对于位移模式,寄存器指向某物的基础,常量是该物的偏移量。

所以这个:

Both seem to be same as they both have offset and a base register and Effective address is calculated by adding contents of the register with the offset.

是真的。它们是一样的,也和indirect和absolute模式一样,只是句法结构:地址计算仍然有两部分,但是寄存器可以是$0或者常量可以是0,汇编器允许你省略那部分(一些原始汇编程序实际上不支持)。这只是不同地使用最终地址的两个部分。实际上没有任何限制(除了常量有点窄)所以它可以更狂野,两个部分都没有 "nice" 单独的意义,但仍然总和到你想要的地址。