Разделы:
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.
предыдущаяследующая© Copyright, 2009.
Для связи: info@dgs-srl.com.