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

Assembly 从用户输入的整数中获取字节,assembly,mips,spim,Assembly,Mips,Spim,因此,我可以设法将用户输入的整数输入到$v0中,然后使用 la $t0 ($v0) 我将输入的整数存储到$t0中。如何从$t0获取整数的第一个字节。每次我尝试使用 lb $t1 0($t0) 我收到一个错误:发生并忽略了异常7[错误的数据地址] lb指令用于从内存中读取字节。也就是说,lb$t1,0($t0)将尝试从存储在$t0中的地址处的内存中读取一个字节(它还将对该字节进行符号扩展,这可能不是您想要的) 您要做的不是从内存中读取,而是隔离已存储在寄存器中的值的最低有效字节。您可以使用an

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

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

lb $t1 0($t0)

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

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

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

andi $t1, $t0, 0xFF  # $t1 = $t0 AND 0xFF
您应该仔细阅读,因为这种操作在汇编语言代码中非常常见

我假设
la$t0($v0)
是一种类型,您的意思是
lw$t0,($v0)