Директивы определения типа данных
Ассемблер определяет типы данных, используемых в команде, двумя способами: во-первых, через указание длины данных при их объявлении и, во-вторых, по их содержимому. Основной формат определения типа данных:
[имя] Dn выражение
Имяданным присваивается, если в программе есть ссылки на эти данные. Тип переменной Dn, определяется следующими директивами:
DB–определить тип данных как байты (8 бит). Один байт выражается двумя десятичными или шестнадцатиричными цифрами.Например, tabb db 23,45; строка из двух байт
hex db 35h,6Fh;
Prt db ‘Привет коллега!$; строка символов.
DW – определить тип данных как слово (два байта).
Например, tabw dw 1А23Н,45ЕВН; строка слов.
DD – определить тип данных как двойное слово ( четыре байта).
Например, tabd dd 45567785.
DF – определить тип данных как шестибайтовое поле.
Например, tabf df 455677858700.
DQ – определить тип данных как восьмибайтовое поле.
DT – определить тип данных как десятибайтовое поле.
DUP – директива повторения операнда.
Например, Т1 DB 9 DUP (06),15,47; Т1 – идентификатор,
DB–тип данных,9–количество повторений числа 06.
Выражение может содержать константу или несколько констант, разделенных запятыми и ограниченных длиной строки.
Например, TABDB DB 45,32,78,09,55,39 ; ассемблер определяет в памяти эти константы как последовательность смежных байт. Ссылка по имени TABDB указывает на первую константу (45), по имени TABDB +1-на вторую (32) и т.д.
EQUи=эти директивы не определяют данные, а позволяют присвоить выражению символическое имя(идентификатор). Выражение может быть 16-битовой константой, ссылкой на адрес, символическим именем, меткой команды, операндом, символом.
Например, К EQU 1024; присвоить имя константе.
Tadr EQU DS:[BP] [SP]; присвоить имя комбинации адресов.
Count EQU CX; присвоить имя регистру.
К2 = 24; присвоить имя константе.
Директивы определения сегментов и процедур
Эти директивы отмечают начало и конец сегментов. Наиболее распространенные директивы приведены в таблице 2.12.
Таблица 2.12 - Директивы определения сегментов и процедур
END .DATA .CODE .STACK .MODEL | Формат: END [метка точки входа]; определяет конец программы. Формат: .DATA [имя сегмента]; Задаёт начало и описывает сегмент данных в малой модели программы. Формат: .CODE [имя сегмента]; Задаёт начало и описывает сегмент кода в малой модели пограммы. Формат: .STACK [размер]; Задаёт начало и описывает сегмент стэка в малой модели программы. Формат: .MODEL [модель]; Позволяет определить модель памяти для программы. [модель] одна из следующих директив: TINY – код, данные и стэк в одном сегменте. · SMALL - код, данные и стэк в двух сегментах. · COMPACT – код в одном, а данные в N сегментах. |
Дата добавления: 2016-02-24; просмотров: 853;