8-1
CHAPTER 8
PROGRAMMING WITH THE INTEL
MMX TECHNOLOGY
The Intel MMX technology comprises a set of extensions to the Intel Architecture (IA) that
are designed to greatly enhance the performance of advanced media and communications appli-
cations. These extensions (which include new registers, data types, and instructions) are
combined with a single-instruction, multiple-data (SIMD) execution model to accelerate the
performance of applications such as motion video, combined graphics with video, image
processing, audio synthesis, speech synthesis and compression, telephony, video conferencing,
and 2D and 3D graphics, which typically use compute-intensive algorithms to perform repeti-
tive operations on large arrays of simple, native data elements.
The MMX technology defines a simple and flexible software model, with no new mode or
operating-system visible state. All existing software will continue to run correctly, without
modification, on IA processors that incorporate the MMX technology, even in the presence
of existing and new applications that incorporate this technology.
The following sections of this chapter describe the MMX technologys basic programming
environment, including the MMX register set, data types, and instruction set. Detailed
descriptions of the MMX instructions are provided in Chapter 3, Instruction Set Reference, of
the Intel Architecture Software Developers Manual, Volume 2. The manner in which the
MMX technology is integrated into the IA system programming model is described in
Chapter 10, MMX Technology System Programming, in the Intel Architecture Software Devel-
opers Manual, Volume 3.
8.1.OVERVIEW OF THE MMX TECHNOLOGY PROGRAMMING
ENVIRONMENT
MMX technology provides the following new extensions to the IA programming environ-
ment.
Eight MMX registers (MM0 through MM7).
Four MMX data types (packed bytes, packed words, packed doublewords, and
quadword).
The MMX instruction set.
The MMX registers and data types are described in the following sections. Refer to Section
8.3., Overview of the MMX Instruction Set, for an overview of the MMX instructions.