Стековые передачи

Опубликовано в Архитектура процессора Intel

PUSH (PUSH operand onto stack) — загрузка операнда в стек. Ассемблерная нотация команды: PUSH src.

Выполняет декремент указателя стека SP (Stack Pointer) на два и затем заносит слово операнда-источника в вертит' стека, адресуемую SP (по адресу SS:SP).

Операндом может быть регистр общего назначения, сегментный регистр, слово памяти. Команда часто используется для передачи (через стек) параметров вызываемой процедуре или для сохранения значений временных переменных.

Стековые передачи

Пример:

PUSH АХ — поместить содержимое регистра АХ в стек.

Значении флагов не меняются.

POP — (POP operand from the stack) — восстановление операнда из стека.

Ассемблерная нотация команды: POP dst.

Команда восстанавливает в операнде-приемнике слово, хранящееся в вершине стека (т.с. значение по адресу SS:SP) и производит инкремент указателя стека (SP) на 2. В качестве операнда команды может использоваться регистр общего назначения, сегментный регистр, слово памяти. Так как стек работает со словами, но не с байтами, операнд должен быть 16-разрядным.

Пример:

POP АХ — извлечь содержимое из вершины стека в регистр АХ.

Значения флагов не меняются.