uses short words (mnemonics) for instructions instead of binary numbers  low level language
second generation of programming languages; uses symbolic instruction codes
a combination of hexadecimal numbers and expressions, such as mov, add,and sub, so writing programs in this language is easier than in machine language.