{{language}} [[Category:Assembly]] '''8051 Assembly''' is the [[Assembly|assembly language]] used by the [[wp:Intel_MCS-51|Intel 8051 (MCS-51)]] microcontroller, and its many derivatives. This 8-bit microcontroller is very popular because of its Boolean processor that operates on any of 32 bit-addressable bytes (16 in RAM, 16 SFRs). The 8051 has the ability to directly read, write and branch based on these individual bits.

Many chip makers, with the exception of Intel, continue to develop 8051 derivatives. All derivatives are compatible with the original instruction set, but most add new features. For this reason it is important to note whether the original 8051 or a derivative is used.

The 8051 has greatly increased in performance. Modern derivatives can perform over 400 times faster than the first ones ever could. 8051s exist nowadays in many embedded systems because they are smaller and use less power when compared with a 32-bit processor.

Original 8051 features:

  • 12 oscillator periods per machine cycle
  • 1 or 2 machine cycles per instruction (with the exception of MUL and DIV - both 4 machine cycles)
  • Four 8-bit bidirectional I/O ports
  • 128 bytes of internal RAM
  • Two 16-bit timers
  • Two-level priority interrupt
  • Six interrupt sources
  • Full-duplex [[wp:Universal_asynchronous_receiver/transmitter|UART]]
  • No [[wp:Watchdog_timer|watchdog]]

Derivatives exist that alter many or all features listed above.

==Useful links==

  • [http://www.keil.com/dd/docs/datashts/intel/ism51.pdf Instruction set]
  • [http://www.8052.com/tutintro.phtml Basic tutorial]
  • [http://plit.de/asem-51/ Freeware assembler]