Макроопределение
Большинство ассемблеров поддерживают макроопределение, то есть определенные программистом символы, которые обозначают некоторую последовательность текстовых линий. Эта последовательность текстовых линий может включать последовательность инструкций или последовательность хранения данных pseudo-ops. Как только макрос был определен, используя соответствующий pseudo-op, его название может использоваться вместо мнемосхемы. Когда ассемблер обрабатывает такое утверждение, он заменяет утверждение текстовыми линиями, связанными с тем макросом, затем обрабатывает их, как если бы они появились в файле исходного текста.
Так как макроопределение может иметь 'короткие' названия, которые расширяются только к нескольким или действительно многим линиям кодекса, они могут использоваться, чтобы заставить программы ассемблера быть намного короче (потребуйте меньшего количества линий исходного текста от прикладного программиста - как с высокоуровневым языком). Они могут также использоваться, чтобы добавить более высокие уровни структуры к программам собрания, произвольно ввести вложенный кодекс отладки через параметры и другие подобные особенности.
У многих ассемблеров есть встроенное макроопределение для запросов системы и других специальных кодовых последовательностей.
Макро-ассемблеры часто позволяют макроопределению брать параметры. Некоторые ассемблеры включают весьма сложные макро-языки, включая такие языковые элементы высокого уровня как дополнительные параметры, символические переменные, условные предложения, обработка строк и арифметические операции. Все они годны к употреблению во время выполнения данного макроопределения и позволяют макроопределению спасти контекст или обменную информацию. Таким образом, макрос мог бы произвести большое количество инструкций ассемблера или определений данных, основанных на макро-аргументах. Это могло использоваться, чтобы произвести структуры данных рекордного стиля или "развернутые" петли, например, или могло произвести все алгоритмы, основанные на сложных параметрах.
Макроопределение изначально использовалось, чтобы настроить крупномасштабные системы программного обеспечения для определенных клиентов в основную эру. И также использовалось персоналом клиента, чтобы удовлетворять потребности их работодателей, делая определенные версии операционных систем изготовителя.
Было также возможным использовать исключительно макро-способности обработки ассемблера, чтобы произвести кодекс, написанный на полностью различных языках, например, произвести версию программы в КОБОЛ, используя чистую макро-программу ассемблера, содержащую линии кодекса КОБОЛ в операторах времени ассемблирования, инструктирующих ассемблер произвести произвольный кодекс.
Несмотря на власть макро-обработки, она вышла из употребления в языках высокого уровня, оставаясь многолетним растением для ассемблеров.
Это было так, потому что большинство программистов было скорее смущено макро-заменой параметра и не снимало неоднозначность макро-обработки от собрания и выполнения.