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.
nope, the starting address is hardware defined and ALWAYS 0. Erik
View all questions in Keil forum