Общий формат ассемблерной команды 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Общий формат ассемблерной команды



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

Метка: Мнемоника Операнд, Операнд; Комментарий

Метка (символьный адрес команды в сегменте кода) представляет собой идентификатор, то есть последовательность букв и цифр, начинающуюся с буквы. Символы метки могут разделяться знаком подчеркивания. Все имена регистров являются зарезервированными и использовать их в качестве метки нельзя. Они применяются для указания соответствующих регистров. Символьный адрес команды является необязательным. Он указывается в команде тогда, когда на неё ссылаются в командах условного или безусловного переходов.

Команда (мнемоника) указывает транслятору с ассемблера, какое действие должен выполнить данный оператор.

Операнды – это регистры, метки (адреса) данных или непосредственно данные. В зависимости от формата команды количество операндов может варьироваться: ни одного (безадресная команда), один (одноадресная команда) или два (двухадресная команда). Разрядность операндов должна совпадать.

Комментарий служит для пояснения действий команды или директивы ассемблера. После точки с запятой комментарий записывается на одной строке. Для продолжения комментария на последующих стоках он записывается после точки с запятой. Комментарий является необязательным.

Таким образом, из всех компонентов команды в обязательном порядке указывается сам оператор и необходимые для его выполнения операнды.

Примеры:

add ah, al; Сложить содержимое регистров ah и al

met: inc ah; Увеличение содержимого регистра ah на 1

mov ah,4

Определение данных

В сегменте данных можно зарезервировать определённое количество байтов для размещения исходных данных или результатов работы программы, а также указать их начальные значения. Формат операторов резервирования и инициализации данных в общем случае имеет вид:

Метка Мнемоника Операнд,...,Операнд; Комментарий

Метка (символьный адрес) обозначает смещение (номер ячейки в сегменте данных) первого резервируемого байта. К метке в сегменте данных обладает теми же свойствами, что и метка в сегменте кода, но является обязательной.

Мнемоника определяет длину каждого операнда:

1) DB (определить байт). Диапазон для целых чисел без знака: 0...255, для целых чисел со знаком: -128…127.

2) DW (определить слово – два байта). Диапазон для целых чисел без знака: 0...65535, для целых чисел со знаком: -32768…32767.

3) DD (определить двойное слово – четыре байта).

Диапазон для целых чисел без знака: 0...4294967295, для целых чисел со знаком: -2147483648…2147483647.

Операнды показывают инициализируемые данные или объем резервируемого пространства. Выражение может содержать константу или символ? для неопределенного значения.

Примеры:

Data_byte DB 104

Data_word DW 100H,FFH,-5

Data_DW   DD 5*25,0FFFDH,1

Data_str DB ‘H’,’E’,’L’,’L’,’O’

Data_str1 DB ‘HELLO’

При определении большого числа ячеек можно применять оператор повторения

DUP (Операнд,...,Операнд).

Примеры:

Arr DB 30 DUP(1,2) – зарезервирует по адресу Arr 30 однобайтовых ячеек с начальными значениями 1 в нечетных и 2 в четных байтах;

ММ1 DB 15 DUP(14) – означает, что по адресу ММ1 находятся 15 байт, содержащих шестнадцатиричную цифру 0ЕH (14 – в десятичной системе).

Arr_DW DW 4 DUP(?) – определяет по адресу Arr _ DW 4 ячейки, содержащих произвольную информацию.

Операнды могут задаваться в различных системах счисления: для двоичной системы счисления после значения операнда ставится символ B, для шестнадцатеричной – символ H, для десятичной – ничего.

Примеры:

Data_word DW 100H – по адресу Data _ word зарезервировано 2 байта с первоначальным значением 100 в шестнадцатеричной системе счисления (или 256 в десятичной).

Met DB 01010011B – по адресу Met зарезервирована однобайтовая ячейка с первоначальным значением 01010011 в двоичной системе счисления (или 83 в десятичной).

ARG DB 15 – по адресу ARG зарезервирована однобайтовая ячейка с первоначальным значением 15 в десятичной системе счисления.

Далее рассмотрим основные команды языка ассемблера для процессора Intel 8086, необходимые для выполнения заданий лабораторного практикума.



Поделиться:


Последнее изменение этой страницы: 2020-12-09; просмотров: 101; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.58.121.131 (0.004 с.)