Команды PUSHA, PUSHAD, POPA, POPAD
Рубрика: Архитектура PC
(Команды CPU)
6169
Опубликовано: 07.05.2017
Команды PUSHA, PUSHAD, POPA, POPAD используются для сохранения в стеке и извлечения из него всех регистров общего назначения. Может использоваться перед вызовом процедуры, чтобы восстановить все значения регистров, какими они были до вызова.
Команды PUSHA, PUSHAD
Синтаксис: | PUSHA PUSHAD |
Операнды: | Нет |
Назначение: | Помещение регистров общего назначения в стек |
Процессор: | 80186+ 80386+ |
Флаги: | Не изменяются |
Комментарий: | Команда PUSHA помещает в стек регистры общего назначения в следующем порядке: AX, CX, DX, BX, SP, BP, SI, DI (в случае регистра SP используется значение, которое находилось в этом регистре до начала работы команды). Если команда используется в 32-разрядном режиме адресации или указана команда PUSHAD, то в стеке будут сохраняться регистры EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI. |
Ограничения: | Нет |
Примеры: |
pusha |
Команда POPA, POPAD
Синтаксис: | POPA POPAD |
Операнды: | Нет |
Назначение: | Извлечение регистров общего назначения из стека |
Процессор: | 80186+ 80386+ |
Флаги: | Не изменяются |
Комментарий: | Команда POP извлекает из стека содержимое регистров общего назначения в следующем порядке: DI, SI, BP, +2, BX, DX, CX, AX. Регистр SP, при чтении из стека с помощью команды POPA, пропускается. Вместо этого регистр стека просто увеличивается на 2 и происходит чтение следующего регистра. Если команда используется в 32-разрядном режиме адресации или указана команда POPAD, то из стека будут извлекаться регистры EDI, ESI, EBP, +4, EBX, EDX, ECX, EAX. |
Ограничения: | Нет |
Примеры: |
popa |
Комментарии (0)