Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Турбо Ассемблер / Использование Турбо Ассемблера /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Определение данных - Программирование от RIN.RU
Определение данных



Простые директивы определения данных


Вы можете определять данные с помощью директив DB, DW, DD, DQ, DF, DP или DT. Как показано в следующей таблице, эти директивы выделяют простые данные различного размера:


Директивы определения данных различного размера
ДирективаЗначение
DBОпределение данных размером в байт.
DWОпределение данных размером в слово.
DDОпределение данных размером в двойное слово.
DQОпределение данных размером в четверное слово.
DFОпределение данных размером в 6 байт (48-битовый дальний указатель процессора 80386).
DPОпределение данных размером в 6 байт (48-битовый дальний указатель процессора 80386).
DTОпределение данных размером в 10 байт.



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


В директиве DB (байт) можно задавать следующие значения:


  • Выражение-константу, имеющую значения в диапазоне от -128 до 255 (байты со знаком в диапазоне от -128 до +127; беззнаковые байтовые значения в диапазоне от 0 до 255).

  • 8-битовое относительное выражение, использующее операции HIGH и LOW.

  • Символьную строку из 1 или более символов с использование стандартного формата заключенной в кавычки строки. В этом случае определяется несколько байт, по одному на каждый символ строки.


Значениями директивы DW (слово) могут быть:


  • Выражение-константа в диапазоне от -32768 до 65535 (слова со знаком в диапазоне от -32768 до 32767, беззнаковые слова в диапазоне от 0 до 65535).

  • Относительное выражение, занимающее 16 или менее бит (включая смещение в 16-битовом сегменте, сегмент или значение группы).

  • Одно- или двухбайтовая строка в стандартном формате (строка, заключенная в кавычки).


Значениями директивы DD (двойное слово) могут быть:


  • Выражение-константа в диапазоне от -2147483648 до 4294967295 (при выборе процессора 80386) или от -32768 до 65535 в противном случае.

  • Относительное адресное выражение, состоящее из 16-битового сегмента и 16-битового смещения.

  • Строка длиной до 4 символов в стандартном формате (строка, заключенная в кавычки).


Значениями директивы DQ (четверное слово) могут быть:


  • Выражение-константа в диапазоне от -2147483648 до 4294967295 (при выборе процессора 80386) или от -32768 до 65535 в противном случае.

  • Относительное или адресное выражение, состоящее из 32 или менее бит (при выборе процессора 80386) или 16 или менее бит (для всех других процессоров).

  • Положительная или отрицательная константа, имеющая значение в диапазоне от -2 с 63 степени до 2 в степени 63-1 (четверное слово со знаком в диапазоне от 2 в 63 степени до 2 в степени 63-1, беззнаковое четверное слово в диапазоне от 0 до 2 в степени 64-1).

  • Строка длиной до 8 байт в стандартном формате (строка, заключенная в кавычки).


Значениями директив DF и DP (48-битовый дальний указатель процессора 80386) могут быть:


  • Выражение-константа в диапазоне от -2147483648 до 4294967295 (при выборе процессора 80386) или от -32768 до 65535 в противном случае.

  • Относительное или адресное выражение, состоящее из 32 или менее бит (при выборе процессора 80386) или 16 или менее бит (для всех других процессоров).

  • Относительное адресное выражение, состоящее из 16-битового сегмента и 16-битового смещения.

  • Положительная или отрицательная константа, имеющая значение в диапазоне от -2 в 47 степени до 2 в степени 48-1 (6-байтовое значение со знаком в диапазоне от 2 в 47 степени до 2 в степени 47-1, беззнаковое 6-байтовое значение в диапазоне от 0 до 2 в степени 48-1).

  • Строка длиной до 6 байт в стандартном формате (строка, заключенная в кавычки).


Значениями директивы DT могут быть:


  • Выражение-константа в диапазоне от -2147483648 до 4294967295 (при выборе процессора 80386) или от -32768 до 65535 в противном случае.

  • Относительное или адресное выражение, состоящее из 32 или менее бит (при выборе процессора 80386) или 16 или менее бит (для всех других процессоров).

  • Относительное адресное выражение, состоящее из 16-битового сегмента и 16-битового смещения.

  • Положительная или отрицательная константа, имеющая значение в диапазоне от -2 в 79 степени до 2 в степени 80-1 (10-байтовое значение со знаком в диапазоне от 2 в 79 степени до 2 в степени 79-1, беззнаковое 10-байтовое значение в диапазоне от 0 до 2 в степени 80-1).

  • Строка длиной до 10 байт в стандартном формате (строка, заключенная в кавычки).

  • Упакованная десятичная константа, имеющая значение в диапазоне от 0 до 99999999999999999999.


Примечание: При сохранении данных в памяти младшее значение всегда записывается перед старшим значением.


В некоторых случаях числовые и строковые константы в директивах определения простых данных отличаются от тех, которые встречаются в стандартных выражениях Турбо Ассемблера. Например, директивы DB, DP, DT и DQ воспринимают заключенные в кавычки строки, которые могут иметь большую длину, чем строки, воспринимаемые в выражениях.


Заключенные в кавычки строки выделяются одинарными (") или двойными (") кавычками. Внутри строки два ограничителя указывают, что данный символ-ограничитель должен быть частью строки, например:


"what""s up doc?"


представляет следующие символы:


what"s up doc?


В качестве значения в директивах DD, DQ и DT можно указывать числа с плавающей точкой. Приведем некоторые примеры таких чисел:


1.0E30 ; означает 1.0x10^30
2.56E-21 ; означает 2.56х10^E-21
1.28E+5 ; означает 1.28х10^+5
0.025 ; означает .025


Турбо Ассемблер распознает эти числа с плавающей точкой, поскольку они содержат после начальной цифры символ точки. В MASM эти правила могут быть ослаблены, например:


DD 1E30 ; допустимое значение с плавающей точкой в
; режиме MASM
DD .123 ; допустимо только в режиме MASM


Примечание: Для ясности вы рекомендуем всегда использовать начальную цифру и десятичную точку.


Турбо Ассемблер допускает также указывать в директивах DD, DQ и DT кодированные вещественные числа. Кодированное вещественное число - это шестнадцатиричное число точно определенной длины. Суффикс R указывает, что число будет интерпретироваться, как кодированное вещественное число. Длина числа должна заполнять требуемое поле (плюс одна цифра, если начальной цифрой является 0. Например:


DD 12345678r ; допустимое число
DD 012345678r ; допустимое число
DD 1234567r ; недопустимое число (слишком
; короткое)


Другие значения суффиксов (D, H, O, B) действуют аналогично тем, которые указываются в обычных выражениях.


Некоторые простые директивы определения данных интерпретируют другие числовые константы особым образом. Например, если вы не задаете основания для значения в директиве DT, то Турбо Ассемблер использует двоично-десятичное представление (BCD). Другие директивы предполагают десятичное значение:


DD 1234 ; десятичное
DT 1234 ; BCD


Если значение представляет собой простую положительную или отрицательную константу, используемое по умолчанию основание (задаваемое директивой RADIX) не применяется в директивах DD, DQ и DT. Например:


RADIX 16
DW 1234 ; шестнадцатиричное значение 1234
DD 1234 ; десятичное значение 1234


Примечание: Числовые константы и директива RADIX подробнее описываются в этой главе.


<<<  НазадВперед  >>>
 1  2  3  4  5  6 


 8  Комментарии к статье  8 8  Обсудить в чате

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь