Программирование на JAVA

В архитектуре IA-32 в качестве указателя стека используется регистр ESP, указы­вающий на текущую вершину стека процессора (то есть на его верхний элемент). Ширина стека составляет 32 разряда, а это означает, что его эле­менты являются двойными словами.

Существует четыре команды для проталкивания элементов в стек и выталки­вания их из стека.

Команда

PUSH Source

уменьшает значение ESP на 4, а затем сохраняет двойное слово, находящееся по адресу Source, в па­мяти, который указан в ESP.

Команда POP

POP Destination

выполняет обратную операцию: считывает из памяти двойное слово, на которое указывает ESP, то есть считывает из стека верхний элемент, а затем сохраняет его по адресу Destination и увеличивает значение ESP на 4, удаляя тем самым верхний эле­мент из стека. Регистр ESP используется в этой команде неявно. Исходный и ре­зультирующий операнды задаются в одном из режимов адресации IA-32. Еще две команды предназначены для выталкивания из стека и проталкивания в него сра­зу нескольких элементов.

Команда

PUSHAD

проталкивает в стек содержимое восьми регистров общего назначения, от ЕАХ до EDI, а команда

POPAD

выталкивает их из стека в обратном порядке


<< назад вперед >>