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


Оператор Assume


    После того    как сегменты в    программе определены, ассемблер  должен
    узнать,  как   будут  установлены  сегментные   регистры  во  время
    выполнения программы. В примере на    Фиг. 3.9 всего три сегмента, но
    болшая  программа  может  иметь  намного  больше.  Располагая всего
    четырьмя  сегментными регистрами,  большая программа  может адресо-
    ваться одновременно только к части доступных сегмментов. Ассемблеру
    необходимо сообщить, к каким  именно сегментам происходит адресация
    во      время  выполнения.  Это  делается  с  помощью  оператора ASSUME
    который  описывает для  ассемблера установки  сегментных регистров.
    Программист  должен   связать  каждый  сегментный регистр  с  тем
    сегментом, на который тот в данный момент указывает.
      Фиг. 3.9 иллюстрирует такие сегментные операции. В этом примере
    имеется три  сегмента: DATA, BUFFER  и CODE. Имена      для них выбраны
    произвольно. Их выбирает программист, а для ассемблера они не имеют
    значения.  Например,  вы  можете  назвать  сегмент      именем      CODE, а
    использовать его только для данных и наооборот. Лучше всего, конеч-
    но, называть  сегменты так, чтобы  их имена имели  какой-то смысл в
    данной программе. В нашем примере  сегменты DATA и BUFFER оба имеют
    внутри  ячейку данных.  Вряд ли  реальная программа  будет задавать
    сегмент  лишь с  одной ячейкой   памяти, но  сейчас это  служит для
    примера.  Если программа  обращается  к  данным во      многих участках
    адресуемого в 8088 пространства,  то ей требуется много определений
    сегментов. Например, программа  управления устройствами доступа IBM
    PC      может обращаться  к  памяти   в  системной  области   данных,
    устанавливать векторы прерываний в    начале памяти и выполняться как
    программа в  любом другом месте.  Каждая из этих  областей является
    сегментом и должна быть определена в программе.
      Утверждение ASSUME на Фиг. 3.9 предписывает ассемблеру работать



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