A processor can directly execute a machine language program. Though it is possible to program directly in machine language, assembly language uses mnemonics to make programming easier.

An assembly language program uses mnemonics to represent:
symbolic instructions and
the raw data that represent variables and constants.

A machine language program consists of:
a list of numbers representing the bytes of machine instructions to be executed and
data constants to be used by the program.