繁体   English   中英

如何检查MIPS汇编中的寄存器是否为空?

[英]How to check if register is empty in MIPS assembly?

因此,我正在编写树遍历,将空的$ a0寄存器与$ zero进行比较后,代码将中断。

我不知道为什么,但是我想过,由于null只是0,将其与零进行比较不会给我带来错误

“尝试使用不存在的内存”顺便说一句,我正在递归地遍历。

这是我的代码片段

        addi    $sp, $sp, -16
        sw      $ra, 12($sp)
        sw      $s0, 8($sp)     # $a0
        sw      $s1, 4($sp)     # $a1
        sw      $s2, 0($sp)     # $a2

pre:
        beq     $a0, $zero, done        # If null done
        move    $s0, $a0                # Preserve $a0
        jalr    $a1                     # Print
        lw      $a0, 4($s0)             # Left Node
        jal     traverse_tree           # Recursive call
        lw      $a0, 8($s0)             # Right Node
        jal     pre                     # Recursive call
        j       done                    # Done

done:
        lw      $ra, 12($sp)
        lw      $s0, 8($sp)
        lw      $s1, 4($sp)
        lw      $s2, 0($sp)
        addi    $sp, $sp, 16
        jr      $ra

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM