Меню сайта

Урок 72. Близкие и далекие переходы

Команды перехода модифицируют указателькоманды IP, и, возможно,
— — — регистр сегмента кодов CS. — — — — — Эти регистры показывают, какая
— — — следующая команда должна бытьвыполнена. — Команда перехода является
— — — специальным случаем пересылки MOV данных врегистр или пару
— — — регистров- и некоторые ЭВМ действительновыполняют команду перехода
— — — именно таким способом. — Однако способы загрузки пары регистров
— — — CS:IP в микропроцессоре 8088 во многомотличаются от способов,
— — — используемых для других регистров.

— — — — — Прежде всего мы должны ввести некоторыеопределения. Если
— — — команда перехода изменяет только регистрIP, это близкий переход
— — — (NEAR=переход), так как переход происходитвнутри сегмента. Если
— — — переход изменяет регистр CS, это далекийFAR=переход.
— — — — — Аттрибуты NEAR и FAR используются приработе ассемблера. Любая
— — — программная метка в программе на языкеассемблера имеет атрибут
— — — либо NEAR, либо FAR, так же, как данныеимеют атрибуты BYTE или
— — — WORD. В некоторых примерах этой главыимеются процедуры, которые
— — — используют атрибут NEAR в операторе PROC.Это означает, что метка,
— — — связанная с оператором PROC (имяпроцедуры) имеет атрибут NEAR.
— — — Ассемблер использует эту информацию длятого, чтобы определить,
— — — какой тип команды перехода или вызовапородить при переходе к этой
— — — метке. Поскольку большинство процедур -подпрограммы, атрибут NEAR
— — — или FAR оператора PROC также определяеттип порождаемой команды
— — -возврата. Вызов FAR=процедуры сохраняет значения как регистра CS,
— — — так и регистра IP, тогда как вызовNEAR=процедуры оставляет в стеке
— — — только значение регистра IP. Командавозврата должна учитывать,
— — — какой тип вызова юыл сделан, чтобыподпрограмма могла вернуться к
— — — правильному месту.

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

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