Глава 5
Синтаксис ассемблера
Структура программы на ассемблере
Типы и структура предложений ассемблера
Понятие о метасинтаксических языках
Классификация лексем ассемблера
Описание простых операндов и операндов-выражений
Варианты расположения операндов команд ассемблера
Виды адресации операндов в памяти
Операторы ассемблера
Стандартные директивы сегментации
Упрощенные директивы сегментации
Простые типы данных ассемблера (диапазоны значений)
Директивы описания простых типов данных
В предыдущих главах основное обсуждение было посвящено внутреннему устрой-
ству процессора, его
работы и программной модели. И это не случай-
ность — чем более низкий уровень функционирования компьютера доступен по-
ниманию программиста, тем легче и осмысленнее для него становится процесс
изучения и дальнейшего программирования на языке ассемблера. Сам язык ас-
семблера пока обсуждался мало. В основном речь шла о нем как о символическом
аналоге машинного языка. В связи с этим отмечалось, что программа, написанная
на ассемблере, отражает основные особенности архитектуры процессора: органи-
зацию памяти, способы адресации операндов, правила использования регистров
и т. д. Также говорилось, что необходимость учета подобных особенностей делает
86 Глава 5. Синтаксис ассемблера
ассемблер уникальным для каждого типа процессоров. Эта и следующие за ней
главы будут посвящены изучению правил оформления и разработки программ на
языке ассемблера с учетом влияния на эти правила архитектуры IA-32.
Синтаксис ассемблера
Программа на ассемблере представляет собой совокупность блоков памяти, назы-
ваемых сегментами. Программа может состоять из одного или нескольких таких
блоков-сегментов. Сегменты программы имеют определенное назначение, соответ-
ствующее типу сегментов: кода, данных и стека. Названия типов сегментов отра-
жают их назначение. Деление программы на сегменты отражает сегментную орга-
низацию памяти процессоров Intel (архитектура IA-32). Каждый сегмент состоит
из совокупности отдельных строк, в терминах теории компиляции называемых
предложениями языка. Для языка ассемблера предложения, составляющие про-
грамму, могут представлять собой синтаксические конструкции четырех типов.
Команды (инструкции) представляют собой символические аналоги машинных
команд. В процессе трансляции инструкции ассемблера преобразуются в соот-
ветствующие команды системы команд процессора.
Макрокоманды — это оформляемые определенным образом предложения тек-
ста программы, замещаемые во время трансляции другими предложениями.
Директивы являются указанием транслятору ассемблера на выполнение неко-
торых действий. У директив нет аналогов в машинном представлении.
Комментарии содержат любые символы, в том числе и буквы русского алфави-
та. Комментарии игнорируются транслятором.
Для распознавания транслятором ассемблера этих предложений их нужно фор-
мировать по определенным синтаксическим правилам. Для формального описа-
ния синтаксиса языков программирования используются
сические языки, которые представляют собой совокупность условных знаков,
образующих нотацию
языка, и правил формирования из этих
знаков однозначных описаний синтаксических конструкций целевого языка.
В учебных целях удобно использовать два
языка — син-
таксические
и
формы Бэкуса-Наура. Оба этих языка, в ко-
нечном итоге, предоставляют одинаковый объем информации. Поэтому выбор кон-
кретного языка может определяться исходя из того, что синтаксические диаграммы
более наглядны, а расширенные формы Бэкуса-Наура более компактны. В учеб-
нике будут использоваться оба способа.
На рис.
и 5.3 показан порядок написания предложений ассемблера с по-
мощью синтаксических диаграмм.
Как использовать синтаксические диаграммы? Очень просто: для этого нужно
всего лишь найти и затем пройти путь от входа диаграммы (слева) к ее выходу
(направо). Если такой путь существует, то предложение или конструкция являют-
ся синтаксически правильными. Если такого пути нет, значит, эту конструкцию
компилятор не примет. Иногда на линиях в синтаксических диаграммах присут-
ствуют стрелки. Они говорят о том, что необходимо обратить
на на-
правление обхода, указываемое этими стрелками, так как среди путей могут быть
Синтаксис ассемблера 87
Рис.
Формат предложений ассемблера
Директива
>.
Рис. 5.2. Формат директив
I Комментарий
I
I Имя
..
|
|
L
Г
Л
1
Комментарий
Do'stlaringiz bilan baham: |