Записи - часть 5
значение поля DAY.
В данном примере не выполняется никакой полезной работы, так
как записанные в регистры значения оказываются потерянными при
возвращении управления DOS. Однако вы можете запустить программу
через отладчик и установить точку прерывания на команде возврата.
Отладчик выводит на дисплей содержимое регистров BH, BL и AL, так
что вы можете увидеть дату. Более практичная программа после
считывания значений, относящихся к дате, преобразовывала бы их в
код ASCII для вывода на экран. Либо вы могли бы оформить нашу
программу как процедуру, которая вырабатывает информацию о дате для
другой программу.
Имеется еще несколько особенностей операции RECORD, которые
следует рассмотреть. На Фиг. 6.15 приведен фрагмент таблицы
символических имен из ассемблерного листинга. В этой таблице
содержится информация, которая имеется у ассемблера о каждом из
полей записи. В этой таблице нас будет интересовать второй ряд
заголовков: "Shift Width Mask Initial" (Сдвиг Длина Маска Начальное
значение"). Как видно из таблицы символических имен, запись
DATE_WORD имеет длину 16 бит и состоит из трех полей. Каждое поле
имеет четые атрибута. Значение сдвига равно числу битов в записи,
остающихся справа от поля. Это значение указывает ассемблеру,
насколько нужно сдвинуть данное поле, чтобы выровнять его на правый
край. Значение маски служит для выделения поля в записи. Цифра 1 в
слове маски показывает, что соответствующая позиция относится к
данному полю.
Ассемблер может оперировать значением длины любого поля записи.
Вы можете задать длину поля при ассемблировании с помощью оператора
WIDTH. Например, команда
MOV AL,WIDTH YEAR
в нашем примере помещает в регистр AL значение, равное семи.
Столбец начальных значений в таблице символических имен
показывает, какие значения ассемблер вставляет при формировании
Содержание Назад Вперед