Assembly MIPS中带两个条件的While循环

Assembly MIPS中带两个条件的While循环,assembly,while-loop,mips,Assembly,While Loop,Mips,这些天我在学习MIPs汇编语言,我被要求在作业中用MIPs实现以下C代码 int i = 0; int j = 10; while(i < 5 && j >= 5) { int sum = i+j; printf(“%d ”, sum); i++; j--; } inti=0; int j=10; 而(i=5) { 整数和=i+j; printf(“%d”,总和); i++; j--; } 我无法理解如何在MIPS中使用两个条件实现

这些天我在学习MIPs汇编语言,我被要求在作业中用MIPs实现以下C代码

int i = 0;
int j = 10;

while(i < 5 && j >= 5)
 {
   int sum = i+j;
   printf(“%d ”, sum);

   i++;
   j--;
 }
inti=0;
int j=10;
而(i<5&&j>=5)
{
整数和=i+j;
printf(“%d”,总和);
i++;
j--;
}

我无法理解如何在MIPS中使用两个条件实现while循环?

我为您编写了以下代码:

 .data   
     space: .asciiz " "
 .text
 .globl main
 .ent main
 main:
     
     li $t0, 0   #store i's value in $t0
     li $t1, 10  #store j's value in $t1
     li $t6, 5
     
     j while
     
 .end main

 #while loop
 while:
     sge $t2, $t0, $t6       #$t2=1(true) if i>=5
     slt $t3, $t1, $t6      #$t3=1(true) if j<5
     or $t4, $t3, $t2
     beq $t4, 1, exit    #exit, if $t4=1(true)
     add $t5, $t1, $t0   #sum of i and j
     
     #printing sum
     li $v0, 1
     move $a0, $t5
     syscall
     
     li $v0, 4
     la $a0, space
     syscall
     
     
     add $t0, $t0, 1     #incrementing i
     sub, $t1, $t1, 1    #decrementing j
     j while
     
 .end while
 
 exit:
     li $v0, 10
     syscall
.data
空间:.asciiz“”
.文本
格洛博梅因酒店
新界北总区
主要内容:
li$t0,0#将i的值存储在$t0中
li$t1,10#将j的值存储在$t1中
李$t6,5
j同时
.尾干管
#while循环
而:
sge$t2、$t0、$t6#$t2=1(如果i>=5,则为真)

slt$t3,$t1,$t6#$t3=1(真)如果你没有实现一个函数,只需一个大的
main
。哦,是的,谢谢你让我知道。更正了。