Меню сайта

Урок 73. Адресация переходов

Если адрес перехода или вызоваподпрограммы является частью самой
— — — коамнды (как данные в командах снепосредственным операндом), это —
— — — непосредственный переход. — Если адрес перехода команды содержится в
— — — регистре или ячейке памяти, это -косвенный переход, так как
— — — команда требует загрузки адреса,извлекаемого из некоторого
— — — промежуточного места хранения- программане может перейти прямо в
— — — необходимое место, и должа идти тудакосвенно.

— — — — — Существует два метода вычисления адресаперехода. Если в
— — — команде указано значение адреса, этоабсолютный переход, т.е.
— — — переход по абсолютному адресу. Командаможет указать место
— — — перехода, как некоторое расстояние от неесамой. Этот метод
— — — перехода называется относительнымпереходом.

— — — — — Преимущество относительных переходовзаключается в том, что
— — — программа наиболее часто переходит кблизлежащим ячейкам- команда
— — — перехода может использовать однобайтовоесмещение. Если смещение
— — — трактуется, как число в дополнительномкоде, то двухбайтовая
— — — команда относительного перехода (один байт- код операции, и один
— — — байт — смещение) может выполнить переходна 127 байт вперед или на
— — — 128 байт назад внутри программы.Микропроцессор 8088 имеет два типа
— — — относительных переходов: один имеетоднобайтовое смещение, другой —
— — — двухбайтовое.

— — — — — В микропроцессоре 8088 все условныепереходы имеют однобайтовое
— — — смещение. Иногда это неудобно, например вслучае условного перехода
— — — к ячейке, находящейся на расстоянии в 150байт от текущего места.
— — — В таких случаях программа должнаиспользовать пару переходов,
— — — условный и безусловный- далее приводитсяпример такого метода
— — — перехода. В обычных же случаяходнобайтовые смещения условных
— — — переходов в микропроцессоре 8088минимизируют объем программы,
— — — необходимой для реализации любой заданнойфункции.

— — — — — При расчете смещения относительногоперехода микропроцессор
— — — 8088 отсчитывает смещения от значенияуказателя команд, которое
— — — получится после выполнения команды. Фиг.4.26 показывает разные
— — — примеры команд относительного перехода.Если точка перехода следует
— — — непосредственно за переходом, смещениеравно 0. При переходе к
— — — самой команде перехода смещение равно -2.При двухбайтовом смещении
— — — переход может быть сделан в диапазоне-32768 — 32767 байт от
— — — значения регистра IP после выполнениякоманды перехода.

Категория: Программирование на Ассемблере | Дата: 03.02.13

Меню раздела
Блок