Пример 6.

Пример 5.

Команда JMP [BX]+A4h имеет машинное представление:

Если содержимое регистра BX равно 2976, то адрес перехода будет взят из слова оперативной памяти, содержащегося в сегменте данных по адресу: 2976+A4=2A1A.

Команды межсегментных переходов меняют как содержимое IP, так и содержимое CS.

Команда межсегментного прямого перехода имеет в символической записи префикс far и заносит в IP и CS новые значения, заданные в самой команде.

Пусть необходимо осуществить передачу управления на команду, помеченную меткой L и располагающуюся в другом программном сегменте со следующими координатами: (CS)=AA66, (IP)=11C2. Символическая запись такой команды перехода будет следующей:

JMP far L

а ее машинное представление:

При межсегментном косвенном переходе новые значения IP и CS содержатся не в самой команде, а в двух смежных словах оперативной памяти. Адрес этой области памяти определяется постбайтом команды перехода в любом режиме адресации, кроме непосредственного и прямого регистрового. Схема выполнения команды представлена на рис. 8.3.


Рис. 8.3. Схема межсегментного косвенного перехода

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

В сомнительных случаях тип перехода может задаваться явным образом с помощью префиксов word ptr и dword ptr соответственно для внутрисегментного и межсегментного переходов.