I converted the following simple C program into assembly
#include <stdio.h>
int main()
{
char buff[40];
buff[39] = 42;
return 0x100d;
}
The output was as follows(64-bit):
push rbp
mov rbp.rsp
mov BYTE PTR -9[rbp], 42
mov eax, 4109
pop rbp
ret
I cannot understand the meaning of the third line of assembly. I also noticed that space isn't allocated for the buffer in the stack frame. Could somebody please help explain it to me?
Thanks in advance