将while循环从C转换为MIPS

时间:2018-01-15 08:02:02

标签: c mips

我刚开始学习MIPS的基础知识。在阅读有关MIPS的书时,我想到了下一个问题:

我有以下代码:

while (x) {...}

括号之间的内容并不重要(只需在代码的正确位置放点)。知道x包含一个布尔语句。设reg $ t0包含x。我试图将此C循环转换为MIPS代码。怎么做?

1 个答案:

答案 0 :(得分:0)

您可以使用分支和标签来完成此操作。例如,声明

while (n>0) { .... }

可以使用分支和标签转换为MIPS:

    .data

    n: .word 100

    .text

    main:

    la $t0, n   
    lw $t1, 0($t0)
    li $s0, 0

    Loop:
       bgt $t1, $zero, EXIT
       add $t1, $s0, $t1
       addi $t1, $t1, -1

       j Loop

   EXIT:
相关问题