Keil Logo

8051 von Neumann Memory Example Program

The following example program shows how you can build an application for a target with CODE, XDATA, and von Neumann memory.

The 8051 is a Harvard architecture. CODE memory and DATA memory are physically separate memory areas. There is no way to write to the CODE memory. You can, of course, AND the /PSEN and /RD lines of the 8051 and connect the output to the OE of a RAM. The RAM is then mapped into the CODE and DATA space of the 8051. You can write program code into the RAM and execute it.

This example uses the following memory map:

CODE:  0x0000-0xDFFF (ROM)
CODE:  0xE000-0xFFFF ('von Neumann' RAM)

XDATA: 0x0000-0xDFFF (RAM)
XDATA: 0xE000-0xFFFF ('von Neumann' RAM)

The program uses the XBYTE macro to write an LJMP 0xE000 instruction at address 0xE000. Then, the program calls the function at address 0xE000. This function never returns, of course.

Wednesday, June 19, 2002
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.