我试图制作一个数组并使用0的哨兵值对其进行排序,但是它没有工作它会给我一个错误

时间:2016-04-21 20:10:45

标签: assembly mips

我想提示用户输入然后我想获取该输入并将其放入数组中。然后我想打印出阵列。我知道我可以将它们打印出来而不将它们放在一个数组中,但这只是为了我的练习。

 .data
    array:  .space 40
    prompt: .asciiz "Enter an integer (0 to quit) :"
    text:   .asciiz "After sorting, the list of integers is:"
       .text
       .globl main
    main:

        la $a1, array
        read_numbers:
        li $v0, 4
        la $a0, prompt
        syscall

        li $v0, 5
        syscall

        sw $v0, 0($a1)
        addiu $a1, $a1, 4

        beqz $v0, sort
        j read_numbers

    sort:
        la $a1, $array

        li $v0, 4
        la $a0, text
        syscall

    loop:

        lw $t0, 0($a1)
        addiu $a1, $a1, 4

        beqz $t0, done

        li $v0, 1
        move $a0, $t0
        syscall

        j loop

    done:

我遇到的错误是:指令引用0x00400050处的未定义符号[0x00400050] 0x3c010000 lui $ 1,0 [$ array]; 24:la $ a1,$ array

0 个答案:

没有答案