Система команд x86 |
|
Программирование - Архитектура и система команд микропроцессоров x86 |
POPA
Влияние команды на флаги и форматы команды:
|
|
|
|
|
|
|
|
|
61 |
POPA |
Загрузить из стека регистры DI, SI, BP, BX, DX, CX и AX |
Intel286 |
popa |
61 |
POPAD |
Загрузить из стека регистры EDI, ESI, EBP, EBX, EDX, ECX и EAX |
Intel386 |
popad |
Описание:
Команда POPA загружает из стека восемь 16-битных регистров общего назначения. Команда POPA проделывает действия обратные команде PUSHA, восстанавливая регистры общего назначения к значениям, бывшим в них до выполнения команды PUSHA, кроме регистра SP, который пропускается. Первым загружаемым регистром является регистр DI.
Команда POPAD извлекает восемь 32-битных регистров общего назначения. Команда POPAD проделывает действия обратные команде PUSHAD. Мнемоники POPA и POPAD имеют один код операции. Конкретная выполняемая команда определяется атрибутом размера операнда. Некоторые ассемблеры могут вставлять соответствующий префикс размера операнда перед кодом операции при преобразовании мнемоник POPA и POPAD, другие же ассемблеры воспринимают эти мнемоники одинаково и программируют только код операции, работа команды в этом случае определяется текущей установкой размера операнда для кодового сегмента (бит D дескриптора).
Операция:
IF OperandSize = 16 (* Команда POPA *)
THEN
DI = Pop();
SI = Pop();
BP = Pop();
eSP = eSP + 2 (* Пропустить следующие 2 байта в стеке *)
BX = Pop();
DX = Pop();
CX = Pop();
AX = Pop();
ELSE (* OperandSize = 32, команда POPAD *)
EDI = Pop();
ESI = Pop();
EBP = Pop();
eSP = eSP + 4 (* пропустить следующие 4 байта в стеке *)
EBX = Pop();
EDX = Pop();
ECX = Pop();
EAX = Pop();
FI;
Особые ситуации защищенного режима:
#SS(0), если в процессе исполнения команды вершина стека выходит из пределов стекового сегмента;
#PF(Код ошибки) при страничной ошибке.
#AC(0) при невыровненной ссылке в память при текущем уровне привилегий равном 3.
Особые ситуации режима реальной адресации:
SS, если в процессе исполнения команды вершина стека выходит из пределов стекового сегмента.
Особые ситуации режима V86:
Такие же, как и в режиме реальной адресации.
#PF(Код ошибки) при страничной ошибке.
#AC(0) при невыровненной ссылке в память.
Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru