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


Безусловные переходы


    Безусловные переход - это такой переход, который передает
    управление всякий раз, когда он выполняется.  Наоборот, услловный
    переход проверяет текущее состояние машины, чтобы определить,
    передавать управление или нет.  Существует два вида команд
    безусловной передачи управления - команды переходов и вызовов.
 
      Все команды вызова CALL - безусловны. Различные команды CALL
    показаны на Фиг. 4.27. Близкий вызов CALL, или NEAR CALL, указывает
    новое значение регистра IP и сохраняет старое значение регистра IP
    в стеке в качестве адреса возврата. Далекий вызов CALL, или FAR
    CALL, задает новые значения сегмента и смещения для дальнейшего
    выполнения программы и сохраняет в стеке как регистр IP, так и
    регистр CS. Близкий непосредственный вызов CALL - это относительный
    переход, использующий двухбайтовое поле смещения. Все остальные
    команды вызова - абсолютные переходы. Непосредственный вызов FAR
    CALL требует четырехбайтовое поле операнда для указания новых
    значений для регистров CS и IP. Косвенные переходы используют байт
    адресации mod=r/m для указания операнда=регистра или памяти; этот
    операнд содержит адрес подпрограммы. Косвенные вызовы типа NEAR
    загружают однословный операнд в регистр IP. Вызовы типа FAR
    загружают двойное слово из памяти в пару регистров CS:IP; первое
    слово загружается в регистр IP, а второе - в регистр CS. Если
    команда указывает регистр в качестве операнда косвенного далекого
    вызова, результат непредсказуем; микропроцессор 8088 берет новое
    значение регистра CS неизвестно откуда. Ни в коем случае нельзя
    использовать эту модификацию команды.
 
      Командам CALL соответствуют команды возврата RET. Все возвраты
    - косвенные переходы, поскольку они извлекают адрес перехода из
    вершины стека. Близкий возврат извлекает из стека одно слово и
    помещает его в регистр IP, а далекий возврат извлекает два слова,
    помещая слово из меньшего адреса в регистр IP, а слово из большего



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



Книжный магазин