C++:
int add(int x, int y){
return x+y;
}
g++ output (default):
.globl _Z3addii
.type _Z3addii, @function
_Z3addii:
.LFB0:
.cfi_startproc
push ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8
mov ebp, esp
.cfi_def_cfa_register 5
mov edx, DWORD PTR [ebp+8]
mov eax, DWORD PTR [ebp+12]
add eax, edx
pop ebp
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
g++ output (formatting functions removed):
_Z3addii: #leaving this here, even though it won't end up in the binary, since i would type it, too.
push ebp
mov ebp, esp
mov edx, DWORD PTR [ebp+8]
mov eax, DWORD PTR [ebp+12]
add eax, edx
pop ebp
ret
g++ output (formatting removed, optimization to maximum):
_Z3addii:
mov eax, DWORD PTR [esp+8]
add eax, DWORD PTR [esp+4]
ret
my handwritten assembly:
_Z3addii:
mov eax, [esp+4]
add eax, [esp+8]
ret
Comments