写入寄存器的下一个字节

时间:2016-11-21 22:11:25

标签: mips cpu-registers

我知道内存中的寄存器是32位。我也明白lb会将内存中的内容加载到寄存器的低8位,如果我做了

lb $t1, $a3
lb $t1, 4($a3)

第二个lb命令将覆盖第一个中加载的内容。但是,有没有办法写入寄存器的第二个字节(从内存中的不同部分加载,所以不是彼此相邻的两个字节)并保留第一个字节的信息?

1 个答案:

答案 0 :(得分:0)

我假设您要使用的是lbu(加载字节无符号)而不是lb因为您不希望寄存器符号扩展(例如复制字节{寄存器中的{1}}将导致AA,而不是000000AA)。

如果要写入寄存器的第二个字节,可以先使用FFFFFFAA将字节从存储器加载到另一个寄存器,然后向左移8位,并{{ 1}}它到原始寄存器。

例如:

lbu