-----------------------------------------------------------------|Код Команда Число Описание ||операции тактовых || циклов || ||9D POPF 9,pm=6 Извлечение вершины стека в || FLAGS ||9D POPFD 9,pm=6 Извлечение вершины стека в || EFLAGS |----------------------------------------------------------------- Работа командыФлаги <- Pop(); ОписаниеКоманда POPA снимает с вершины стека слово или двойное слово и помещаетего во флаговый регистр. Если атрибут размера операнда команды равен 16битам, из стека извлекается слово, и его содержимое помещается в регистрFLAGS. Если атрибут размера операнда команды равен 32 бита, из стекаизвлекается двойное слово, и его содержимое помещается в регистр EFLAGS.Информация о регистрах FLAGS и EFLAGS находится в главах 2 и 4. Отметим,что биты 16 и 17 регистра EFLAGS, называемые VM и RF, соответственно, независят от работы команды POPF и POPFD.Уровень привилегированности ввода/вывода может быть изменен только привыполнении на уровне привилегированности 0. Флаг прерывания изменяетсятолько при выполнении на уровне, как минимум равном уровнюпривилегированности ввода/вывода. (Режим реальных адресов эквивалентенуровню привилегированности 0). Если команда POPF выполняется принедостаточном уровне привилегированности, исключение не возникает, нопривилегированные биты не изменяются. Изменяемые флагиВсе флаги, за исключением флагов VM и RF. Исключения защищенного режима#SS(0), если вершина стека не находится в пределах стекового сегмента. Исключения режима реальных адресовПрерывание 13, если какая-либо часть операнда лежит вне пространстваисполнительных адресов от 0 до 0FFFFH. Исключения виртуального режима 8086Сбой #GP(0), если уровень привилегированности меньше 3, что позволяетэмуляцию.