Intel 253668-032US Benutzerhandbuch

Seite von 806
19-8   Vol. 3
ARCHITECTURE COMPATIBILITY
The following flags were added to the EFLAGS register in the Pentium processor:
VIF (virtual interrupt flag), bit 19.
VIP (virtual interrupt pending), bit 20. 
ID (identification flag), bit 21. 
The AC flag (bit 18) was added to the EFLAGS register in the Intel486 processor.
19.16.1  Using EFLAGS Flags to Distinguish Between 32-Bit IA-32 
Processors
The following bits in the EFLAGS register that can be used to differentiate between 
the 32-bit IA-32 processors:
Bit 18 (the AC flag) can be used to distinguish an Intel386 processor from the P6 
family, Pentium, and Intel486 processors. Since it is not implemented on the 
Intel386 processor, it will always be clear.
Bit 21 (the ID flag) indicates whether an application can execute the CPUID 
instruction. The ability to set and clear this bit indicates that the processor is a P6 
family or Pentium processor. The CPUID instruction can then be used to 
determine which processor. 
Bits 19 (the VIF flag) and 20 (the VIP flag) will always be zero on processors that 
do not support virtual mode extensions, which includes all 32-bit processors prior 
to the Pentium processor.
19.17 STACK 
OPERATIONS
This section identifies the differences in stack implementation between the various 
IA-32 processors.
19.17.1 PUSH 
SP
The P6 family, Pentium, Intel486, Intel386, and Intel 286 processors push a different 
value on the stack for a PUSH SP instruction than the 8086 processor. The 32-bit 
processors push the value of the SP register before it is decremented as part of the 
push operation; the 8086 processor pushes the value of the SP register after it is 
decremented. If the value pushed is important, replace PUSH SP instructions with the 
following three instructions:
PUSH BP
MOV  BP, SP