在MIPS1中,将十六进制值存储为小端还是大端,例如将t1 t2 t3加起来。 是否将其存储为00000001010010110100100000100000 0x014B4820或00000100000100101101001010000000 412D280
答案 0 :(得分:2)
...或00000100000100101101001010000000 412D280
为什么您认为add t1, t2, t3
可以这样存储?
在CPU手册(如MIPS手册)中,指令通常是这样描述的:
+--------+-------+-------+-------+-------+--------+
| 000000 | Reg 2 | Reg 3 | Reg 1 | 00000 | 100000 | ADD
+--------+-------+-------+-------+-------+--------+
在这种绘图中,最高位在左侧,最低位在右侧。
这意味着00000001010010110100100000100000或0x014B4820是正确的。
但是,这与大小端字节无关!
大尾数法用于定义字节,16位值和32位值在内存中的关系:
数字0x12345678是像四个字节0x12、0x34、0x56、0x78还是像四个字节0x78、0x56、0x34、0x12一样存储的?
在两种情况下,指令add t1, t2, t3
的存储方式都与32位数字0x014B4820的存储方式相同。
但是,在小端系统上,此数字的存储方式类似于四个字节0x20、0x48、0x4B,0x01;在big-endian系统上,此数字的存储方式类似于四个字节0x01、0x4B,0x48、0x20。