Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Команды передачи управления



Программы, в которых все команды выполняются последовательно одна за другой (линейно), встречаются очень редко. Обычно в программах есть точки, в которых нужно принять решение о том, какая команда будет выполняться следующей. Это решение может быть:

· безусловным – когда необходимо передать управление не следующей команде, а другой, находящейся на некотором удалении от текущей;

· условным – решение о том, какая команда будет выполняться следующей, принимается на основе анализа некоторых условий.

То, какая команда будет выполняться следующей, процессор узнаёт по содержимому регистров CS:IP. Таким образом, команды передачи управления изменяют содержимое регистров CS и IP.

Место, куда необходимо передать управление обозначается при помощи меток. Метка – это символическое имя, обозначающее определённую ячейку памяти и предназначенное для использования в качестве операнда в командах передачи управления.

Как и переменной, метке транслятор присваивает три атрибута:

- имя сегмента кода, где метка описана;

- смещение (в байтах) от начала сегмента;

- тип (атрибут расстояния), который может принимать два значения:

o near – переход на метку возможен только в пределах сегмента кода, в котором она описана, то есть достаточно изменить IP;

o far – переход на метку возможен в результате межсегментной передачи управления, врезультате изменяется содержимое CS и IP.

Метку можно определить двумя способами:

- оператором: (двоеточие) – только метку ближнего типа near;

- директивой LABEL – тип метки при этом может быть как near так и far.

Например:

M1:

mov ax, pole

или

M1 label near

mov ax, pole





Дата публикования: 2014-12-08; Прочитано: 344 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.012 с)...