Intel 253668-032US ユーザーズマニュアル

ページ / 806
Vol. 3   12-3
INTEL
®
 MMX
 TECHNOLOGY SYSTEM PROGRAMMING
When the EMMS instruction is executed, each tag field in the x87 FPU tag word is 
set to 11B (empty).
Each time an MMX instruction is executed, the TOS value is set to 000B.
Execution of MMX instructions does not affect the other bits in the x87 FPU status 
word (bits 0 through 10 and bits 14 and 15) or the contents of the other x87 FPU 
registers that comprise the x87 FPU state (the x87 FPU control word, instruction 
pointer, data pointer, or opcode registers). 
Table 12-2 summarizes the effects of the MMX instructions on the x87 FPU state.
12.2.1 
Effect of MMX, x87 FPU, FXSAVE, and FXRSTOR 
Instructions on the x87 FPU Tag Word
Table 12-3 summarizes the effect of MMX and x87 FPU instructions and the FXSAVE 
and FXRSTOR instructions on the tags in the x87 FPU tag word and the corresponding 
tags in an image of the tag word stored in memory.
The values in the fields of the x87 FPU tag word do not affect the contents of the MMX 
registers or the execution of MMX instructions. However, the MMX instructions do 
modify the contents of the x87 FPU tag word, as is described in Section 12.2, “The 
MMX State and MMX Register Aliasing.”
 These modifications may affect the operation 
of the x87 FPU when executing x87 FPU instructions, if the x87 FPU state is not 
initialized or restored prior to beginning x87 FPU instruction execution.
Note that the FSAVE, FXSAVE, and FSTENV instructions (which save x87 FPU state 
information) read the x87 FPU tag register and contents of each of the floating-point 
registers, determine the actual tag values for each register (empty, nonzero, zero, or 
special), and store the updated tag word in memory. After executing these instruc-
tions, all the tags in the x87 FPU tag word are set to empty (11B). Likewise, the 
EMMS instruction clears MMX state from the MMX/floating-point registers by setting 
all the tags in the x87 FPU tag word to 11B.
Table 12-2.  Effects of MMX Instructions on x87 FPU State
MMX 
Instruction 
Type
x87 FPU Tag 
Word
TOS Field of 
x87 FPU 
Status 
Word
Other x87 
FPU Registers
Bits 64 
Through 79 of 
x87 FPU Data 
Registers
Bits 0 
Through 63 of 
x87 FPU Data 
Registers
Read from 
MMX register
All tags set 
to 00B (Valid)
000B
Unchanged
Unchanged
Unchanged
Write to MMX 
register
All tags set 
to 00B (Valid)
000B
Unchanged
Set to all 1s
Overwritten 
with MMX data
EMMS
All fields set 
to 11B 
(Empty)
000B
Unchanged
Unchanged
Unchanged