v
TABLE OF CONTENTS
CHAPTER 6
INSTRUCTION SET SUMMARY
6.1.NEW INTEL ARCHITECTURE INSTRUCTIONS. . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1
6.1.1.New Instructions Introduced with the Streaming SIMD Extensions. . . . . . . . . . . 6-1
6.1.2.New Instructions Introduced with the MMX Technology . . . . . . . . . . . . . . . . . 6-1
6.1.3.New Instructions in the Pentium® Pro Processor . . . . . . . . . . . . . . . . . . . . . . . . 6-2
6.1.4.New Instructions in the Pentium® Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2
6.1.5.New Instructions in the Intel486 Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3
6.2.INSTRUCTION SET LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3
6.2.1.Integer Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3
6.2.1.1.Data Transfer Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3
6.2.1.2.Binary Arithmetic Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5
6.2.1.3.Decimal Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5
6.2.1.4.Logic Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5
6.2.1.5.Shift and Rotate Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5
6.2.1.6.Bit and Byte Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6
6.2.1.7.Control Transfer Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-7
6.2.1.8.String Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-8
6.2.1.9.Flag Control Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-9
6.2.1.10.Segment Register Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-9
6.2.1.11.Miscellaneous Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-9
6.2.2.MMX Technology Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-10
6.2.2.1.MMX Data Transfer Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-10
6.2.2.2.MMX Conversion Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-10
6.2.2.3.MMX Packed Arithmetic Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-10
6.2.2.4.MMX Comparison Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-11
6.2.2.5.MMX Logic Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-11
6.2.2.6.MMX Shift and Rotate Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-11
6.2.2.7.MMX State Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-12
6.2.3.Floating-Point Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-12
6.2.3.1.Data Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-12
6.2.3.2.Basic Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-13
6.2.3.3.Comparison. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14
6.2.3.4.Transcendental. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14
6.2.3.5.Load Constants. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-15
6.2.3.6.FPU Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-15
6.2.4.System Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16
6.2.5.Streaming SIMD Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-17
6.2.5.1.Streaming SIMD Extensions Data Transfer Instructions. . . . . . . . . . . . . . . . 6-17
6.2.5.2.Streaming SIMD Extensions Conversion Instructions. . . . . . . . . . . . . . . . . . 6-17
6.2.5.3.Streaming SIMD Extensions Packed Arithmetic Instructions . . . . . . . . . . . . 6-18
6.2.5.4.Streaming SIMD Extensions Comparison Instructions. . . . . . . . . . . . . . . . . 6-18
6.2.5.5.Streaming SIMD Extensions Logical Instructions. . . . . . . . . . . . . . . . . . . . . 6-18
6.2.5.6.Streaming SIMD Extensions Data Shuffle Instructions. . . . . . . . . . . . . . . . . 6-19
6.2.5.7.Streaming SIMD Extensions Additional SIMD-Integer Instructions. . . . . . . . 6-19
6.2.5.8.Streaming SIMD Extensions Cacheability Control Instructions. . . . . . . . . . . 6-19
6.2.5.9.Streaming SIMD Extensions State Management Instructions . . . . . . . . . . . 6-19
6.3.DATA MOVEMENT INSTRUCTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-20
6.3.1.General-Purpose Data Movement Instructions . . . . . . . . . . . . . . . . . . . . . . . . . 6-20
6.3.1.1.Move Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-20
6.3.1.2.Conditional Move Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-20
6.3.1.3.Exchange Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-21