MIPS程序集中for循环中的双重条件 [英] Double condition in a for loop in MIPS assembly

查看:3
本文介绍了MIPS程序集中for循环中的双重条件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在MIPS汇编中实现这些循环,但不知道如何检查重复条件:

for(i=0;i<dim&&dim>1;++i)


for(k=1;k<dim&&j!=i;++k)

i=$t0
dim=$a0
k=$t1

推荐答案

托管。 以下是其操作方法,以供将来参考:

if ( i == j && i == k ) // if ( <cond1> && <cond2> )
i++ ; // if body
else 
j-- ; // else body $s2 
j = i + k ;

bne $s1, $s2, ELSE # cond1: branch if !( i == j )
bne $s1, $s3, ELSE # cond2: branch if !( i == k )
addi $s1, $s1, 1 # if-body: i++
j NEXT # jump over else
ELSE: addi $s2, $s2, -1 # else-body: j--
NEXT: add $s2, $s1, $s3 # j = i + k

这篇关于MIPS程序集中for循环中的双重条件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆