4Manuals

  • PDF Cloud HOME

任何人都可以帮助它吗?它有此错误:错误:错误的程序计数器值:0×00000000 Go:执行由于错误而终止 Download

    如何在mips的一个字符串中读取我的整个.txt文件? 适用于qemu mips的U-boot-文档错误和常见问题

.data     提示2:.asciiz“请一一输入元素:”     提示3:.asciiz“数组的排序如下:”     提示4:.asciiz“-程序运行完毕-”     str1:.asciiz“,”     newLine:.asciiz“ \ n” .text

addi $sp,$sp,-24
sw $ra,0($sp)
sw $s4,4($sp)
sw $a2,8($sp)
sw $s3,12($sp)
sw $s0,16($sp)
sw $s2,20($sp)

主要:

# read n from console
li $v0 5
syscall

move $a2 $v0    #tagghiir t0 be a2 (n)

#分配动态内存     sll $ a0 $ v0 2#sll执行$ a0 = $ v0 x 2 ^ 2     li $ v0 9#9是工作所在的服务(sbrk)的系统代码
    syscall#分配动态内存

move $a1 $v0 #t2 saved address of heap    #taghiir t2 to a1

#保存用于打印

li $v0, 4       # $system call code for print_str
la $a0, prompt2     # $address of string to print
syscall  

move $t1 $zero
move $t4,$a1

inputLoop:
    bge $t1 $a2 exit1

    # read in and store int
    li $v0 5
    syscall
    sw $v0 0($t4)

    addi $t1 $t1 1
    addi $t4 $t4 4

    li $v0, 4       # $system call code for print_str
    la $a0, newLine     # $address of string to print
    syscall

    j inputLoop

exit1:

jal sort
li $v0, 4       # $system call code for print_str
la $a0, prompt3     # $address of string to print
syscall

move $t3,$zero
move $t4 ,$a1
outputLoop:
    bge $t3 $a2 exit2

    #inaro azoon yki copy krdm
    lw $t6, 0($t4)

    li $v0, 1
    move $a0, $t6
    syscall
    # read in and store int
    addi $t3 $t3 1
    addi $t4 $t4 4
    blt $t4,$a1 ,comma
   # bne $t5,$zero,comma
    comma:
        li $v0, 4       # $system call code for print_str
        la $a0, str1     # $address of string to print
        syscall
    j outputLoop

exit2:

li $v0, 10
syscall    #for finishing the program

交换:

move  $a3,$a3
move  $a1,$s4

#move $ t5,$ zero#它是C语言中的temp变量     move $ t4,$ a1#t4现在是堆的基地址     sll $ t6,$ a3,2#s1是给定的k     添加$ t6,$ t4,$ t6#堆地址+ k * 4     lw $ t3,0($ t6)#kone堆     lw $ t5,4($ t6)#kone k + 1堆     sw $ t5,0($ t6)     sw $ t3,4($ t6)     jr $ ra

排序:

#移动$ s0,$ zero#i = t0     移动$ s4,$ a1#堆的基地址     addi $ t5,$ a2,-1#meghdare i

move $s2,$zero #its the flag

while:
    addi $s2,$s2,1
    move $a3,$zero #j   #taghiir s1 be a3 (haman j va k
    forLoop:

        bge $a3,$t5,outOfLoop
        sll $t6,$a3,2    #j  
        add $t1,$t6,$a1 #v+j
        lw $t7,0($t1) #t7=heap[j]
        lw $t8,4($t1) #t8=heap[j+1]
        blt $t7,$t8,outOfIf
        move $s4,$a1
        move $s3,$a3

        jal swap
        addi $s2,$s2,-1
    outOfIf:
    addi $a3,$a3,1   #j++
    outOfLoop:
    addi $t5,$t5-1 #i--
    bgt $s2,$zero,exit_outter   #if a>=b break
    ble $t5,$zero,exit_outter   #if b=< c break
    j while

 exit_outter:
 lw $ra,0($sp)
 lw $s4,4($sp)
 lw $a2,8($sp)
 lw $s3,12($sp)
 lw $s0,16($sp)
 lw $s2,20($sp)
 addi $sp,$sp,24
 jr $ra

我真的不知道哪里出了问题,请帮助我...

0 个答案:

没有答案



Similar searches
    没有这样的主机:Kubernetes / Docker无法从私有k8注册表中提取 如何在x86处理器上实现“锁定添加” 如何使用Aeson的解析器从非常简单的Object中获得键值 带有LARAVEL API的JAVA SE 仅使用CSS创建形状