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.
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.