在Y86中嵌套循环

时间:2018-12-06 16:11:45

标签: for-loop assembly nested-loops y86

所以我试图弄清楚在Y86中写一个嵌套的for循环。 (我现在Y86仅用于教学)。我已经研究了如何执行常规的for循环,但是不确定如何执行嵌套循环,尤其是当您调用两个函数时,一个接一个地调用。有人可以指出我正确的方向。这只是我想写的一个例子。

for (x = 5; x<=10; ++x){
    for (y = 1; y <=5; y+=2){
         //call some function afunction(x, y)
         //call a different function  a2function(x,y)
    }
}


main:   
irmovl $5,%esi  #esi = x    
irmovl $1,%ecx   #ecx = y   
irmovl Stack,%esp   
irmovl Array,%ebx   


loop:
pushl %ebx
pushl %esi
pushl %ecx
call rec  #funcitons
call bit  #functions
popl %ecx
popl %esi
popl %ebx

rmmovl %esi, (%ebx)
rmmovl %ecx, (%ebx)
irmovl $4, %edx
addl %edx, %ebx
irmovl $0xffffffff,%edx
rmmovl %edx,(%ebx)
irmovl $4,%edx
addl %edx,%ebx
irmovl $1,%edx
addl %edx,%ecx
irmovl $8,%edx
subl %ecx,%edx
jne innerloop
halt

0 个答案:

没有答案