This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to set the starting address in C51

Hello All

Well wrote a simple program for LCD and compiled. It worked. But the starting address of the program was at 0000h for 89c51. But now I want to shift the starting address to 2000h , So that the execution starts onb one of my evaluation boards which has a starting address of 2000h. So how can i do the same.

Abhinav.

Parents Reply Children
  • The first three bytes of the program are conventially a jump to some other address. From Keil's sample STARTUP.A51:

    CSEG AT 0
    ?C_STARTUP: LJMP STARTUP1

    RSEG ?C_C51STARTUP

    STARTUP1:

    The point of the jump is to skip over the 8051 interrupt vector table, which lives in low memory. (You can consider address 0 to be the reset vector.)

    If you want the start of code to be a particular fixed address, just change STARTUP1, perhaps with another CSEG AT directive, or define an address to use with the LJMP.