Assembly 将用户输入值从循环分配到MIPS中的不同寄存器
问题是这样的:1。打印以下消息:“输入整数” 2.阅读输入3。这样做5次4次。检查有效输入。对无效输入5再次重复该过程。计算P*Q-(R+S*T)的值。6.打印P*Q-(R+S*T)=X 对于如何为每个新的循环迭代将用户输入从循环分配到不同的寄存器,我感到困惑 这是我的代码:Assembly 将用户输入值从循环分配到MIPS中的不同寄存器,assembly,mips,cpu-registers,Assembly,Mips,Cpu Registers,问题是这样的:1。打印以下消息:“输入整数” 2.阅读输入3。这样做5次4次。检查有效输入。对无效输入5再次重复该过程。计算P*Q-(R+S*T)的值。6.打印P*Q-(R+S*T)=X 对于如何为每个新的循环迭代将用户输入从循环分配到不同的寄存器,我感到困惑 这是我的代码: .data msg1: .asciiz "Please enter an integer:" .align 2 array: .space 100 .text main: la $t3 array lo
.data
msg1: .asciiz "Please enter an integer:"
.align 2
array: .space 100
.text
main:
la $t3 array
loop:
la $a0, msg1 #output message
li $v0, 4
syscall
li $v0, 5 #read in user input
syscall
move $t0, $v0
beq $t1,5, endloop #get user input up to 5 times
b loop #loop until it reaches 5
endloop:
jr $ra
“对于如何为每个新的循环迭代将用户输入从循环分配到不同的寄存器,我感到困惑。”自我修改代码!不,但说真的,为什么不把这些值存储在内存中呢?好吧,你是怎么做到的?还需要比较这些值。我在这里感到困惑。您已经为
$t3
分配了数组
的基址(除了那一行缺少一个逗号)。因此,在循环内部,您只需执行sw$v0,($t3)
,然后addiu$t3,$t3,4
,使$t3
指向数组中的下一个元素。明白了。谢谢如何访问存储在数组中的值?使用lw
指令。