Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метода Лукьянова_Ассемблер.pdf
Скачиваний:
169
Добавлен:
15.09.2014
Размер:
1.07 Mб
Скачать

сегментируются по регистру CS; во всех остальных инструкциях, если адрес в команде не модифицируется или если он модифицируется, но среди модификаторов нет регистра BP, то этот адрес считается ссылкой в сегмент данных и сегментируется по регистру DS; если же адрес модифицируется по регистру BP, то он считается ссылкой в сегмент стека

ипоэтому по умолчанию сегментируется по регистру SS.

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

MOV AX, ES:[BX].

1.4. Организация стека.

Стек – это специально выделенная область оперативной памяти, использующая механизм безадресной записи и выборки элементов данных. Этот механизм предполагает, что элемент, записанный последним, будет всегда прочитан первым. Адрес сегмента памяти, в котором располагается стек, определяется регистром SS. Для МП 8086 данные в стек помещаются только в виде слов (по 2 байта). Пара регистров SS:SP всегда указывает на текущую вершину стека. Для занесения слова в стек используется команда push, при этом сначала смещение в SP уменьшается на два, а затем производится запись слова в стек. Для извлечения слова из стека используется команда pop, при этом сначала производится чтение стека, а затем смещение в SP увеличивается на два. Важно помнить, что стек растет в направлении к началу памяти и уменьшается в направлении к ее концу. Стек предназначен для временного хранения переменных, передачи параметров вызываемым подпрограммам и сохранения адреса возврата при вызове процедур и прерываний.

1.5. Организация прерываний.

Иногда в процессе работы процессора возникает необходимость приостановки выполнения текущей программы и запуска другой программы – программы-обработчика, специально написанной для обработки некоторой ситуации. Такие особые ситуации называются прерываниями и делятся на два вида: внешние и внутренние прерывания. Внешние прерывания происходят, когда устройство, подключенное к процессору, само генерирует сигнал прерывания. Внутренние прерывания исходят от процессора в двух случаях: в результате выполнения программной команды int или при определенных условиях, таких как деление на ноль при выполнении команды div, когда генерируется сигнал прерывания для обработки этого типа ошибки.

15

Соседние файлы в предмете Конструирование программ и языки программирования