Setting start address to execute raw binary file
===

Bootloader is seperated into 2 stages. First stage is written in assembly and only loads second stage, second stage is in C. Stage1 loads code in C to address 0x0500:0, and jumps there. Stage2 have to write "hello message" and halt.

I tried different ways to set starting address to raw binary made by: (but nothing worked)

    cc -nostartfiles -nostdlib -c stage2.c
    ld -s -T scrptfile.ld stage2.o /* I'm using ld just to set starting address of executable */
    objcopy -O binary stage2 stage2.bin /* delete all unuseful data  */

Maybe I delete with objcopy somethnig that shouldt be deleted.

How can I execute this stage2.bin then? 

P.S. Parameter -set-start (objcopy) returns an error: Invalid bfd target. It is because output file is binary?
    
Thank you for anwsers.