C Code:
void charTypes(char a)
{
return ;
}
void intType(int a)
{
return ;
}
Assembly:
0000000000000000 <charTypes>:
0: f3 0f 1e fa endbr64
4: 55 push rbp
5: 48 89 e5 mov rbp,rsp
8: 89 f8 mov eax,edi
a: 88 45 fc mov BYTE PTR [rbp-0x4],al
d: 90 nop
e: 5d pop rbp
f: c3 ret
0000000000000010 <intType>:
10: f3 0f 1e fa endbr64
14: 55 push rbp
15: 48 89 e5 mov rbp,rsp
18: 89 7d fc mov DWORD PTR [rbp-0x4],edi
1b: 90 nop
1c: 5d pop rbp
1d: c3 ret
In case of char parameter, Why do we need to assign edi to eax?
What prevents this?
DWORD PTR [rbp-0x4],dil