Язык Ассемблер- это символические представления машинного языка. Все процессы в машине на самом низком, аппаратном уровне, проводятся в действие командами инструкциями машинного языка, а отсюда понятно что несмотря на общие названия, язык ассемблер для каждого типа………………………………..
Ассемблер – язык программирования понятие которого отражают архитектуру электронно вычислительной машины.
Ассемблер используется для написания самых быстрых программ, Операционных систем, драйверов, прошивок , компиляторов всех языков высокого уровня.
Работать с языком ассемблера не просто. Написание одной и той же программы на ассемблере занимает гораздо больше времени, чем на языке высокого уровня. Кроме того, очень много времени занимает отладка, а сопровождение кода требует гораздо больших усилий.
Но зачем же тогда вообще писать программы на ассемблере? Есть две причины: производительность и доступ к аппаратуре. Прежде всего, квалифицированный программист, пишущий на ассемблере, может составить гораздо меньшую по объему и гораздо более быстродействующую программу, чем программа, написанная на языке высокого уровня. Для некоторых программ быстродействие и объем имеют чрезвычайно важное значение. К этой категории относятся многие встроенные прикладные программы (например, в смарт-картах,сотовых телефонах, драйверах устройств) и процедуры BIOS, а также внутренние циклы приложений, критичных по времени.
Следующая причина заключается в том, что некоторым процедурам требуется полный доступ к аппаратному обеспечению, который обычно невозможно обеспечить средствами языков высокого уровня. В эту категорию попадают обработчики прерываний и исключений операционных систем, а также контроллеры устройств встроенных систем, работающих в режиме реального времени.
Кроме этих двух причин существует еще две. Во-первых,компилятор должен либо на выходе производить программу, которая может использоваться ассемблером, либо самостоятельно выполнять ассемблирование. Таким образом, знание языка ассемблера существенно для понимания того, как работает компилятор.
Вконце концов, кто-товедь должен написать компилятор (и его ассемблер).Во-вторых,ассемблер дает прекрасное представление о реальной маши-
не. Для тех кто изучает архитектуру компьютеров, написание ассемблерного кода — единственный способ узнать, что собой представляет машина на уровне архитектуры.
Синтаксис ассемблера
Предложения, составляющие программу, могут представлять собой синтаксическую конструкцию, соответствующую команде, макрокоманде, директиве или комментарию. Для того чтобы транслятор ассемблера мог распознать их, они должны формироваться по определенным синтаксическим правилам. Для этого лучше всего использовать формальное описание синтаксиса языка наподобие правил грамматики. Наиболее распространенные способы подобного описания языка программирования – синтаксические диаграммы и расширенные формы Бэкуса-Наура.
Директивы представляют собой команды управления компилятором. Объявление каждой из них должно начинается с точки. Практика показывает, что в любом ассемблере наиболее интенсивно используется только порядка 10…20 директив. Все остальные либо не являются обязательными, либо отвечают за управление, лишь незначительными свойствами компилятора. К “основным”, характерным и для ассемблеров других процессоров, относятся директивы .equ, .org, .def, .сseg, .dseg и т.д. Ну, а такие директивы, как .dq, .exit, .listmac в реальных программах встречаются действительно очень редко. Ниже приведен перечень, описание и примеры использования директив фирменного ассемблера микроконтроллеров AVR.
Директива .include подставляет текстовый файл в то место программы, где происходит ее употребление. В дополнении к этому сам файл подстановки также может содержать директиву .include. Если файл расположен в директории проекта или в одной из служебных папок, то вместо полного пути, допускается указывать, лишь ссылку на его имя.
Директива .include
Синтаксис написания:
.include "{путь к файлу}"
Пример использования:
.include "m8def.inc" ;вставка стандартного заголовочного файла
Директива .exit указывает ассемблеру место окончания файла исходного текста. Все операторы, находящиеся после директивы, становятся невидимыми для компилятора. Если .exit встречается в подключаемом файле, то сборка проекта заканчивается строкой, где расположена директива .include. В случае отсутствия директивы .exit, конечной точкой сборки считается последняя строка исходного текста.
Директива .exit
Синтаксис написания:
.exit
Пример использования:
.exit ;конец файла