Скачиваний:
57
Добавлен:
16.04.2013
Размер:
480.26 Кб
Скачать

6.2.4. Прикладной ia-32 регистрEflag

Регистр EFLAG(AR24) состоит из двух основных компонентов – арифметических флагов пользователя (CF,PF,AF,ZF,SF,OFиID) и системных управляющих флагов (TF,IF,IOPL,NT,RF,VM,AC,VIF,VIP). Нет арифметических или системных флагов связанных с выполнением инструкцийItanium. Когда программа типаItaniumзагружает этот прикладной регистр (AR24), тогда, если в зарезервированных битах будет записано не нулевое значение, то будет вызвана ошибка «Зарезервированный регистр/поле». См. раздел 10.3.2 «РегистрEFLAGсистемыIA-32» во втором томе.

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Резервировано (=0)

id

vip

vif

ac

vm

rf

0

nt

io

pl

of

df

if

tf

sf

zf

0

af

0

pf

1

cf

63

62

61

60

59

58

57

56

55

54

53

52

51

50

49

48

47

46

45

44

43

42

41

40

39

38

37

36

35

34

33

32

Резервировано (установить в 0)

Рис.6.7. IA-32 регистрEFLAG(AR24).

Арифметические флаги используются набором инструкций IA-32 для отображения состояния операцийIA-32, управления строковыми операциямиIA-32 и управления условиями переходов для инструкцийIA-32. Эти флаги игнорируютсяItaniumинструкциями. Флаги ID, OF, DF, SF, ZF, AF, PF и CF описаны в Intel Architecture Software Developer's Manual.

Табл. 6.5. Поля IA-32 регистраEFLAGS

EFLAGA

Биты

Описание

cf

0

IA-32 флаг переноса. Подробнее см. вIASDMB

1

Игнорируется. – Запись игнорируется, чтение возвращает 0 и для IA-32, и дляItaniumинструкций.

3,5,

15

Игнорируется. – Запись игнорируется, чтение возвращает 0 и для IA-32, и дляItaniumинструкций. Программа должна установить эти биты в 0.

pf

2

IA-32 флаг паритета. Подробнее см. вIASDMB

af

4

IA-32 флаг дополнительного переноса. Подробнее см. вIASDMB

zf

6

IA-32 флаг нулевого результата. Подробнее см. вIASDMB

sf

7

IA-32 флаг знака. Подробнее см. вIASDMB

tf

8

См. раздел 10.3.2 «Регистр EFLAGсистемыIA-32» во втором томе.

if

9

df

10

IA-32 флаг направления. Подробнее см. вIASDMB

of

11

IA-32 флаг переполнения. Подробнее см. вIASDMB

iopl

13:12

См. раздел 10.3.2 «Регистр EFLAGсистемыIA-32» во втором томе.

nt

14

rf

16

vm

17

ac

18

vif

19

vip

20

id

21

63:22

Резервировано, должно быть установлено в 0

  1. При входе в набор инструкций IA-32 все биты могут быть прочитаны последующими инструкциями IA-32, после выхода из набора инструкций IA-32 эти биты показывают результаты всех предшествующих инструкций IA-32. Ни один из битов EFLAG не изменяет поведение Itanium инструкций при выполнении.

  2. IASDM – это Intel Architecture Software Developer's Manual.