I cannot believe how hard this seems to be. I am working from SPARC Solaris 8. and we have some kind of GNU-gcc (3.4.2) and 'as' assembler (Sun WorkShop 6 2003/12/18 Compiler Common 6.0).
Anyways, I've tried a few ways to output a pure binary file. such as
gcc -c yadda.s
or invoking solely the assembler
as yadda.s
I have also investigated the assembler man page, but I did not find much breaking news. :( AS Man page: http://pastebin.com/0FSNxhq1
So, I still get some Bloat in my resulting object file. I don't want this leading 50 bytes of ELF related * or whatever the assembler thought would help my initialization or whatever it's thinking.
What I am looking for is a pure binary output of JUST my code.
Thanks in advance :)
The assembler does not output executable code, it outputs an object file. To make it executable, you need to link it using ld
. This command allows you to specify the output format, which can be binary (if your build supports it).
as yadda.s -o yadda.o
ld yadda.o -o yadda --oformat=binary
You should be able to do this in one line using gcc:
gcc yadda.s -o yadda -Xlinker --oformat=binary
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With