Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lec_asm_06_3495.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
178.18 Кб
Скачать

2.1. Команды

Команда языка ассемблера в исходной программе имеет следующий вид:

[Метка:] Мнемокод [Операнд(ы)]

Метка, команда и операнд разделяются по крайней мере одним пробелом или символом табуляции. Максимальная длина строки – 132 символа. Пример:

M: MOV АХ, 0 ; Метка, команда, два операнда

Метка в языке Ассемблер может содержать латинские буквы, цифры и некоторые специальные символы. Первым символом в метке должна быть буква или специальный символ.

Мнемокод.

Мнемоническая команда указывает ассемблеру, какое действие должен выполнить данный оператор. В сегменте данных команда определяет поле, рабочую область или константу. В сегменте кода команда определяет действие. Например, MOV – имя команды пересылки данных.

Операнд

Если команда специфицирует выполняемое действие, то операнд определяет начальное значение данных или элементы, над которыми выполняется действие по команде. Команда может иметь один или, два операнда, или вообще быть без операндов.

В командах с двумя операндами первый из них представляет собой приемник, а второй – источник. Операнд-источник определяет значение, которое берется микропроцессором для сложения, вычитания, сравнения со значением опера­нда-приемника или просто для загрузки в операнд-приемник. Поэтому при исполнении команды опе­ранд-источник никогда не изменяется, в то время как операнд-приемник изменя­ется почти всегда

В нашем случае у команды MOV операнд-приемник – регистр АХ, а операнд источник – константа 0.

Комментарии

Комментарий начинается на любой строке исходного модуля с символа «точка с запятой» (;). Ассемблер полагает в этом случае, что все символы, находящиеся справа от ";", являются комментарием.

Комментарий может занимать всю строку или следовать за командой на той же строке.

Комментарии не приводят к генерации машинных кодов, поэтому включение комментариев не влияет на эффективность выполнения программы.

2.2. Псевдооператоры

Ассемблер имеет ряд псевдооператоров (или директив), которые позволяют управлять процессом ассемблирования и формирования листинга. Они действуют только в процессе ассемблирования программы и не генерируют машинных кодов.

Рассмотрим наиболее важные псевдооператоры.

2.2.1. Псевдооператор segment

Любые ассемблерные программы содержат по крайней мере один сегмент – сегмент кода.

Псевдооператор SEGMENT служит для описания сегмента и имеет следующий формат:

имя SEGMENT [параметры]

. . . . . . .

имя ENDS

Имя сегмента должно обязательно присутствовать и быть уникальным. Псевдооператор ENDS означает конец сегмента. Оба псевдооператора SEGMENT и ENDS должны иметь одинаковые имена. Псевдооператор SEGMENT может содержать несколько типов параметров.

1. Выравнивание. Данный параметр определяет границу начала сегмента. Обычным значением является PARA, по которому сегмент устанавливается на границу параграфа. Оно же в случае отсутствия принимается по умолчанию.

2. Объединение. Этот элемент определяет, объединяется ли данный сегмент с другими сегментами в процессе компоновки после ассемблирования.

Сегмент стека определяется с использованием описания STACK:

имя SEGMENT PARA STACK

Если отдельно ассемблированные программы должны объединяться компоновщиком, то можно использовать типы объединений: PUBLIC, COMMON и MEMORY. В случае, если программа не должна объединяться с другими программами, то указание этих типов должно быть опущено.

3. Класс. Данный элемент, заключенный в апострофы, используется для группирования относительных сегментов при компоновке.

имя SEGMENT PARA STACK 'Stack'

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]