【发布时间】:2021-04-04 15:39:27
【问题描述】:
您好,我是汇编语言(MIPS 语言)领域的新手。我正在尝试创建一个数组并用十乘十的值填充它,直到某个数字,然后显示它。由于某种原因,当我编译程序时,我认为它在 sw 执行后停止了,但我不知道为什么程序在此执行后没有运行并显示数组的内容。
这是我的代码:
.data
arr: .space 3000
.text
main:
la $t0, arr #to => Pointer to arr1
li $t3, 50 #t3 => Nbr of type run through the loop ==> Max
li $t6, 10 #t6 = Init value of 10
loop:
slt $t4, $t5, $t3 #if t5 >= Max t5 = 0
beq $t4, $zero, display
sw $t6, 0($t0)
addi $t0,$t0, 4 # Point to the next adress
addi $t6, $t6,10 #Increment t6 by 10
addi $t5, $t5, 1
j loop
display:
li $t5, 0 # Reset t5 to zero
slt $t4, $t5, $t3
beq $t4, $zero, end
lw $t6, 0($t0)
addi $t0, $t0, 4
li $v0, 1
move $a0, $t6
syscall
addi $t5, $t5, 1
end:
li $v0, 10
syscall
【问题讨论】:
-
你试过单步吗?你看到了什么?
-
是的,我看到我的程序在商店执行后没有运行
-
好的,你能说得更详细一点吗?它是否因错误而停止?有没有。环形? ...