Question: i want to place my fn()1 in xdata 0x0100 is it possible by absolute address?
http://www.keil.com/support/docs/359.htm
"i want to place my fn()1 in xdata"
What exactly do you mean by "fn()1"??
Note that the 8051 architecture can only ever execute from CODE space - it cannot execute anything stored in XDATA!
In olden days, most 8051s MCUs kept their xdata and code space off-chip. You could then OR the PSEN\ and RD\ signals together, causing the xdata and code spaces to overlap.
This totally defeats the advantages of selecting a Harvard architecture in the first place, and I would guess nobody uses those pre-historic processors anymore, anyway.
would guess nobody uses those pre-historic processors anymore, anyway.
Wrong on two counts. First, there's nothing pre-historic about 8051s with external memory. A CPU like the DS80C390 is by no means pre-historic. It's certainly unusual for an 8051, but it's quite current. They even still do mask revisions.
Second, your guess is wrong. Even processors very much like the original '51s are still used, even today. You try to find a rad-hard 8051 with internal memory, you'll know why.
Hans-Bernhard: an old saying goes: "it takes an exception to confirm a rule", so your post "wrong!" actiually confirms that Gary is right :)
Erik