Обозначение чисел и директивы определения данных

Типы данных ассемблера

1. С точки зрения процессора

a. Байт: 0-7 (8 бит);

b. Слово: 0-15 (16 бит);

c. Двойное слово: 0-31 (32 бита);

d. Учетверенное слово: (64 бита);

e. 128-битное упакованное слово (используется в процессорах от Intel P‑III и выше).

Адресным словом считается адрес его младшего байта. Адрес старшего байта может быть использован в качестве доступа к старшей половине слова.

Адресом двойного слова является адрес его младшего слова по аналогии с адресом слова.

2. С точки зрения логики

a. Целый бит со знаком;

b. Целый тип без знаков;

c. Указатель на память;

d. Цепочка;

e. Битовое поле;

f. Неупакованный двоично-десятичный тип (BCD-число);

g. Упакованный двоично-десятичный тип

h. Тип данных с плавающей запятой;

i. Тип данных MMX;

j. MMX-расширение.

Если используется целый бит со знаком (8, 16, 32), то знак числа: 7, 15, 31 (0 ‑ положительный знак, 1 – отрицательный знак). Если 8 разрядов: интервал (-128; 127). Если слово (16 разрядов): интервал (-32768; 32767). Если двойное слово (32 разряда): интервал (-231; (231-1)).

Если используется целый тип без знаков, то интервалы значений будут следующие: при 8 разрядах (0; 255), при 16 разрядах (0; 65535), при 32 разрядах (0; (231-1)).

Указатели на память бывают двух типов:

1. Ближний тип – 32-разрядный логический адрес (используется в P4) – смещение в байтах от начала сегмента;

2. Дальний тип – 48-разрядный логический адрес. 16 разрядов – сегментный регистр + 32 разряда – смещение.

Цепочка используется для работы с текстовыми переменными. Пример – ИНН.

ИНН 4027 671265

40 – регион; 27 – ИНС; 67126 – номер; 5 – контрольное число (контрольная сумма)

Цепочка является непрерывным набором байтов, слов или двоичных слов максимальной длиной до 4 ГБ.

Битовое поле является непрерывной последовательностью битов, в которой каждый бит является независимым и может рассматриваться как отдельная переменная. Может начинаться с любого байта и может записать до 32 бит.

BCD-число – байтовое представление десятичной цифры от 0 до 9. Неупакованные десятичные числа хранятся как байтовое значение без знака по одной цифре в каждом байте. Используется полубайт (4 бита).

Упакованный двоично-десятичный тип – представление двух десятичных цифр в одном байте.

Тип данных с плавающей запятой может быть представлен в кратком, длинном или расширенном форматах. Краткий формат – 32 разряда, с 0 по 23 разряд – мантисса, с 24 по 30 – характеристика, 31 – знак. Длинный формат – 64 разряда, с 0 по 51 разряд – мантисса, с 52 по 62 – характеристика, 63 разряд – знак. Расширенный формат – 80 разрядов.

MMX-расширение – команды MMX с плавающей запятой

Обозначение чисел и директивы определения данных

Обозначение чисел с помощью суффиксов:

1. B – двоичное число (xB)

2. Q – восьмеричное число

3. D – десятичное число (xD)

4. H – шестнадцитиричное (первое 0)

Примеры:

14 – 14; 012 – 18; 12H – 18; 11B – 3; 0ah – 10; aH – 10; 11Q – 9; 011B – 283; 11d – 11; 011d – 283; 0a – 10

Директивы определения данных:

1. DB – резервируется 1 байт;

2. DW – резервируются 2 байта;

3. DD – резервируются 4 байта;

4. DF (DP) – резервируются 6 байт

5. DQ – резервируются 8 байт

6. DT – резервируются 10 байт

Примеры:

DW 10 – записали число 10 в 2 байта

DD? – зарезервировали значение, полученное ниже

DB ‘?’ – поместили ASCII-код “?”

DB ‘?’, ‘8’, 1,1,1 – директива работы определения 5 байт

DB ‘?8’, 3dup1 – дублируется «1» 3 раза

DB 2dup(1,3dup0)=DB 1,0,0,0,1,0,0,0

DW 256 – 256

DW 0100 – 256 – 16-ричное число

DB 0,1 – 256 – или 1 или 256