Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СППО_все_шпоры_разом.docx
Скачиваний:
7
Добавлен:
18.04.2019
Размер:
96.32 Кб
Скачать

15.Оператор безусловного перехода.

Для организации безусловного перехода на ассемблере имеется команда JMP

JMP адрес перехода

Рассмотрим пример:

JMP@label1

@label1:

JE адрес перехода

JE@label2

ЧАСТЬ ТЕКСТА ОТСУТСТВУЕТ 

Часть перехода может быть меткой или адресом области памяти, в которую предварительно помещён указатель перехода. В системе команд существует несколько кодов машинных команд безусловного перехода. Их различие определяется дальностью перехода и способом задания целевого адреса. Дальность перехода определяется местоположением – операндом команды. Этот адрес может находиться в текущем сегменте кода или в некотором другом сегменте. В первом случае переход называется внутрисегментовым или близким. Во втором случае – межсегментовым или дальним.

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

Выделяют 3 варианта внутрисегментового перехода:

1)Прямой короткий внутрисегментовый переход.

Применяется, когда расстояние от команды JMP до адреса не более чем 127 байт. В этом случае транслятор языка на код смещения выделяет 1 байт. В ходе операции заложена информация о том, что второй байт интерпретируется как смещение.

2) Прямой внутрисегментовый переход.

Отличается от короткого тем, что длина машинной команды составляет 3 байта, в кот. 2 последних интерпретируются как смещение. В этом варианте можно осуществлять переход в пределах 64кБайт, относительно следующей JMP команды.

3)Косвенный внутрисегментовый переход.

Означает, что команде JMP указывается не сам адрес, а место, где этот адрес записан.

II. Команды межсегментового перехода.

а)Команда прямого межсегментового перехода имеет длину 5 байт, из кот 2 байта составляют смещение адреса перехода, а другие 2 байта – значение сегментной составляющей регистра CS того кодового сегмента, где находится адрес перехода.

б) Команда косвенного межсегментового перехода. В качестве операнда имеет адрес области памяти, в котором содержится смещение и сегментная часть целевого адреса перехода.

в) Косвенный регистровый межсегментный переход.

Адрес – переход указывается в регистре, что удобно при программировании динамических переходов, когда коннектный адрес перехода определяется в процессе выполнения программы и помещается в регистр.