home *** CD-ROM | disk | FTP | other *** search
/ CD-X 1 / cdx_01.iso / demodisc / tyrant / docs / 386code / intel.386 < prev   
Encoding:
Text File  |  1994-01-20  |  18.6 KB  |  675 lines

  1. Table of Contents
  2.  
  3. Chapter 1  Introduction to the 80386
  4.  
  5. 1.1  Organization of This Manual
  6.       1.1.1  Part I ── Applications Programming
  7.       1.1.2  Part II ── Systems Programming
  8.       1.1.3  Part III ── Compatibility
  9.       1.1.4  Part IV ── Instruction Set
  10.       1.1.5  Appendices
  11.  
  12. 1.2  Related Literature
  13. 1.3  Notational Conventions
  14.       1.3.1  Data-Structure Formats
  15.       1.3.2  Undefined Bits and Software Compatibility
  16.       1.3.3  Instruction Operands
  17.       1.3.4  Hexadecimal Numbers
  18.       1.3.5  Sub- and Super-Scripts
  19.  
  20.                      PART I    APPLICATIONS PROGRAMMING                   
  21.  
  22. Chapter 2  Basic Programming Model
  23.  
  24. 2.1  Memory Organization and Segmentation
  25.       2.1.1  The"Flat" Model
  26.       2.1.2  The Segmented Model
  27.  
  28. 2.2  Data Types
  29. 2.3  Registers
  30.       2.3.1  General Registers
  31.       2.3.2  Segment Registers
  32.       2.3.3  Stack Implementation
  33.       2.3.4  Flags Register
  34.               2.3.4.1  Status Flags
  35.               2.3.4.2  Control Flag
  36.               2.3.4.3  Instruction Pointer
  37.  
  38. 2.4  Instruction Format
  39. 2.5  Operand Selection
  40.       2.5.1  Immediate Operands
  41.       2.5.2  Register Operands
  42.       2.5.3  Memory Operands
  43.               2.5.3.1  Segment Selection
  44.               2.5.3.2  Effective-Address Computation
  45.  
  46. 2.6  Interrupts and Exceptions
  47.  
  48. Chapter 3  Applications Instruction Set
  49.  
  50. 3.1  Data Movement Instructions
  51.       3.1.1  General-Purpose Data Movement Instructions
  52.       3.1.2  Stack Manipulation Instructions
  53.       3.1.3  Type Conversion Instructions
  54.  
  55. 3.2  Binary Arithmetic Instructions
  56.       3.2.1  Addition and Subtraction Instructions
  57.       3.2.2  Comparison and Sign Change Instruction
  58.       3.2.3  Multiplication Instructions
  59.       3.2.4  Division Instructions
  60.  
  61. 3.3  Decimal Arithmetic Instructions
  62.       3.3.1  Packed BCD Adjustment Instructions
  63.       3.3.2  Unpacked BCD Adjustment Instructions
  64.  
  65. 3.4  Logical Instructions
  66.       3.4.1  Boolean Operation Instructions
  67.       3.4.2  Bit Test and Modify Instructions
  68.       3.4.3  Bit Scan Instructions
  69.       3.4.4  Shift and Rotate Instructions
  70.               3.4.4.1  Shift Instructions
  71.               3.4.4.2  Double-Shift Instructions
  72.               3.4.4.3  Rotate Instructions
  73.               3.4.4.4  Fast"bit-blt" Using Double Shift
  74.                          Instructions
  75.               3.4.4.5  Fast Bit-String Insert and Extract
  76.  
  77.       3.4.5  Byte-Set-On-Condition Instructions
  78.       3.4.6  Test Instruction
  79.  
  80. 3.5  Control Transfer Instructions
  81.       3.5.1  Unconditional Transfer Instructions
  82.               3.5.1.1  Jump Instruction
  83.               3.5.1.2  Call Instruction
  84.               3.5.1.3  Return and Return-From-Interrupt Instruction
  85.  
  86.       3.5.2  Conditional Transfer Instructions
  87.               3.5.2.1  Conditional Jump Instructions
  88.               3.5.2.2  Loop Instructions
  89.               3.5.2.3  Executing a Loop or Repeat Zero Times
  90.  
  91.       3.5.3  Software-Generated Interrupts
  92.  
  93. 3.6  String and Character Translation Instructions
  94.       3.6.1  Repeat Prefixes
  95.       3.6.2  Indexing and Direction Flag Control
  96.       3.6.3  String Instructions
  97.  
  98. 3.7  Instructions for Block-Structured Languages
  99. 3.8  Flag Control Instructions
  100.       3.8.1  Carry and Direction Flag Control Instructions
  101.       3.8.2  Flag Transfer Instructions
  102.  
  103. 3.9  Coprocessor Interface Instructions
  104. 3.10 Segment Register Instructions
  105.       3.10.1  Segment-Register Transfer Instructions
  106.       3.10.2  Far Control Transfer Instructions
  107.       3.10.3  Data Pointer Instructions
  108.  
  109. 3.11  Miscellaneous Instructions
  110.        3.11.1  Address Calculation Instruction
  111.        3.11.2  No-Operation Instruction
  112.        3.11.3  Translate Instruction
  113.  
  114.                        PART II    SYSTEMS PROGRAMMING                     
  115.  
  116. Chapter 4  Systems Architecture
  117.  
  118. 4.1  Systems Registers
  119.       4.1.1  Systems Flags
  120.       4.1.2  Memory-Management Registers
  121.       4.1.3  Control Registers
  122.       4.1.4  Debug Register
  123.       4.1.5  Test Registers
  124.  
  125. 4.2  Systems Instructions
  126.  
  127. Chapter 5  Memory Management
  128.  
  129. 5.1  Segment Translation
  130.       5.1.1  Descriptors
  131.       5.1.2  Descriptor Tables
  132.       5.1.3  Selectors
  133.       5.1.4  Segment Registers
  134.  
  135. 5.2  Page Translation
  136.       5.2.1  Page Frame
  137.       5.2.2  Linear Address
  138.       5.2.3  Page Tables
  139.       5.2.4  Page-Table Entries
  140.               5.2.4.1  Page Frame Address
  141.               5.2.4.2  Present Bit
  142.               5.2.4.3  Accessed and Dirty Bits
  143.               5.2.4.4  Read/Write and User/Supervisor Bits
  144.  
  145.       5.2.5  Page Translation Cache
  146.  
  147. 5.3  Combining Segment and Page Translation
  148.       5.3.1  "Flat" Architecture
  149.       5.3.2  Segments Spanning Several Pages
  150.       5.3.3  Pages Spanning Several Segments
  151.       5.3.4  Non-Aligned Page and Segment Boundaries
  152.       5.3.5  Aligned Page and Segment Boundaries
  153.       5.3.6  Page-Table per Segment
  154.  
  155. Chapter 6  Protection
  156.  
  157. 6.1  Why Protection?
  158. 6.2  Overview of 80386 Protection Mechanisms
  159. 6.3  Segment-Level Protection
  160.       6.3.1  Descriptors Store Protection Parameters
  161.               6.3.1.1  Type Checking
  162.               6.3.1.2  Limit Checking
  163.               6.3.1.3  Privilege Levels
  164.  
  165.       6.3.2  Restricting Access to Data
  166.               6.3.2.1  Accessing Data in Code Segments
  167.  
  168.       6.3.3  Restricting Control Transfers
  169.       6.3.4  Gate Descriptors Guard Procedure Entry Points
  170.               6.3.4.1  Stack Switching
  171.               6.3.4.2  Returning from a Procedure
  172.  
  173.       6.3.5  Some Instructions are Reserved for Operating System
  174.               6.3.5.1  Privileged Instructions
  175.               6.3.5.2  Sensitive Instructions
  176.  
  177.       6.3.6  Instructions for Pointer Validation
  178.               6.3.6.1  Descriptor Validation
  179.               6.3.6.2  Pointer Integrity and RPL
  180.  
  181. 6.4  Page-Level Protection
  182.       6.4.1  Page-Table Entries Hold Protection Parameters
  183.               6.4.1.1  Restricting Addressable Domain
  184.               6.4.1.2  Type Checking
  185.  
  186.       6.4.2  Combining Protection of Both Levels of Page Tables
  187.       6.4.3  Overrides to Page Protection
  188.  
  189. 6.5  Combining Page and Segment Protection
  190.  
  191. Chapter 7  Multitasking
  192.  
  193. 7.1  Task State Segment
  194. 7.2  TSS Descriptor
  195. 7.3  Task Register
  196. 7.4  Task Gate Descriptor
  197. 7.5  Task Switching
  198. 7.6  Task Linking
  199.       7.6.1  Busy Bit Prevents Loops
  200.       7.6.2  Modifying Task Linkages
  201.  
  202. 7.7  Task Address Space
  203.       7.7.1  Task Linear-to-Physical Space Mapping
  204.       7.7.2  Task Logical Address Space
  205.  
  206. Chapter 8    Input/Output
  207.  
  208. 8.1  I/O Addressing
  209.       8.1.1  I/O Address Space
  210.       8.1.2  Memory-Mapped I/O
  211.  
  212. 8.2  I/O Instructions
  213.       8.2.1  Register I/O Instructions
  214.       8.2.2  Block I/O Instructions
  215.  
  216. 8.3  Protection and I/O
  217.       8.3.1  I/O Privilege Level
  218.       8.3.2  I/O Permission Bit Map
  219.  
  220. Chapter 9  Exceptions and Interrupts
  221.  
  222. 9.1  Identifying Interrupts
  223. 9.2  Enabling and Disabling Interrupts
  224.       9.2.1  NMI Masks Further NMls
  225.       9.2.2  IF Masks INTR
  226.       9.2.3  RF Masks Debug Faults
  227.       9.2.4  MOV or POP to SS Masks Some Interrupts and Exceptions
  228.  
  229. 9.3  Priority Among Simultaneous Interrupts and Exceptions
  230. 9.4  Interrupt Descriptor Table
  231. 9.5  IDT Descriptors
  232. 9.6  Interrupt Tasks and Interrupt Procedures
  233.       9.6.1  Interrupt Procedures
  234.               9.6.1.1  Stack of Interrupt Procedure
  235.               9.6.1.2  Returning from an Interrupt Procedure
  236.               9.6.1.3  Flags Usage by Interrupt Procedure
  237.               9.6.1.4  Protection in Interrupt Procedures
  238.  
  239.       9.6.2  Interrupt Tasks
  240.  
  241. 9.7  Error Code
  242. 9.8  Exception Conditions
  243.       9.8.1  Interrupt 0 ── Divide Error
  244.       9.8.2  Interrupt 1 ── Debug Exceptions
  245.       9.8.3  Interrupt 3 ── Breakpoint
  246.       9.8.4  Interrupt 4 ── Overflow
  247.       9.8.5  Interrupt 5 ── Bounds Check
  248.       9.8.6  Interrupt 6 ── Invalid Opcode
  249.       9.8.7  Interrupt 7 ── Coprocessor Not Available
  250.       9.8.8  Interrupt 8 ── Double Fault
  251.       9.8.9  Interrupt 9 ── Coprocessor Segment Overrun
  252.       9.8.10 Interrupt 10 ── Invalid TSS
  253.       9.8.11 Interrupt 11 ── Segment Not Present
  254.       9.8.12 Interrupt 12 ── Stack Exception
  255.       9.8.13 Interrupt 13 ── General Protection Exception
  256.       9.8.14 Interrupt 14 ── Page Fault
  257.               9.8.14.1  Page Fault during Task Switch
  258.               9.8.14.2  Page Fault with Inconsistent Stack Pointer
  259.  
  260.       9.8.15 Interrupt 16 ── Coprocessor Error
  261.  
  262. 9.9  Exception Summary
  263.  
  264. 9.10  Error Code Summary
  265.  
  266. Chapter 10  Initialization
  267.  
  268. 10.1  Processor State after Reset
  269. 10.2  Software Initialization for Real-Address Mode
  270.        10.2.1  Stack
  271.        10.2.2  Interrupt Table
  272.        10.2.3  First Instructions
  273.  
  274. 10.3  Switching to Protected Mode
  275. 10.4  Software Initialization for Protected Mode
  276.        10.4.1  Interrupt Descriptor Table
  277.        10.4.2  Stack
  278.        10.4.3  Global Descriptor Table
  279.        10.4.4  Page Tables
  280.        10.4.5  First Task
  281.  
  282. 10.5  Initialization Example
  283. 10.6  TLB Testing
  284.        10.6.1  Structure of the TLB
  285.        10.6.2  Test Registers
  286.        10.6.3  Test Operations
  287.  
  288. Chapter 11  Coprocessing and Multiprocessing
  289.  
  290. 11.1  Coprocessing
  291.        11.1.1  Coprocessor Identification
  292.        11.1.2  ESC and WAIT Instructions
  293.        11.1.3  EM and MP Flags
  294.        11.1.4  The Task-Switched Flag
  295.        11.1.5  Coprocessor Exceptions
  296.                 11.1.5.1  Interrupt 7 ── Coprocessor Not Available
  297.                 11.1.5.2  Interrupt 9 ── Coprocessor Segment Overrun
  298.                 11.1.5.3  Interrupt 16 ── Coprocessor Error
  299.  
  300. 11.2  General Multiprocessing
  301.        11.2.1  LOCK and the LOCK# Signal
  302.        11.2.2  Automatic Locking
  303.        11.2.3  Cache Considerations
  304.  
  305. Chapter 12  Debugging
  306.  
  307. 12.1  Debugging Features of the Architecture
  308. 12.2  Debug Registers
  309.        12.2.1  Debug Address Registers (DRO-DR3)
  310.        12.2.2  Debug Control Register (DR7)
  311.        12.2.3  Debug Status Register (DR6)
  312.        12.2.4  Breakpoint Field Recognition
  313.  
  314. 12.3  Debug Exceptions
  315.        12.3.1  Interrupt 1 ── Debug Exceptions
  316.                 12.3.1.1  Instruction Address Breakpoint
  317.                 12.3.1.2  Data Address Breakpoint
  318.                 12.3.1.3  General Detect Fault
  319.                 12.3.1.4  Single-Step Trap
  320.                 12.3.1.5  Task Switch Breakpoint
  321.  
  322.        12.3.2  Interrupt 3 ── Breakpoint Exception
  323.  
  324.                           PART III    COMPATIBILITY                       
  325.  
  326. Chapter 13  Executing 80286 Protected-Mode Code
  327.  
  328. 13.1  80286 Code Executes as a Subset of the 80386
  329. 13.2  Two Ways to Execute 80286 Tasks
  330. 13.3  Differences from 80286
  331.        13.3.1  Wraparound of 80286 24-Bit Physical Address Space
  332.        13.3.2  Reserved Word of Descriptor
  333.        13.3.3  New Descriptor Type Codes
  334.        13.3.4  Restricted Semantics of LOCK
  335.        13.3.5  Additional Exceptions
  336.  
  337. Chapter 14  80386 Real-Address Mode
  338.  
  339. 14.1  Physical Address Formation
  340. 14.2  Registers and Instructions
  341. 14.3  Interrupt and Exception Handling
  342. 14.4  Entering and Leaving Real-Address Mode
  343.        14.4.1  Switching to Protected Mode
  344.  
  345. 14.5  Switching Back to Real-Address Mode
  346. 14.6  Real-Address Mode Exceptions
  347. 14.7  Differences from 8086
  348. 14.8  Differences from 80286 Real-Address Mode
  349.        14.8.1  Bus Lock
  350.        14.8.2  Location of First Instruction
  351.        14.8.3  Initial Values of General Registers
  352.        14.8.4  MSW Initialization
  353.  
  354. Chapter 15  Virtual 8088 Mode
  355.  
  356. 15.1  Executing 8086 Code
  357.        15.1.1  Registers and Instructions
  358.        15.1.2  Linear Address Formation
  359.  
  360. 15.2  Structure of a V86 Task
  361.        15.2.1  Using Paging for V86 Tasks
  362.        15.2.2  Protection within a V86 Task
  363.  
  364. 15.3  Entering and Leaving V86 Mode
  365.        15.3.1  Transitions Through Task Switches
  366.        15.3.2  Transitions Through Trap Gates and Interrupt Gates
  367.  
  368. 15.4  Additional Sensitive Instructions
  369.        15.4.1  Emulating 8086 Operating System Calls
  370.        15.4.2  Virtualizing the Interrupt-Enable Flag
  371.  
  372. 15.5  Virtual I/O
  373.        15.5.1  I/O-Mapped I/O
  374.        15.5.2  Memory-Mapped I/O
  375.        15.5.3  Special I/O Buffers
  376.  
  377. 15.6  Differences from 8086
  378. 15.7  Differences from 80286 Real-Address Mode
  379.  
  380. Chapter 16  Mixing 16-Bit and 32-Bit Code
  381.  
  382. 16.1  How the 80386 Implements 16-Bit and 32-Bit Features
  383. 16.2  Mixing 32-Bit and 16-Bit Operations
  384. 16.3  Sharing Data Segments among Mixed Code Segments
  385. 16.4  Transferring Control among Mixed Code Segments
  386.        16.4.1  Size of Code-Segment Pointer
  387.        16.4.2  Stack Management for Control Transfers
  388.                 16.4.2.1  Controlling the Operand-Size for a CALL
  389.                 16.4.2.2  Changing Size of Call
  390.  
  391.        16.4.3  Interrupt Control Transfers
  392.        16.4.4  Parameter Translation
  393.        16.4.5  The Interface Procedure
  394.  
  395.                          PART IV    INSTRUCTION SET                       
  396.  
  397. Chapter 17  80386 Instruction Set
  398.  
  399. 17.1  Operand-Size and Address-Size Attributes
  400.        17.1.1  Default Segment Attribute
  401.        17.1.2  Operand-Size and Address-Size Instruction Prefixes
  402.        17.1.3  Address-Size Attribute for Stack
  403.  
  404. 17.2  Instruction Format
  405.        17.2.1  ModR/M and SIB Bytes
  406.        17.2.2  How to Read the Instruction Set Pages
  407.                 17.2.2.1  Opcode
  408.                 17.2.2.2  Instruction
  409.                 17.2.2.3  Clocks
  410.                 17.2.2.4  Description
  411.                 17.2.2.5  Operation
  412.                 17.2.2.6  Description
  413.                 17.2.2.7  Flags Affected
  414.                 17.2.2.8  Protected Mode Exceptions
  415.                 17.2.2.9  Real Address Mode Exceptions
  416.                 17.2.2.10 Virtual-8086 Mode Exceptions
  417.  
  418. Instruction Sets
  419.  
  420. AAA
  421. AAD
  422. AAM
  423. AAS
  424. ADC
  425. ADD
  426. AND
  427. ARPL
  428. BOUND
  429. BSF
  430. BSR
  431. BT
  432. BTC
  433. BTR
  434. BTS
  435. CALL
  436. CBW/CWDE
  437. CLC
  438. CLD
  439. CLI
  440. CLTS
  441. CMC
  442. CMP
  443. CMPS/CMPSB/CMPSW/CMPSD
  444. CWD/CDQ
  445. DAA
  446. DAS
  447. DEC
  448. DIV
  449. ENTER
  450. HLT
  451. IDIV
  452. IMUL
  453. IN
  454. INC
  455. INS/INSB/INSW/INSD
  456. INT/INTO
  457. IRET/IRETD
  458. Jcc
  459. JMP
  460. LAHF
  461. LAR
  462. LEA
  463. LEAVE
  464. LGDT/LIDT
  465. LGS/LSS/LDS/LES/LFS
  466. LLDT
  467. LMSW
  468. LOCK
  469. LODS/LODSB/LODSW/LODSD
  470. LOOP/LOOPcond
  471. LSL
  472. LTR
  473. MOV
  474. MOV
  475. MOVS/MOVSB/MOVSW/MOVSD
  476. MOVSX
  477. MOVZX
  478. MUL
  479. NEG
  480. NOP
  481. NOT
  482. OR
  483. OUT
  484. OUTS/OUTSB/OUTSW/OUTSD
  485. POP
  486. POPA/POPAD
  487. POPF/POPFD
  488. PUSH
  489. PUSHA/PUSHAD
  490. PUSHF/PUSHFD
  491. RCL/RCR/ROL/ROR
  492. REP/REPE/REPZ/REPNE/REPNZ
  493. RET
  494. SAHF
  495. SAL/SAR/SHL/SHR
  496. SBB
  497. SCAS/SCASB/SCASW/SCASD
  498. SETcc
  499. SGDT/SIDT
  500. SHLD
  501. SHRD
  502. SLDT
  503. SMSW
  504. STC
  505. STD
  506. STI
  507. STOS/STOSB/STOSW/STOSD
  508. STR
  509. SUB
  510. TEST
  511. VERR,VERW
  512. WAIT
  513. XCHG
  514. XLAT/XLATB
  515. XOR
  516.  
  517. Appendix A  Opcode Map
  518.  
  519. Appendix B  Complete Flag Cross-Reference
  520.  
  521. Appendix C  Status Flag Summary
  522.  
  523. Appendix D  Condition Codes
  524.  
  525.  
  526. Figures
  527.  
  528. 1-1     Example Data Structure
  529.  
  530. 2-1     Two-Component Pointer
  531. 2-2     Fundamental Data Types
  532. 2-3     Bytes, Words, and Doublewords in Memory
  533. 2-4     80386 Data Types
  534. 2-5     80386 Applications Register Set
  535. 2-6     Use of Memory Segmentation
  536. 2-7     80386 Stack
  537. 2-8     EFLAGS Register
  538. 2-9     Instruction Pointer Register
  539. 2-10    Effective Address Computation
  540.  
  541. 3-1     PUSH
  542. 3-2     PUSHA
  543. 3-3     POP
  544. 3-4     POPA
  545. 3-5     Sign Extension
  546. 3-6     SAL and SHL
  547. 3-7     SHR
  548. 3-8     SAR
  549. 3-9     Using SAR to Simulate IDIV
  550. 3-10    Shift Left Double
  551. 3-11    Shift Right Double
  552. 3-12    ROL
  553. 3-13    ROR
  554. 3-14    RCL
  555. 3-15    RCR
  556. 3-16    Formal Definition of the ENTER Instruction
  557. 3-17    Variable Access in Nested Procedures
  558. 3-18    Stack Frame for MAIN at Level 1
  559. 3-19    Stack Frame for Prooedure A
  560. 3-20    Stack Frame for Procedure B at Level 3 Called from A
  561. 3-21    Stack Frame for Procedure C at Level 3 Called from B
  562. 3-22    LAHF and SAHF
  563. 3-23    Flag Format for PUSHF and POPF
  564.  
  565. 4-1     Systems Flags of EFLAGS Register
  566. 4-2     Control Registers
  567.  
  568. 5-1     Address Translation Overview
  569. 5-2     Segment Translation
  570. 5-3     General Segment-Descriptor Format
  571. 5-4     Format of Not-Present Descriptor
  572. 5-5     Descriptor Tables
  573. 5-6     Format of a Selector
  574. 5-7     Segment Registers
  575. 5-8     Format of a Linear Address
  576. 5-9     Page Translation
  577. 5-10    Format of a Page Table Entry
  578. 5-11    Invalid Page Table Entry
  579. 5-12    80386 Addressing Mechanism
  580. 5-13    Descriptor per Page Table
  581.  
  582. 6-1     Protection Fields of Segment Descriptors
  583. 6-2     Levels of Privilege
  584. 6-3     Privilege Check for Data Access
  585. 6-4     Privilege Check for Control Transfer without Gate
  586. 6-5     Format of 80386 Call Gate
  587. 6-6     Indirect Transfer via Call Gate
  588. 6-7     Privilege Check via Call Gate
  589. 6-8     Initial Stack Pointers of TSS
  590. 6-9     Stack Contents after an Interievel Call
  591. 6-10    Protection Fields of Page Table Entries
  592.  
  593. 7-1     80386 32-Bit Task State Segment
  594. 7-2     TSS Descriptor for 32-Bit TSS
  595. 7-3     Task Register
  596. 7-4     Task Gate Descriptor
  597. 7-5     Task Gate Indirectly Identifies Task
  598. 7-6     Partially-Overlapping Linear Spaces
  599.  
  600. 8-1     Memory-Mapped I/O
  601. 8-2     I/O Address Bit Map
  602.  
  603. 9-1     IDT Register and Table
  604. 9-2     Pseudo-Descriptor Format for LIDT and SIDT
  605. 9-3     80386 IDT Gate Descriptors
  606. 9-4     Interrupt Vectoring for Procedures
  607. 9-5     Stack Layout after Exception of Interrupt
  608. 9-6     Interrupt Vectoring for Tasks
  609. 9-7     Error Code Format
  610. 9-8     Page-Fault Error Code Format
  611. 9-9     CR2 Format
  612.  
  613. 10-1    Contents of EDX after RESET
  614. 10-2    Initial Contents of CRO
  615. 10-3    TLB Structure
  616. 10-4    Test Registers
  617.  
  618. 12-1    Debug Registers
  619.  
  620. 14-1    Real-Address Mode Address Formation
  621.  
  622. 15-1    V86 Mode Address Formation
  623. 15-2    Entering and Leaving an 8086 Program
  624. 15-3    PL 0 Stack after Interrupt in V86 Task
  625.  
  626. 16-1    Stack after Far 16-Bit and 32-Bit Calls
  627.  
  628. 17-1    80386 Instruction Format
  629. 17-2    ModR/M and SIB Byte Formats
  630. 17-3    Bit Offset for BIT[EAX, 21]
  631. 17-4    Memory Bit Indexing
  632.  
  633.  
  634. Tables
  635.  
  636. 2-1      Default Segment Register Selection Rules
  637. 2-2      80386 Reserved Exceptions and Interrupts
  638.  
  639. 3-1      Bit Test and Modify Instructions
  640. 3-2      Interpretation of Conditional Transfers
  641.  
  642. 6-1      System and Gate Descriptor Types
  643. 6-2      Useful Combinations of E, G, and B Bits
  644. 6-3      Interievel Return Checks
  645. 6-4      Valid Descriptor Types for LSL
  646. 6-5      Combining Directory and Page Protection
  647.  
  648. 7-1      Checks Made during a Task Switch
  649. 7-2      Effect of Task Switch on BUSY, NT, and Back-Link
  650.  
  651. 9-1      Interrupt and Exception ID Assignments
  652. 9-2      Priority Among Simultaneous Interrupts and Exceptions
  653. 9-3      Double-Fault Detection Classes
  654. 9-4      Double-Fault Definition
  655. 9-5      Conditions That Invalidate the TSS
  656. 9-6      Exception Summary
  657. 9-7      Error-Code Summary
  658.  
  659. 10-1     Meaning of D, U, and W Bit Pairs
  660.  
  661. 12-1     Breakpeint Field Recognition Examples
  662. 12-2     Debug Exception Conditions
  663.  
  664. 14-1     80386 Real-Address Mode Exceptions
  665. 14-2     New 80386 Exceptions
  666.  
  667. 17-1     Effective Size Attributes
  668. 17-2     16-Bit Addressing Forms with the ModR/M Byte
  669. 17-3     32-Bit Addressing Forms with the ModR/M Byte
  670. 17-4     32-Bit Addressing Forms with the SIB Byte
  671. 17-5     Task Switch Times for Exceptions
  672. 17-6     80386 Exceptions
  673.  
  674.  
  675.