mips汇编代码移位位编程

mips assembly code to shift the bit programming

读入你的学号并存入寄存器,读入数字“10010000x”作为初始值 内存地址。然后把你的学号往右移一位,保存到 从前一个内存地址递增 4 个字节的内存地址,直到你的 学号小于1,则保存你最终的不小于1的学号 比1,并保存最后一个内存地址,以及迭代到3个不同内存的次数 地址。上交包含 MIPS 程序集的 MARS 图形打印输出的硬拷贝 显示您的学生 ID、内存地址和所有寄存器值的代码,以及答案 硬拷贝纸上的以下三个问题:
(1) 你要右移多少次才能让你的学号小于1? (2) 你最后一个不小于 1 的二进制学号是多少? (3)最后一个不小于1个学号的内存地址是多少?

li $t0, 0x10010000
li $t1, student id
li $s3, 1
li $s5, 1
add $s0, $t0, $zero
add $s1, $t1, $zero
loop1 : sw $s1, 0($s0)
srl $s2, $s1, 1
slt $s4, $s2, $s3
beq $s4, $s3, L2
addi $s0, $s0, 4
add $s1, $s2, $zero
add $s5,$s5,$s3
j  loop1
L2 : addi $s0, $s0, 4
sw $s5, 4($s0)
sw $s2, 8($s0)
addi $t3, $s0, -4
sw $t3, 12($s0)