I know that these are the hex instructions, but aren't they usually 4 Bytes long?
f5: e8 00 00 00 00 callq 0 <main+0xfa>
this is one example of such a line in the output I get when I run objdump --disassemble file.o
I know that these are the hex instructions, but aren't they usually 4 Bytes long?
f5: e8 00 00 00 00 callq 0 <main+0xfa>
this is one example of such a line in the output I get when I run objdump --disassemble file.o
You're disassembling a program for a CISC processor (probably x86-64). Instructions are any size and don't have an alignment demand.
That instruction clearly pushes the current address onto the stack; although since this is a .o
file, it could also be an external call that has to get the real address patched in by the linker.