Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 将用户输入值从循环分配到MIPS中的不同寄存器_Assembly_Mips_Cpu Registers - Fatal编程技术网

Assembly 将用户输入值从循环分配到MIPS中的不同寄存器

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

问题是这样的: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
    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
指令。