Keil Logo

Classic 8051

The following table shows the memory classes used for programming the classic 8051 architecture. These memory classes are available when you are using the A51 macro assembler and the BL51 linker/locater.

Memory Class Address Range Description
DATA D:00 – D:7F Direct addressable on chip RAM.
BIT D:20 – D:2F bit addressable RAM; accessed bit instructions.
IDATA I:00 – I:FF Indirect addressable on chip RAM; can be accessed with @R0 or @R1.
XDATA X:0000 – X:FFFF 64 KB RAM (read/write access). Accessed with MOVX instruction.
CODE C:0000 – C:FFFF 64 KB ROM (only read access possible). Used for executable code or constants.
… BANK 31
B0:0000 – B0:FFFF
B31:0000 – B31:FFFF
Code Banks for expanding the program code space to 32 x 64KB ROM.


  • The memory prefix D: I: X: C: B0: .. B31: cannot be used at Ax51 assembler or BL51 linker/locater level. The memory prefixes are only listed for better understanding. Several Debugging tools, for example the µVision Debugger, are using memory prefixes to identify the memory class of the address.
  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.