Розроблено цілий ряд мов, які за ступенем близькості до машинного мови прийнято ділити на дві групи: низького і високого рівня. До мов низького рівня відносяться мнемокоды і макромови.
Мнемокоды відрізняються від машинного мови тим, що цифрові коди замінені мнемоническими (букви і цифри) позначеннями.
Макромова, крім того, містить макроси, які відповідають групі машинних команд.
При цьому програміст може ефективно реалізувати потенційні можливості ЕОМ.
Можливості машино-орієнтованої мови визначаються властивостями відповідної ЕОМ і структурою команд її центрального процесора.
Програма, записана на якому або мовою програмування, називається вихідним модулем, який повинен бути перетворений в машинний код.
Процес перетворення вихідного модуля в машинний код називається трансляцією, а сама програма здійснює трансляцію транслятором.
Асемблер це транслятор з мови низького рівня або мови асемблера (макроасемблера).
Мова асемблера - машино-орієнтована мова, тобто якщо різні МП мають різну архітектуру, то вони програмно не сумісні
Асемблер відрізняється від машинного мови тим, що:
- містить макросредства;
- команди операцій записуються мнемонічні;
- адреси записуються символічно, а не чисельно.
Програми, написані на мові Асемблера, можуть безпосередньо транслюватися на машинний мову за допомогою програми званої асемблером.
Асемблер дозволяє розробляти найбільш ефективні програми з мінімальним часом рахунку і найбільш повно використовувати технічні можливості ПК, але при цьому процес складання програми є трудомістким і вимагає певних знань апаратної частини ЕОМ.