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

Вид материалаКонспект
Схема команды
Состояние флагов после выполнения команды
См. также
Схема команды
См. также
Подобный материал:
1   ...   26   27   28   29   30   31   32   33   ...   57

POPAD


(POP All general Double word registers from the stack)

Извлечение всех 32-разрядных регистров общего назначения из стека

 

Схема команды: 

popad 

Назначение: извлечение из стека регистров общего назначения edi, esi, ebp, esp, ebx, edx, ecx, eax.

Синтаксис

Алгоритм работы:
  • извлечь из стека последовательно значения и загрузить ими 32-разрядные регистры общего назначения edi, esi, ebp, esp, ebx, edx, ecx, eax. Содержимое edi восстанавливается первым. Содержимое esp извлекается но не восстанавливается;
  • увеличить значение указателя стека esp на 32.

Состояние флагов после выполнения команды:

выполнение команды не влияет на флаги

Применение:

Команда popad по принципу работы является обратной команде pushad и используется для восстановления всех 32-разрядных регистров общего назначения. Эту команду можно использовать в процедурах и программах обработки прерываний для восстановления регистров общего назначения прерванной программы.

.386

my_proc proc    near

        pushad

;тело процедуры, в которой изменяется

;содержимое регистров общего назначения

...

        popad

        ret

        endp

        

См. также: уроки 7, 10, 14, 15, 16, 17 и команды pop, popa, popf, popfd, push, pusha, pushad, pushf, pushfd

POPF


(POP Flags register from the stack)

Извлечение регистра флагов из стека

 

Схема команды: 

popf 

Назначение: извлечение из стека слова и восстановление его в регистр флагов flags.

Синтаксис

Алгоритм работы:
  • извлечь из вершины стека слово и поместить его в регистр flags;
  • увеличить значение указателя стека esp на 2.

Состояние флагов после выполнения команды:

14

1312

11

10

09

08

07

06

04

02

00

NT

IOPL

OF

DF

IF

TF

SF

ZF

AF

PF

CF

r

r

r

r

r

r

r

r

r

r

r

Применение:

Команда popf по принципу работы является обратной команде pushf и используется для восстановления из стека содержимого регистра флагов eflags. Возможным вариантом использования этой команды являются программы обработки прерываний или другие случаи, в которых необходимо сохранять некоторый локальный контекст процесса вычисления. Из-за того, что регистр eflags/flags непосредственно недоступен, команда popf является одной из немногих возможностей влияния на его содержимое.

;установить значение регистра flags в 03h

        mov     ax,3h

        push    ax

        popf

        

См. также: уроки 7, 10, 14, 15, 16, 17 и команды pop, popa, popad, popfd, push, pusha, pushad, pushf, pushfd