我试图弄清楚将此 x86 汇编代码转换为 Y86 形式:
给定 c 程序:
int sum(int x) {
if (x == 0 || x ==1) {
return 1;
} else {
return x + sum(x-1);
}
}
生成以下 x86-64 汇编代码:
sum:
cmpl $1, %rdi
ja .L8
movl $1, %eax
ret
.L8:
pushq %rbx
movl %edi, %ebx
leal -1(%rdi), %edi
call sum
addl %ebx, %eax
popq %rbx
ret
如何将其转换为执行相同操作的 Y86-64 汇编代码?
谢谢!