Ax51 User's Guide

What is an Assembler?

An assembler is a program that translates symbolic code (assembly language) into executable object code. This object code can be executed with a 80C51-compatible microcontroller. If you have ever written a computer program directly in machine-recognizable form, such as binary or hexadecimal code, you will appreciate the advantages of programming in symbolic assembly language.

Assembly language operation codes (mnemonics) are easily remembered (MOV for move instructions, ADD for addition, and so on). You can also symbolically express addresses and values referenced in the operand field of instructions. Because you assign these names, you can make them as meaningful as the mnemonics for the instructions. For example, if your program must manipulate a date as data, you can assign it the symbolic name DATE. If your program contains a set of instructions used as a timing loop (executed repeatedly until a specific amount of time has passed), you can name the instruction group TIMER_LOOP.

An assembly program has three parts:

  • Machine instructions - Code the machine can execute. Detailed discussion of the machine instructions is in the hardware manuals of the 80C51 microcontroller.
  • Assembler directives - Define the program structure and symbols, and generate non executable code (data, messages, and so on.).
  • Assembler controls - Set assembly modes and direct assembly flow.