在此MIPS代码中从内存加载哪个字节?

请考虑以下代码:

lbu $t0, 0($t1)

sw $t0, 0($t2)

假设寄存器$t1包含地址0x1000 0000和寄存器
$t2包含地址0x1000 0010.注意MIPS架构使用
大端解决.假设地址为0x1000的数据(十六进制)
0000是:0x11223344.寄存器指向的地址存储了什么值
$T2?

我的问题是,lbu指令是否会加载最高有效字节0x11或最低有效字节0x44?我在维基百科上看到一个图像,说从右到左发生8位内存访问,所以我有点困惑,因为地址应指向大端机器中的MSB.

这是图片的链接
http://en.wikipedia.org/wiki/Endianness#mediaviewer/File:Endianessmap.svg

最佳答案 $t2value = 0x0000 0011

内存中的大端格式
(高)
44
33
22
11
(低)

因为MIPS处理器使用Big Endian寻址(即一个字开始存储
使用其最重要的字节或其“大端”),单词0x11223344将是
存储为四个连续字节:地址0x1000 0000处的0x11,0x22,0x33和0x44,
分别为0x1000 0001,0×1000 0002和0x1000 0003.
执行lbu指令会导致加载存储在地址0x1000 0000的字节
并将其存储在寄存器$t0的最低有效8位中.换句话说,执行后
这条指令,寄存器$t0的内容为:0x00000011.这是一样的
执行sw指令后将存储在存储器中的32位字.

点赞