Указатель команд
Указатель команд
Указатель команд - это 16-битовый регистр, который содержит смеще-
ние очередной команды. Как показано в предыдущем пункте, Процессор
использует регистр CS совместно с регистром IP для формирования 20-
битового физического адреса. Регистр CS определяет сегмент выполня-
емой программы, а IP задает смещение.
Поскольку в задании адреса очередной команды участвует два
регистра, существует несколько способов задать ход выполнения
программы. Наиболее обычный из этих способов осуществляется при
нормальном выполнении программы. При извлечении процессором команды
из памяти и ее выполнении значение регистра IP увеличивается на
размер команды в байтах. Тепер пара CS:IP указывает на следующую
команду.
Для изменения порядка выполнения команд используются команды
перехода. Команда перехода одного вида изменяет только регистр IP и
дает переход внутри одного сегмента. Этот тип перехода называется
внутрисегментным или близким (NEAR) переходом. Спецификация для
него требует лишь новое значение для регистра IP. Регистр CS
остается без изменений. Близкий переход может передавать управление
только внутри текущего сегмента, поэтому дальность перехода
ограничена сверху 64K байт. Для перехода к боле отдаленному участку
программы требуется переход другого типа.
Переход второго типа называется межсегментным или далеким (FAR)
переходом. При этом переходе процессор назначает новые значения как
для IP так и для CS. Этот переход позволяет выполнять новую прог-
рамму расположенную в любом месте адресного пространства 8088. Но
для выполнения такого перехода команда должна определить новые
значения для обоих регистров - CS и IP. При прямом переходе это
требует пяти-байтовой команды : один байт на код операции и по два байта для регистров CS и IP.