所以我可以设法将用户输入的整数输入到$ v0,然后我使用
la $t0 ($v0)
我将输入的整数存储到$ t0中。我如何尝试从$ t0获取整数的第一个字节。每次我尝试使用
lb $t1 0($t0)
我收到错误:异常7 [错误的数据地址]发生并被忽略。
答案 0 :(得分:0)
lb
指令用于从内存中读取字节 。也就是说,lb $t1, 0($t0)
将尝试从存储在$t0
中的地址的内存中读取一个字节(它也会对该字节进行符号扩展,这可能不是您想要的那样)。
您要做的不是从内存中读取,而是隔离已存储在寄存器中的值的最低有效字节。您可以使用andi
指令执行此操作:
andi $t1, $t0, 0xFF # $t1 = $t0 AND 0xFF
您应该阅读bitwise logic,因为此类操作在汇编语言代码中非常常见。