Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
I8086.DOC
Скачиваний:
50
Добавлен:
02.05.2014
Размер:
1.36 Mб
Скачать
      1. Pop– извлечение информации из стека

8F /0

POP m16

занесение данных из стека в m16

58+rw

POP r16

занесение данных из стека в r16

1F

POP DS

занесение данных из стека в DS

07

POP ES

занесение данных из стека в ES

17

POP SS

занесение данных из стека в SS

Описание.Эти инструкции извлекают из стека слово данных и заносят его в указанный операнд.

Слово извлекается из вершины стека, адрес которой находится в регистровой паре SS:SP. После извлечения слова содержимоеSPувеличивается на 2.

Флажкине изменяются.

Замечания по программированию

Выполнение инструкции POP SPприведёт к загрузке вSPслова из старой вершины стека, поскольку увеличениеSPна 2 производится после выборки слова из вершины стека, но до занесения этого слова в операнд инструкции.

      1. Popf– загрузка регистра флагов из стека

9D

POPF

загрузка слова из вершины стека в регистр FLAGS

Описание.Эта инструкция извлекает из стека слово данных и заносит его в регистрFLAGS.

Слово извлекается из вершины стека, адрес которой находится в регистровой паре SS:SP. После извлечения слова содержимоеSPувеличивается на 2.

Зарезервированные разряды регистра FLAGSне изменяются.

Флажкизагружаются из стека.

      1. Push– занесение информации в стек

FF /6

PUSH r/m16

занесение данных в стек из r/m16

58+rw

PUSH r16

занесение данных в стек из r16

06

PUSH ES

занесение в стек ES

0E

PUSH CS

занесение в стек CS

16

PUSH SS

занесение в стек SS

1E

PUSH DS

занесение в стек DS

Описание.Эти инструкции заносят в стек указанное слово данных.

Содержимое SPуменьшается на два, после чего по полученному адресу производится запись заданного слова данных.

Флажкине изменяются.

Замечания по программированию

Выполнение инструкции PUSH SPприведёт к записи в стек нового содержимогоSP, т.е. значения, которое находится в этом регистре после вычитания. В процессоре 80286 и последующих в стек заносится исходное содержимое регистраSP, т.е. его значение до вычитания.

      1. Pushf– запись регистра флагов в стек

9C

PUSHF

запись в стек содержимого регистра FLAGS

Описание.Эта инструкция заносит в вершину стека содержимое регистраFLAGS.

Перед записью содержимое SPуменьшается на два. Регистр флагов записывается по полученному адресу.

Зарезервированные разряды регистра FLAGSне изменяются.

Флажкине изменяются.

      1. Rcl– циклический сдвиг влево через флажок переноса

D0 /2

RCL r/m8, 1

циклический сдвиг r/m8 влево на 1 разряд через CF

D2 /2

RCL r/m8, CL

циклический сдвиг r/m8 влево на CL разрядов через CF

D1 /2

RCL r/m16, 1

циклический сдвиг r/m16 влево на 1 разряд через CF

D3 /2

RCL r/m16, CL

циклический сдвиг r/m16 влево на CL разрядов через CF

Описание.Эта инструкция производит циклический сдвиг содержимого своего операнда влево через флажок переноса на указанное вторым операндом число разрядов.

Сдвиг выполняется по следующей схеме:

┌───────────────────────┐

│ ┌──┐ ┌─────────┐ │

└─┤CF│◄────┤ операнд │◄─┘

└──┘ └─────────┘ 

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

ФлажокCFсодержит значение последнего выдвинутого из операнда разряда.

Значение флажка OFв операции многоразрядного сдвига не определено. В операции одноразрядного сдвига он представляет собой результат операции “исключающее ИЛИ” между значением старшего разряда результата и содержимым флажкаCFпосле выполнения сдвига. Таким образом, единичное значение флажкаOFсвидетельствует о том, что содержимое старшего разряда результата отличается от его исходного значения, а нулевое значение – что старший разряд операнда не изменился.

Флажки SF,ZF,AFиPFне изменяются.