Разделы:


Best links:

Директивы языка ассемблера asm-86

zeros DB 100 DUP (0)

задает массив zerosиз 100 байт с нулевыми начальными значениями, а оператор

result DW 200 DUP (?)

резервирует 200 слов памяти под массив result.

При использовании команд АМ возникает необходимость описывать данные размерностью 4, 8 и 10 байт соответственно для форматов КВФ, ДВФ и ВВФ. Для этой цели в языке ASM-86 введены директивы: DD, DQ и . DT, которые позволяют просто присваивать имена, а также резервировать соответствующее число байтов памяти без присвоения и с присвоением начальных значений. Для определения имен переменных или меток используются директивы EQU и PURGE. Например, в рассмотренной выше программе директива EQU ставила в соответствие имени порта port1 значение 110h. С помощью директивы EQU можно в любом месте программы вводить новые имена, например после включения оператора

port2 ЕQU port1

имена port2 и port1 будут восприниматься программой-ассемблером как эквивалентные. После включения оператора CountEQU СХ имя Count будет эквивалентно имени СХ, которое зарезервировано для обозначения регистра общего назначения ЦП. При использовании директивы EQU в поле операнда можно помещать различные выражения, например

sum2 EQU sum1 + 2

cycle EQU return – 5.

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

PURGE port1

использование имени port1 недопустимо.

Для организации процедур применяются директивы PROC и ENDP. Например, процедура myprocувеличивает значение cx на 10:

myproc       PROC add cx,10 ret

                        myproc       ENDP.

Очень часто в ассемблерных программах используются директивы, позволяющие вводить макроопределения. Например, макроопределение с именем mov_string и формальными параметрами dest, src и len.

предыдущаяследующая