0
我想了解MIPS的应用程序,但我有点困惑于以下说明:需要在MIPS内存澄清解决LW
la $k1, off_9FC005A8
lw $k1, (off_9FC005D4 - 0x9FC005A8)($k1)
jr $k1
在我的理解,这将等同于以下伪C代码:
$k1 = *off_9FC005A8;
$k1 = *($k1 + (*off_9FC005D4 - 0x9FC005A8));
因此,了解以下内容:
off_9FC005A8: .word 0x9FC01508
off_9FC005D4: .word 0x9FC011B4
你会得到:
$k1 = 0x9FC01508;
$k1 = *($k1 + (0x9FC011B4 - 0x9FC005A8));
离开:$ k1 = 0x9FC02114。然而,这个抵消是我已经查看并确认是正确的一段代码的一半。那么,我对这些指令和内存寻址是否有缺陷的理解?
好吧,但是,这还没有给我带$ 0x包含0x9FC02114?这似乎不是一个有效的地方跳转到。 – PeterBelm 2010-11-24 10:45:48