Программа, которая переводит символьную запись машинных команд в машинные коды, называется ассемблер. Это специализированное программное обеспечение, используемое для трансляции кода, написанного на ассемблерном языке, в машинный код, который может исполнять процессор компьютера.
Ассемблерный язык — это низкоуровневый язык программирования, который очень близок к машинному коду, но использует символьные обозначения (мнемоники) для представления операций. Примеры таких мнемоник: MOV (команда перемещения данных), ADD (сложение), SUB (вычитание) и другие. Каждая из этих команд соответствует определённому набору битов, которые понимает процессор.
Ассемблер выполняет несколько ключевых задач:
- Трансляция мнемоник в соответствующие операционные коды (опкоды) и адреса.
- Обработка директив ассемблера — специальных инструкций, которые не превращаются в машинный код, но управляют процессом сборки программы, например, определение места в памяти для данных.
- Разрешение символических имен и меток в конкретные адреса и значения.
Результатом работы ассемблера является объектный файл, содержащий машинный код, готовый к выполнению на целевой машине или для дальнейшей обработки компоновщиком (линкером), который может объединить несколько объектных файлов в один исполняемый файл.