I wrote a small piece of code and compiled it with gcc -S
to see the ASM output:
...
movl %esp, %ebp
.cfi_def_cfa_register 5
subl $16, %esp
movl $0, -4(%ebp)
...
Now I expect that on Linux a call to objdump -D
(disassemble) lead to an equivalent structure but it looks like:
80483b5: 89 e5 mov %esp,%ebp
80483b7: 83 ec 10 sub $0x10,%esp
80483ba: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%ebp)
Why do I get mov
/ sub
instead of movl
/subl
?