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


Оператор Assume - часть 4


    вашей  забывчивости. Но  при достаточном  опыте, утверждение ASSUME
    помогает программисту ассемблера сосредоточиться на структурах дан-
    ных  в  программе.  Программист  должен  не  забывать устанавливать
    сегментные регистры  для адресации требуемых  для программы данных.
    Ассемблер  облегчит  бремя      запоминания  для  каждой  команды,  где
    располагаются  данные  и  какой   сегментный  регистр  должен  быть
    использован чтобы попасть к ним.
      Программа может  использовать утверждение SEGMENT  для передачи
    информации    другим      программам.  Оператор  SEGMENT      может  задавать
    выравнивание сегмента в памяти,  способ его комбинирования с други-
    ми      сегментами и  имя его   типа. Для  программистов IBM  PC особый
    интерес представляют два  вида выравнивания сегментов. Выравнивание
    по      параграфам  (тип  PARA)  размещает  начало  сегмента  с  начала
    параграфа -  ячейки памяти, адрес  которой в памяти  кратен 16-ти .
    Это  означает,  что  первый  байт  сегмента  будет иметь смещение 0
    относительно значения сегментного  регистра. Выравнивание по байтам
    (тип  BYTE), наоборот,  размещает сегмент  в любом      месте памяти. В
    этом случае сегментный регистр может  и не указывать на первый байт
    сегмента.  В программе  может потребоваться  ненулевое смещение для
    доступа к началу сегмента.
       Различные  способы  связывания  сегментов  задает  параметр типа
    связи.  Особенно   это  полезно  при   модульном  программировании.
    Описание PUBLIC приводит к объединению всех сегментов с одинаковыми
    именами  в один  большой  сегмент.    Например, можно  объединить все
    сегменты кодов.  Это приведет к соединению  разных подпрограмм в их
    собственных модулях с главной процедурой. Другой полезный тип связи
    - AT,  при указании  которого  в  сочетании с  адресным выражением,
    сегмент  располагается  по      заданному  абсолютному  адресу.  Такое
    объявление необходимо  при работе с данными  в фиксированном месте,
    например, с векторами прерываний в начале памяти.
      Намного  более    полное      описание  описание  утверждения SEGMENT
    можно найти  в справочном томе к  макроассемблеру IBM PC. Некоторые
    из      возможностей опертора  SEGMENT      мы  будем использовать  далее в
    примерах.



- Начало -  - Назад -  - Вперед -