Keil Logo

A166 Introduction

The A166 Assembler is a program that translates symbolic code (assembly language) into executable object code. This object code can be executed with an XC16x/C16x/ST10 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 may 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 may 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 consists of three types of constructs:

  • Machine instructions which are code the machine can execute. Detailed discussion of the machine instructions is in the hardware manuals of the XC16x/C16x/ST10 microcontrollers.
  • Assembler directives which define the program structure and symbols, and generate non-executable code (data, messages, and so on.).
  • Assembler controls which set assembly modes and direct assembly flow.
  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.