2
我在MIPS MARS simulator上运行以下代码片段。那个模拟器是小端的。所以,结果如下:MIPS程序集:大,小端混淆
lui $t0,0x1DE # $t0 = 0x01DE0000
ori $t0,$t0,0xCADE # $t0 = 0x01DECADE
lui $t1,0x1001 # $t1 = 0x10010000
sw $t0,200($t1) # $t1 + 200 bytes = 0x01DECADE
lw $t2,200($t1) # $t2 = 0x01DECADE
因此,对小端MIPS模拟器的$ T2在程序结束时的值是0x01DECADE。如果这个模拟器是大端的,那么值是多少?它会是0xDECADE01还是仍然是0x01DECADE?
谢谢克里斯。这就说得通了。如果有人能够在大型机器上运行SPIM来验证,那将会很好。 – Barney 2010-04-12 19:49:00
@Barney:无需验证。这是标准的字节顺序。商店的行为取决于字节顺序,负载完全与负载相反。一个接一个地执行它们,具有相同的数据大小,不会改变寄存器值。 – Bahbar 2010-04-12 21:04:33
@Bahbar:谢谢。 “负载完全与负载相反。”你的意思是“装载与商店完全相反”吗? – Barney 2010-04-12 23:05:22