Assembly 当编码为十六进制时,MIPS小端或大端

Assembly 当编码为十六进制时,MIPS小端或大端,assembly,compilation,mips,endianness,Assembly,Compilation,Mips,Endianness,在MIPS1中,十六进制值存储为小或大端,例如add t1 t2 t3。 是否将其存储为0000000 1010010110010000100000 0x014B4820或00000 10000001001011001010000000 412D280 。。。或0000010000001011001010000000412D280 为什么您认为addt1、t2、t3可以这样存储 在CPU手册(如MIPS手册)中,说明通常如下所述: +--------+-------+-------+------

在MIPS1中,十六进制值存储为小或大端,例如add t1 t2 t3。 是否将其存储为0000000 1010010110010000100000 0x014B4820或00000 10000001001011001010000000 412D280

。。。或0000010000001011001010000000412D280

为什么您认为
addt1、t2、t3
可以这样存储

在CPU手册(如MIPS手册)中,说明通常如下所述:

+--------+-------+-------+-------+-------+--------+
| 000000 | Reg 2 | Reg 3 | Reg 1 | 00000 | 100000 |  ADD
+--------+-------+-------+-------+-------+--------+
在这种绘图中,最高位在左边,最低位在右边

这意味着0000000 1010010110010000100000或0x014B4820是正确的

然而,这与大和小endian无关

Big和little endian用于定义字节、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

。。。或0000010000001011001010000000412D280

为什么您认为
addt1、t2、t3
可以这样存储

在CPU手册(如MIPS手册)中,说明通常如下所述:

+--------+-------+-------+-------+-------+--------+
| 000000 | Reg 2 | Reg 3 | Reg 1 | 00000 | 100000 |  ADD
+--------+-------+-------+-------+-------+--------+
在这种绘图中,最高位在左边,最低位在右边

这意味着0000000 1010010110010000100000或0x014B4820是正确的

然而,这与大和小endian无关

Big和little endian用于定义字节、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。

取决于工具链/工具。取决于工具链/工具。