Microprocessor Design and the ARM

Programming languages

High-level languages (e.g. C++, MATLAB, Java, etc.) are excellent for application programming, but they must be translated for the microprocessor to act on the programs.

Hierarchy of programming languages

Hierarchy of programming languages

Low-level languages (machine code) can be directly understood by the appropriate microprocessors. At its most intelligible, it consists of strings hexadecimal "op-codes". At its least intelligible, it is just a very long sequence of binary 0's and 1's. It is very difficult to write even short programs in machine code.

To make programming easier, software tools known as assemblers are used. An assembler translates an assembly language program into op-codes that are understood by the microprocessor. You will have the opportunity to use the ARM assembler in the practical classes.

In your MDP project next year, you will use a compiler to translate your C++ programs to assembly language. In turn, this will be assembled into op-codes to run in the microprocessor of your robot.

Assembly language programs are more efficient and require less memory than programs in high-level languages. There is one assembly language instruction for each op-code in the machine code, giving programmers direct control of the microprocessor. The assembly process is normally quick. The bad news is that writing large programs in assembly language is still difficult.