Assembly language, commonly referred to as assembly, is a more human readable form of machine language. Every computer architecture uses its own assembly language thus processors using an architecture based on the x86, PowerPC, or TI DSP will each use their own language. Machine language is the pattern of bits encoding a processor's operations. Assembly will replace those raw bits with a more readable symbols call mnemonics.
For example, the following code is a single operation in machine language.
0001110010000110
ADD R6,R2,R6 ; Add $R2 to $R6 store in $R6
ADD instructs the processor to add the operands R2 and R6, which are the contents of register R2 to register R6, and store the results in register R6. The ";" indicates that everything after that point is a comment, and is not used by the system.Assembly has a one-to-one mapping to machine language. Therefore, each line of assembly corresponds to an operation that can be completed by the processor. This is not the case with high-level languages. The assembler is responsible for the translation from assembly to machine language. The reverse operation is completed by the dissasembler.
Assembly instructions are very simple, unlike high-level languages. Often they only accomplish a single operation. Functions that are more complex must be built up out of smaller ones.
The following are common types of instructions:
- Moves:
- Set a register to a fixed constant value
- Move data from a memory location to a register (a load) or move data from a register to a memory location (a store). All data must be fetched from memory before a computation may be performed. Similarly, results must be stored in memory after results have been calculated.
- Read and write data from hardware devices and peripherals
- Computation:
- Add, subtract, multiply, or divide. Typically, the values of two registers are used as parameters and results are placed in a register
- Perform bitwise operations, taking the conjunction/disjunction (and/or) of corresponding bits in a pair of registers, or the negation (not) of each bit in a register
- Compare two values in registers (>, < , >=, or <=)
- Control Flow:
- Jump to another location in the program and execute instructions there
- Jump (branch) to another location if a certain condition holds
- Jump to another location, but save the location of the next instruction as a point to return to (a call)









"This is the entire course organized at Rice University for all the basic lessons for using an MSP430. It is designed for the use of an eZ430 tool and is still under construction."