从用户输入的整数中获取字节

时间:2015-09-21 04:19:10

标签: assembly mips spim

所以我可以设法将用户输入的整数输入到$ v0,然后我使用

la $t0 ($v0)

我将输入的整数存储到$ t0中。我如何尝试从$ t0获取整数的第一个字节。每次我尝试使用

lb $t1 0($t0)

我收到错误:异常7 [错误的数据地址]发生并被忽略。

1 个答案:

答案 0 :(得分:0)

lb指令用于从内存中读取字节 。也就是说,lb $t1, 0($t0)将尝试从存储在$t0中的地址的内存中读取一个字节(它也会对该字节进行符号扩展,这可能不是您想要的那样)。

您要做的不是从内存中读取,而是隔离已存储在寄存器中的值的最低有效字节。您可以使用andi指令执行此操作:

andi $t1, $t0, 0xFF  # $t1 = $t0 AND 0xFF

您应该阅读bitwise logic,因为此类操作在汇编语言代码中非常常见。