f(n-1) + f(n-2)的编译器处理

https://gcc.godbolt.org
 
int addx(int a){
return a + 2;
}

int gooo(){
return addx(3) + addx(4) + addx(5);
}

int gooox(){
int x = addx(3);
int y = addx(4);
return x + y;
}
 
 
addx(int):
push  rbp
mov  rbp, rsp
mov  DWORD PTR [rbp-4], edi
mov  eax, DWORD PTR [rbp-4]
add  eax, 2
pop  rbp
ret
gooo():
push  rbp
mov  rbp, rsp
push  rbx
mov  edi, 3
call  addx(int)
mov  ebx, eax
mov  edi, 4
call  addx(int)
add  ebx, eax
mov  edi, 5
call  addx(int)
add  eax, ebx
pop  rbx
pop  rbp
ret
gooox():
push  rbp
mov  rbp, rsp
sub  rsp, 16
mov  edi, 3
call  addx(int)
mov  DWORD PTR [rbp-4], eax
mov  edi, 4
call  addx(int)
mov  DWORD PTR [rbp-8], eax
mov  edx, DWORD PTR [rbp-4]
mov  eax, DWORD PTR [rbp-8]
add  eax, edx
leave
ret

猜你喜欢

转载自www.cnblogs.com/feng9exe/p/11907314.html
今日推荐