Assembler для начинающих


         

приведена очень простая программа,


 
                 Фиг. 6.14 Структуры (продолжение)
 
      На Фиг. 6. 14 приведена очень простая программа, которая
    использует файлы системы DOS. Эта программа открывает файл DOS на
    носителе в дисководе A:, считывает вторую запись этого файла и
    записывает ее в файл на носителе в дисководе B:. Маловероятно,
    чтобы вы когда-нибудь применили эту программу чтобы сделать
    что-либо существенное, но сейчас она дает нам возможность
    использовать структуру данных для блока FCB.
 
      Первая часть программы на Фиг. 6.14 определяет структуру данных
    FCB. Оператор языка ассемблера STRUC отмечает начало определения
    структуры. Метка FCB является здесь именем данной конкретной
    структуры. В примере определяется каждое поле структуры данных FCB.
    Обратите внимание, что в столбцах слева ассемблер генерирует
    объектный код данной структуры. Однако, при редактировании связей
    ассемблированного объектного кода, область данных в программе
    отсутствует. Ассемблер распечаьываеь данную структуру данных в
    оттранслированном виде исключительно для вашего сведения.
 
      Точно так же, как и вслучае макрокоманды, имя FCB становится
    как бы новым оператором языка ассемблера. Первым оператором в
    сегменте CODE является вызов структуры данных FCB. В примере этой
    структуре данных присваивается имя INPUT. Данная структура FCB
    идентифицирует входной набор данных. Заметьте, что в этом операторе
    FCB имеются операнды. Они заменяют или перекрывают значения,
    которые были включены в исходное определение структуры данных.
 
      Если мы сравним объектный код определения структуры FCB с
    объектным кодом структуры INPUT, то увидим, что они различаются по
    значениям первых трех полей. В определении структуры данных поле
    DRIVE равно 0, в структуре INPUT - 1. Первый операнд в угловых
    скобках определения структуры INPUT равен 1. Это значение заменяет
    исходно определенное значение 0. Аналогично в данном примере

Содержание  Назад  Вперед