Intel IA-32 User Manual

Page 14

Advertising
background image

CONTENTS

xiv

Vol. 3A

PAGE

15.2

VIRTUAL-8086 MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-7

15.2.1

Enabling Virtual-8086 Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-9

15.2.2

Structure of a Virtual-8086 Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-9

15.2.3

Paging of Virtual-8086 Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-10

15.2.4

Protection within a Virtual-8086 Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-11

15.2.5

Entering Virtual-8086 Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-11

15.2.6

Leaving Virtual-8086 Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-13

15.2.7

Sensitive Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-14

15.2.8

Virtual-8086 Mode I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-14

15.2.8.1

I/O-Port-Mapped I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-14

15.2.8.2

Memory-Mapped I/O. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-15

15.2.8.3

Special I/O Buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-15

15.3

INTERRUPT AND EXCEPTION HANDLING
IN VIRTUAL-8086 MODE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-15

15.3.1

Class 1—Hardware Interrupt and Exception Handling
in Virtual-8086 Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-17

15.3.1.1

Handling an Interrupt or Exception Through a
Protected-Mode Trap or Interrupt Gate . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-17

15.3.1.2

Handling an Interrupt or Exception With an
8086 Program Interrupt or Exception Handler . . . . . . . . . . . . . . . . . . . . . . .15-19

15.3.1.3

Handling an Interrupt or Exception Through a Task Gate . . . . . . . . . . . . . .15-20

15.3.2

Class 2—Maskable Hardware Interrupt Handling in
Virtual-8086 Mode Using the Virtual Interrupt Mechanism . . . . . . . . . . . . . . . .15-20

15.3.3

Class 3—Software Interrupt Handling in Virtual-8086 Mode . . . . . . . . . . . . . . .15-23

15.3.3.1

Method 1: Software Interrupt Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-25

15.3.3.2

Methods 2 and 3: Software Interrupt Handling . . . . . . . . . . . . . . . . . . . . . . .15-26

15.3.3.3

Method 4: Software Interrupt Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-26

15.3.3.4

Method 5: Software Interrupt Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-26

15.3.3.5

Method 6: Software Interrupt Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-27

15.4

PROTECTED-MODE VIRTUAL INTERRUPTS . . . . . . . . . . . . . . . . . . . . . . . . . . 15-28

CHAPTER 16
MIXING 16-BIT AND 32-BIT CODE
16.1

DEFINING 16-BIT AND 32-BIT PROGRAM MODULES . . . . . . . . . . . . . . . . . . . . 16-2

16.2

MIXING 16-BIT AND 32-BIT OPERATIONS WITHIN A CODE SEGMENT . . . . . 16-2

16.3

SHARING DATA AMONG MIXED-SIZE CODE SEGMENTS . . . . . . . . . . . . . . . . 16-3

16.4

TRANSFERRING CONTROL AMONG MIXED-SIZE CODE SEGMENTS . . . . . . 16-4

16.4.1

Code-Segment Pointer Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16-5

16.4.2

Stack Management for Control Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-5

16.4.2.1

Controlling the Operand-Size Attribute For a Call . . . . . . . . . . . . . . . . . . . . . 16-7

16.4.2.2

Passing Parameters With a Gate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-7

16.4.3

Interrupt Control Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-8

16.4.4

Parameter Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-8

16.4.5

Writing Interface Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-8

CHAPTER 17
IA-32 ARCHITECTURE COMPATIBILITY
17.1.

IA-32 PROCESSOR FAMILIES AND CATEGORIES . . . . . . . . . . . . . . . . . . . . . . 17-1

17.2.

RESERVED BITS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-2

17.3.

ENABLING NEW FUNCTIONS AND MODES . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-2

17.4.

DETECTING THE PRESENCE OF NEW FEATURES THROUGH SOFTWARE . 17-2

17.5.

INTEL MMX TECHNOLOGY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-3

Advertising