需要一些帮助将汇编代码转换为 C。据我了解,这是一个带有条件 (a < c) 的 while 循环,但我不了解 while 循环的主体。
movl $0, -8(%ebp) # variable B is at ebp - 8
movl $0, -4(%ebp) # variable A is at ebp - 4
jmp .L3
.L2
movl 8(%ebp), %eax # parameter C is at ebp + 8
addl $2, %eax
addl %eax, %eax
addl %eax, -8(%ebp)
addl $1, -4(%ebp)
.L3
movl -4(%ebp), %eax
cmpl 8(%ebp), %eax
jl .L2
还要解释为什么你做了你所做的,谢谢。
这是我到目前为止得到的
int a,b = 0;
while (a < c) {
c += 4 + 2*c;
a++;
}
如果我做对了,那么我唯一不明白的就是这条线
addl %eax, -8(%ebp)