3

谁能解释一下在以下问题的上下文中,高地址和低地址是什么意思?:

根据定义,“高”地址是那些大的无符号数,“低”地址是那些小的无符号数。

beq使用位于物理内存地址 的(相等的分支)指令可以将控制权转移到的最高地址是什么0x320ACB48

4

1 回答 1

2

答案取决于特定的 MIPS 芯片及其 MMU(如果有)。

32 位指令的有效地址为 0 到 4GB-4。但是,如果内存不在整个范围内,或者如果存在内存映射设备,或者如果您启用了虚拟到物理地址转换,您将根本无法在任意位置或有意义的位置执行代码方式。

如果您将控制权转移到未由内存备份的位置,则会执行垃圾。这同样适用于将控制转移到表示某些内存映射设备的寄存器或数据缓冲区的位置。

如果页面转换设置为限制对特定地址区域的访问或不允许在那里执行,则您根本无法在这些区域中执行任何操作。

现在,在将控制权从其 ( ) 所在位置beq转移多远方面也存在限制。只能将控制权转移到其位置 +/- 大约 2 17个字节 (=128KB)。beqbeq

因此,理论上,beq位于 0x320ACB48 的位置可以将控制转移到从 0x320ACB48 + 4 - 32768*4 到 0x320ACB48 + 4 + 32767*4 的任何位置(即 4 的倍数)。

如果beq位于地址 0 附近,则它可能能够将控制权转移到 4GB 附近,除非 CPU 禁止回绕地址。同样,如果beq在 4GB 点附近,它可能能够将控制权转移到地址 0 附近,除非 CPU 再次禁止地址换行。

于 2013-03-06T02:38:13.753 回答