Иллюстрированный самоучитель по Assembler

P

Пример 2:

push DS; Пересылка DS через стек
pop ES; Теперь ES=DS

Иллюстрированный самоучитель по Assembler › Приложение. Система команд процессоров Intel. › P Допустима засылка в стек 32-битовых операндов (регистров и ячеек памяти), а также занесение в стек 8-, 16- и 32-битовых непосредственных значений. Каждое 8-битовое значение занимает в стеке целое слово. Операнды любого допустимого размера могут заноситься в стек вперемежку, если это не вступает в противоречие с операциями по извлечению этих данных из стека.

Пример 1:

push AX; Сохранение в стеке регистра АХ
push 32h; Сохранение в стеке
;константы 32h (она займет в стеке 1 слово)
push EAX; Сохранение в стеке регистра
;ЕАХ (два слова стека)

386+ PUSHA Сохранение в стеке всех регистров

Команда pusha сохраняет в стеке содержимое всех регистров в следующем порядке: АХ, СХ, DX, ВХ, значение указателя стека SP перед выполнением данной команды, далее ВР, SI и DI. Команда не имеет параметров и не воздействует на флаги процессора.

Пример:

pusha

386+ PUSHAD Сохранение в стеке всех регистров в 32-разрядном режиме

Команда pushad сохраняет в стеке содержимое всех регистров в следующем порядке: EAX, ECX, EDX, ЕВХ, значение указателя стека ESP перед выполнением данной команды, далее EBP, ESI и EDI. Команда не имеет параметров и не воздействует на флаги процессора.

Пример:

pushad

386+ PUSHFD Занесение в стек содержимого расширенного регистра флагов

Команда pushfd уменьшает на 4 содержимое указателя стека ESP и заносит на эту новую вершину содержимое расширенного регистра флагов EFALGS. При этом сохраняются все флаги процессора. Команда pushfd не имеет параметров и не воздействует на флаги процессора.

Пример:

pushfd; Содержимое регистра флагов сохраняется в стеке
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.