This is the mail archive of the
mailing list for the GCC project.
I really need help!
- To: gcc at gcc dot gnu dot org
- Subject: I really need help!
- From: Gavin Li <gavinux at yahoo dot com>
- Date: Wed, 17 Oct 2001 17:47:49 -0700 (PDT)
I am not sure if I should send this mail to here.
I use gcc (2.95.3) compile a file which include a
the C file is:
/* Hardware boot loader */
asm ("movl %esp, 0x5000");
/* do whatever I want, such as call foo() */
the command line used to compile :
gcc -O3 -nostdlib -e start -o bootldr.out bootldr.c
objdump -d bootldr.out > bootldr.asm
the ASM output is:
mov %esp, %ebp
mpv %esp, 0x5000
My question is how can I get ride of the first two ASM
instructions? I want the compiler to compile my
inlined ASM instruction as the first instruction in
the start() function, and the other function just as
My reason that I want to get ride of those instruction
I provided -e start to tell compiler that program
should start run from start(). There is no other
function will call this start(), It is the first
function which was run after power on. The first two
ASM instructions are useless. Seriosly, they are
Because when an embedded system power on, it runs from
start(), the stack pointer is undefined at this time,
it may points to some place where do NOT have memory
at all! so the push instruction will generate
exception! So, I need the compiler to generate start()
which the first instruction is my inline assembler!
I checked the GCC online manual, but I can't find
how to make gcc works as what I want.
Anyone who can tell me how to do that?
Thanks a lot,
Do You Yahoo!?
Make a great connection at Yahoo! Personals.