Assembly 带偏移量的MIPS加载字节(lb)
我正在尝试从保存在数据中的单词加载一个字节:Assembly 带偏移量的MIPS加载字节(lb),assembly,mips,Assembly,Mips,我正在尝试从保存在数据中的单词加载一个字节: .data number: .word w1 正文部分: stringlength: li $t2, 10 li $t1, -1 la $a0, number loop: addiu $t1, $t1, 1 lb $t0, $t1($a0) bne $t0, $t2, loop move $v0, $t1 jr $ra *代码还没有完成 我的问题是 lb $t0
.data
number:
.word w1
正文部分:
stringlength:
li $t2, 10
li $t1, -1
la $a0, number
loop:
addiu $t1, $t1, 1
lb $t0, $t1($a0)
bne $t0, $t2, loop
move $v0, $t1
jr $ra
*代码还没有完成
我的问题是
lb $t0, $t1($a0)
我试图实现一个动态偏移量,它将增加1,检查字符串中的每个字节,检查它是否等于10(dec)
QtSPIM引发有关此行的异常语法错误
正确的方法是什么?没有这种寻址模式,您只需通过添加偏移量来计算地址,例如:
add $t0, $t1, $a0
lb $t0, ($t0)
它似乎确实有效,但具体如何?它只是加载存储在$a0中的地址+存储在$t1中的值吗?您想访问地址
$a0+$t1
处的内存。这段代码首先计算$a0+$t1
,然后从内存中获取数据<代码>$t0被用作临时代码,因为它无论如何都会被覆盖。