Добавил:
ИВТ (советую зайти в "Несортированное") Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
23.11.2024
Размер:
460.73 Кб
Скачать

МИЭТ, СПИНТех, КАИ

Передача управления (ветвления и циклы)

1 / 13

Передача управления (ветвления и циклы)

Александра Игоревна Кононова

МИЭТ

15 декабря 2020 г. актуальную версию можно найти на https://gitlab.com/illinc/arch-cs

Флаги и условия

Флаги ЦП

Программирование нелинейных алгоритмов

Слово состояния FPU и флаги ЦП

Обработка чисел с плавающей запятой

Команды и изменение флагов

 

 

 

 

МИЭТ, СПИНТех, КАИ

Передача управления (ветвления и циклы)

 

2 / 13

 

 

 

Флаги ЦП

 

 

 

 

 

 

 

 

 

 

 

 

flags=eflags

 

 

 

 

 

 

0

CF

Carry Flag

 

Флаг переноса (беззнакового переполнения)

 

Состояние

 

 

 

 

1

1

 

 

Зарезервирован

 

 

 

 

 

 

 

2

PF

Parity Flag

 

Флаг чётности

 

Состояние

 

 

 

 

3

0

 

 

Зарезервирован

 

 

 

 

 

 

 

4

AF

Auxiliary Carry Flag

 

Флаг вспомогательного переноса

 

Состояние

 

 

 

 

5

0

 

 

Зарезервирован

 

 

 

 

 

 

 

6

ZF

Zero Flag

 

Флаг нуля

 

Состояние

 

 

 

 

7

SF

Sign Flag

 

Флаг знака

 

Состояние

 

 

 

 

8

TF

Trap Flag

 

Флаг трассировки

 

Системный

 

 

 

 

9

IF

Interrupt Enable Flag

 

Флаг разрешения прерываний

 

Системный

 

 

 

 

10

DF

Direction Flag

 

Флаг направления

 

Управляющий

 

 

 

 

11

OF

Overflow Flag

 

Флаг знакового переполнения

 

Состояние

 

 

 

 

12–13

IOPL

I/O Privilege Level

 

Уровень приоритета ввода-вывода

 

Системный

 

 

 

 

14

NT

Nested Task

 

Флаг вложенности задач

 

Системный

 

 

 

 

15

0

 

 

Зарезервирован

 

 

 

 

 

 

 

 

 

 

 

eflags

 

 

 

 

 

 

16

RF

Resume Flag

 

Флаг возобновления

 

Системный

 

 

 

 

17

VM

Virtual-8086 Mode

 

Режим виртуального процессора 8086

 

Системный

 

 

 

 

18

AC

Alignment Check

 

Проверка выравнивания

 

Системный

 

 

 

 

19

VIF

Virtual Interrupt Flag

 

Виртуальный флаг разрешения прерывания

 

Системный

 

 

 

 

20

VIP

Virtual Interrupt Pending

 

Ожидающее виртуальное прерывание

 

Системный

 

 

 

 

21

ID

ID Flag

 

Проверка на доступность инструкции CPUID

 

Системный

 

 

 

 

22–31

 

 

 

Зарезервированы

 

 

 

 

 

Флаги и условия

Флаги ЦП

Программирование нелинейных алгоритмов

Слово состояния FPU и флаги ЦП

Обработка чисел с плавающей запятой

Команды и изменение флагов

 

 

 

 

МИЭТ, СПИНТех, КАИ

Передача управления (ветвления и циклы)

 

3 / 13

 

 

 

Слово состояния

FPU и флаги ЦП

 

 

 

 

 

 

 

 

sw

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выгрузка sw ! flags

 

0

IE

Недействительная операция

 

 

 

 

1

DE

Денормализованный операнд

после устаревших команд

 

 

2

ZE

Деление на ноль

 

 

сравнения в 2 этапа:

 

 

3

ОЕ

Переполнение порядка

fnstsw %ax (sw ! ax)

 

 

4

UE

Исчезновение порядка

sahf (ah ! flags[0:::7])

 

 

5

РЕ

Неточный результат

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

SF

Стековая ошибка

 

 

flags, f[u]comi[p]

 

 

7

ES

Флаг незамаскированной ошибки

или старые + fnstsw + sahf

 

 

8

C0

 

 

0

 

CF

 

Carry Flag

 

 

 

 

 

9

C1

 

 

 

 

 

 

игнорируется

 

 

 

 

 

10

C2

 

 

2

 

PF

 

Parity Flag

 

 

 

 

 

11

 

 

 

 

 

 

 

игнорируется

 

 

 

 

12

TOP

 

 

4

 

AF

 

Auxiliary carry Flag

 

 

13

 

 

 

 

 

 

 

игнорируется

 

 

 

 

 

14

C3

 

 

6

 

ZF

 

Zero Flag

 

 

 

 

 

15

В

Дублирует ES

7

 

SF

 

Sign Flag

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Флаги и условия

Флаги ЦП

Программирование нелинейных алгоритмов

Слово состояния FPU и флаги ЦП

Обработка чисел с плавающей запятой

Команды и изменение флагов

 

МИЭТ, СПИНТех, КАИ

Передача управления (ветвления и циклы)

 

 

4 / 13

 

Команды и изменение флагов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Команда

 

CF

 

PF

AF

ZF

 

SF

 

 

 

 

OF

 

mov, xchg, push, pop

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

lea

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

movs, movz, cltq, cltd, ...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

add, sub/cmp, neg

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

inc, dec

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

imul, mul

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

?

?

?

 

 

 

 

 

 

?

 

 

 

 

 

 

 

 

 

idiv, div

 

?

?

?

?

 

 

 

 

 

 

?

 

 

 

 

?

 

 

and/test, or, xor, not

 

0

 

 

?

 

 

 

 

 

 

 

 

 

 

0

 

 

shr, sar, shl/sal

 

 

 

 

?

 

 

 

 

 

 

 

 

 

 

?

 

 

ror, rol

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

?

 

 

bt

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

?

?

?

 

 

 

 

 

 

?

 

 

 

 

?

 

 

clc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

stc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cmc

 

!CF

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f[u]comi[p]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f[u]com[p] + fnstsw + sahf

 

 

 

 

?

 

 

 

 

 

?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Флаги и условия

 

Флаги ЦП

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Программирование нелинейных алгоритмов

 

Слово состояния FPU и флаги ЦП

 

 

 

 

 

 

 

 

 

 

 

Обработка чисел с плавающей запятой

 

Команды и изменение флагов

 

 

 

 

 

 

 

 

 

 

 

Соседние файлы в папке АВС