Metropoli BBS
VIEWER: opt32.doc MODE: BINARY (HEX)
==============================================================================================================================================
OFFSET    00 01 02 03 04 05 06 07  08 09 0A 0B 0C 0D 0E 0F  10 11 12 13 14 15 16 17  18 19 1A 1B 1C 1D 1E 1F
----------------------------------------------------------------------------------------------------------------------------------------------
00000000  DB A5 2D 00 78 40 09 04  00 00 08 00 2D 00 00 00  00 00 00 00 00 00 00 00  80 01 00 00 0E 30 01 00  Ñ-.x@...-...........Ç..0.
00000020  52 B6 01 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 FF 2C 01 00  41 00 00 00 4C 01 00 00  R................. ,.A...L..
00000040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 A4 01 00 6E 08 00 A4  .........................ñ.n.ñ
00000060  01 00 6E 08 6E AC 01 00  0A 00 78 AC 01 00 0C 00  B8 AE 01 00 00 00 B8 AE  01 00 00 00 B8 AE 01 00  .nn¼..x¼..«...«...«.
00000080  22 00 DA AE 01 00 42 02  1C B1 01 00 00 00 1C B1  01 00 00 00 1C B1 01 00  00 00 1C B1 01 00 28 00  ".«.B..........(.
000000A0  44 B1 01 00 7C 00 C0 B1  01 00 D0 00 1C B1 01 00  00 00 90 B2 01 00 95 00  25 B3 01 00 BE 00 E3 B3  D.|......É.ò.%..π
000000C0  01 00 4C 00 2F B4 01 00  00 00 2F B4 01 00 00 00  2F B4 01 00 00 00 2F B4  01 00 2D 00 5C B4 01 00  .L./.../.../.../.-.\.
000000E0  28 00 84 B4 01 00 1C 00  A0 B4 01 00 02 00 A2 B4  01 00 00 00 A2 B4 01 00  00 00 A2 B4 01 00 25 00  (.ä..á..ó...ó...ó.%.
00000100  C7 B4 01 00 00 01 C7 B5  01 00 00 00 C7 B5 01 00  1E 00 E5 B5 01 00 34 00  19 B6 01 00 39 00 E5 B5  .......σ.4..9.σ
00000120  01 00 00 00 84 AC 01 00  34 02 00 00 00 00 00 00  E5 B5 01 00 00 00 E5 B5  01 00 00 00 00 00 9C 00  ...ä¼.4......σ...σ.....£.
00000140  B0 00 14 00 22 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  .."...........................
00000160  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................................
00000180  41 50 2D 35 30 30 0D 0A  0D 0A 41 70 70 6C 69 63  61 74 69 6F 6E 0D 0A 4E  6F 74 65 0D 0A 0D 0A 0D  AP-500ApplicationNote
000001A0  0A 4F 70 74 69 6D 69 7A  61 74 69 6F 6E 73 20 66  6F 72 20 49 6E 74 65 6C  27 73 20 0D 0A 33 32 2D  Optimizations for Intel's 32-
000001C0  42 69 74 20 50 72 6F 63  65 73 73 6F 72 73 0D 0A  0D 0A 0D 0A 0D 0A 0D 0A  0D 0A 0D 0A 0D 0A 0D 0A  Bit Processors
000001E0  0D 0A 0D 0A 0D 0A 0D 0A  0D 0A 0D 0A 0D 0A 0D 0A  0D 0A 0D 0A 0D 0A 0D 0A  0D 0A 0D 0A 0D 0A 0D 0A  
00000200  0D 0A 0D 0A 46 65 62 72  75 61 72 79 20 31 39 39  34 0D 0A 0D 0A 0D 0A 0D  0A 0D 0A 0D 0A 54 68 65  February 1994The
00000220  20 66 6F 6C 6C 6F 77 69  6E 67 20 61 72 65 20 74  72 61 64 65 6D 61 72 6B  73 20 6F 66 20 49 6E 74   following are trademarks of Int
00000240  65 6C 20 43 6F 72 70 6F  72 61 74 69 6F 6E 20 61  6E 64 20 6D 61 79 20 6F  6E 6C 79 20 62 65 20 75  el Corporation and may only be u
00000260  73 65 64 20 74 6F 20 69  64 65 6E 74 69 66 79 20  49 6E 74 65 6C 20 70 72  6F 64 75 63 74 73 3A 0D  sed to identify Intel products:
00000280  0A 49 6E 74 65 6C 2C 20  49 6E 74 65 6C 33 38 36  2C 20 49 6E 74 65 6C 34  38 36 2C 20 69 34 38 36  Intel, Intel386, Intel486, i486
000002A0  2C 20 61 6E 64 20 50 65  6E 74 69 75 6D 0D 0A 0D  0A 0D 0A 0D 0A 0D 0A 0D  0A 0D 0A 0D 0A 0D 0A 0D  , and Pentium
000002C0  0A 0D 0A 0D 0A 0D 0A 0D  0A 0D 0A 0D 0A 0D 0A 0D  0A 0D 0A 0D 0A 0D 0A 0D  0A 0D 0A 0D 0A 0D 0A 0D  
000002E0  0A 0D 0A 0D 0A 0D 0A 0D  0A 0D 0A 0D 0A 49 6E 74  65 6C 20 43 6F 72 70 6F  72 61 74 69 6F 6E 20 6D  Intel Corporation m
00000300  61 6B 65 73 20 6E 6F 20  77 61 72 72 61 6E 74 79  20 66 6F 72 20 74 68 65  20 75 73 65 20 6F 66 20  akes no warranty for the use of 
00000320  69 74 73 20 70 72 6F 64  75 63 74 73 20 61 6E 64  20 61 73 73 75 6D 65 73  20 6E 6F 20 72 65 73 70  its products and assumes no resp
00000340  6F 6E 73 69 62 69 6C 69  74 79 20 66 6F 72 20 61  6E 79 20 65 72 72 6F 72  73 20 77 68 69 63 68 20  onsibility for any errors which 
00000360  6D 61 79 20 61 70 70 65  61 72 20 69 6E 20 74 68  69 73 20 64 6F 63 75 6D  65 6E 74 20 6E 6F 72 20  may appear in this document nor 
00000380  64 6F 65 73 20 69 74 20  6D 61 6B 65 20 61 20 63  6F 6D 6D 69 74 6D 65 6E  74 20 74 6F 20 75 70 64  does it make a commitment to upd
000003A0  61 74 65 20 74 68 65 20  69 6E 66 6F 72 6D 61 74  69 6F 6E 20 63 6F 6E 74  61 69 6E 65 64 20 68 65  ate the information contained he
000003C0  72 65 69 6E 2E 0D 0A 0D  0A 49 6E 74 65 6C 20 72  65 74 61 69 6E 73 20 74  68 65 20 72 69 67 68 74  rein.Intel retains the right
000003E0  20 74 6F 20 6D 61 6B 65  20 63 68 61 6E 67 65 73  20 74 6F 20 74 68 65 73  65 20 73 70 65 63 69 66   to make changes to these specif
00000400  69 63 61 74 69 6F 6E 73  20 61 74 20 61 6E 79 20  74 69 6D 65 2C 20 77 69  74 68 6F 75 74 20 6E 6F  ications at any time, without no
00000420  74 69 63 65 2E 0D 0A 0D  0A 43 6F 6E 74 61 63 74  20 79 6F 75 72 20 6C 6F  63 61 6C 20 49 6E 74 65  tice.Contact your local Inte
00000440  6C 20 73 61 6C 65 73 20  6F 66 66 69 63 65 20 6F  72 20 79 6F 75 72 20 64  69 73 74 72 69 62 75 74  l sales office or your distribut
00000460  6F 72 20 74 6F 20 6F 62  74 61 69 6E 20 74 68 65  20 6C 61 74 65 73 74 20  73 70 65 63 69 66 69 63  or to obtain the latest specific
00000480  61 74 69 6F 6E 73 20 62  65 66 6F 72 65 20 70 6C  61 63 69 6E 67 20 79 6F  75 72 20 70 72 6F 64 75  ations before placing your produ
000004A0  63 74 20 6F 72 64 65 72  2E 0D 0A 0D 0A 4D 44 53  20 69 73 20 61 6E 20 6F  72 64 65 72 69 6E 67 20  ct order.MDS is an ordering 
000004C0  63 6F 64 65 20 6F 6E 6C  79 20 61 6E 64 20 69 73  20 6E 6F 74 20 75 73 65  64 20 61 73 20 61 20 70  code only and is not used as a p
000004E0  72 6F 64 75 63 74 20 6E  61 6D 65 20 6F 72 20 74  72 61 64 65 6D 61 72 6B  20 6F 66 20 49 6E 74 65  roduct name or trademark of Inte
00000500  6C 20 43 6F 72 70 6F 72  61 74 69 6F 6E 2E 0D 0A  0D 0A 49 6E 74 65 6C 20  43 6F 72 70 6F 72 61 74  l Corporation.Intel Corporat
00000520  69 6F 6E 20 61 6E 64 20  49 6E 74 65 6C 27 73 20  46 41 53 54 50 41 54 48  20 61 72 65 20 6E 6F 74  ion and Intel's FASTPATH are not
00000540  20 61 66 66 69 6C 69 61  74 65 64 20 77 69 74 68  20 4B 69 6E 65 74 69 63  73 2C 20 61 20 64 69 76   affiliated with Kinetics, a div
00000560  69 73 69 6F 6E 20 6F 66  20 45 78 63 65 6C 61 6E  2C 20 49 6E 63 2E 20 6F  72 20 69 74 20 46 41 53  ision of Excelan, Inc. or it FAS
00000580  54 50 41 54 48 20 74 72  61 64 65 6D 61 72 6B 20  6F 72 20 70 72 6F 64 75  63 74 73 2E 0D 0A 0D 0A  TPATH trademark or products.
000005A0  2A 20 20 4F 74 68 65 72  20 62 72 61 6E 64 73 20  61 6E 64 20 6E 61 6D 65  73 20 61 72 65 20 74 68  *  Other brands and names are th
000005C0  65 20 70 72 6F 70 65 72  74 79 20 6F 66 20 74 68  65 69 72 20 72 65 73 70  65 63 74 69 76 65 20 6F  e property of their respective o
000005E0  77 6E 65 72 73 2E 0D 0A  0D 0A 41 64 64 69 74 69  6F 6E 61 6C 20 63 6F 70  69 65 73 20 6F 66 20 74  wners.Additional copies of t
00000600  68 69 73 20 64 6F 63 75  6D 65 6E 74 20 6F 72 20  6F 74 68 65 72 20 49 6E  74 65 6C 20 6C 69 74 65  his document or other Intel lite
00000620  72 61 74 75 72 65 20 6D  61 79 20 62 65 20 6F 62  74 61 69 6E 65 64 20 66  72 6F 6D 3A 0D 0A 0D 0A  rature may be obtained from:
00000640  09 09 49 6E 74 65 6C 20  43 6F 72 70 6F 72 61 74  69 6F 6E 0D 0A 09 09 4C  69 74 65 72 61 74 75 72  Intel CorporationLiteratur
00000660  65 20 53 61 6C 65 73 0D  0A 09 09 50 2E 4F 2E 20  42 6F 78 20 37 36 34 31  0D 0A 09 09 4D 74 2E 20  e SalesP.O. Box 7641Mt. 
00000680  50 72 6F 73 70 65 63 74  2C 20 49 4C 20 20 36 30  30 35 36 2D 37 36 34 31  0D 0A 0D 0A 09 09 6F 72  Prospect, IL  60056-7641or
000006A0  20 63 61 6C 6C 20 31 2D  38 30 30 2D 38 37 39 2D  34 36 38 33 0D 0A 0D 0A  0D 0A 0D 0A E3 20 49 4E   call 1-800-879-4683π IN
000006C0  54 45 4C 20 43 4F 52 50  4F 52 41 54 49 4F 4E 2C  20 31 39 39 33 0D 0A 0D  0A 0D 0A 0D 0A 0D 0A 0D  TEL CORPORATION, 1993
000006E0  0A 0D 0A 0D 0A 54 61 62  6C 65 20 6F 66 20 43 6F  6E 74 65 6E 74 73 0D 0A  0D 0A 0D 0A 13 54 4F 43  Table of ContentsTOC
00000700  20 5C 6F 14 31 2E 20 20  49 6E 74 72 6F 64 75 63  74 69 6F 6E 20 09 31 0D  0A 0D 0A 32 2E 20 20 4F   \o1.  Introduction 12.  O
00000720  76 65 72 76 69 65 77 20  6F 66 20 49 6E 74 65 6C  33 38 36 99 2C 20 49 6E  74 65 6C 34 38 36 99 2C  verview of Intel386Ö, Intel486Ö,
00000740  20 50 65 6E 74 69 75 6D  99 20 50 72 6F 63 65 73  73 6F 72 73 09 31 0D 0A  32 2E 31 2E 20 54 68 65   PentiumÖ Processors12.1. The
00000760  20 49 6E 74 65 6C 33 38  36 20 50 72 6F 63 65 73  73 6F 72 09 31 0D 0A 32  2E 31 2E 31 2E 20 20 49   Intel386 Processor12.1.1.  I
00000780  6E 73 74 72 75 63 74 69  6F 6E 20 50 72 65 66 65  74 63 68 65 72 09 31 0D  0A 32 2E 31 2E 32 2E 20  nstruction Prefetcher12.1.2. 
000007A0  20 49 6E 73 74 72 75 63  74 69 6F 6E 20 44 65 63  6F 64 65 72 09 31 0D 0A  32 2E 31 2E 33 2E 20 20   Instruction Decoder12.1.3.  
000007C0  45 78 63 75 74 69 6F 6E  20 43 6F 72 65 09 31 0D  0A 32 2E 32 2E 20 54 68  65 20 49 6E 74 65 6C 34  Excution Core12.2. The Intel4
000007E0  38 36 20 70 72 6F 63 65  73 73 6F 72 09 31 0D 0A  32 2E 32 2E 31 2E 20 20  49 6E 74 65 67 65 72 20  86 processor12.2.1.  Integer 
00000800  50 69 70 65 6C 69 6E 65  09 32 0D 0A 32 2E 32 2E  32 2E 20 20 4F 6E 2D 43  68 69 70 20 43 61 63 68  Pipeline22.2.2.  On-Chip Cach
00000820  65 09 32 0D 0A 32 2E 32  2E 33 2E 20 20 4F 6E 2D  43 68 69 70 20 46 6C 6F  61 74 69 6E 67 2D 50 6F  e22.2.3.  On-Chip Floating-Po
00000840  69 6E 74 20 55 6E 69 74  09 32 0D 0A 32 2E 33 2E  20 54 68 65 20 50 65 6E  74 69 75 6D 20 70 72 6F  int Unit22.3. The Pentium pro
00000860  63 65 73 73 6F 72 09 32  0D 0A 32 2E 33 2E 31 2E  20 20 49 6E 74 65 67 65  72 20 50 69 70 65 6C 69  cessor22.3.1.  Integer Pipeli
00000880  6E 65 73 09 33 0D 0A 32  2E 33 2E 32 2E 20 20 43  61 63 68 65 73 09 33 0D  0A 32 2E 33 2E 33 2E 20  nes32.3.2.  Caches32.3.3. 
000008A0  20 49 6E 73 74 72 75 63  74 69 6F 6E 20 50 72 65  66 65 74 63 68 65 72 09  33 0D 0A 32 2E 33 2E 34   Instruction Prefetcher32.3.4
000008C0  2E 20 20 42 72 61 6E 63  68 20 54 61 72 67 65 74  20 42 75 66 66 65 72 09  33 0D 0A 32 2E 33 2E 35  .  Branch Target Buffer32.3.5
000008E0  2E 20 20 50 69 70 65 6C  69 6E 65 64 20 46 6C 6F  61 74 69 6E 67 2D 50 6F  69 6E 74 20 55 6E 69 74  .  Pipelined Floating-Point Unit
00000900  09 33 0D 0A 33 2E 20 20  49 6E 74 65 67 65 72 20  45 78 61 6D 70 6C 65 73  09 34 0D 0A 33 2E 31 2E  33.  Integer Examples43.1.
00000920  20 43 6F 64 65 20 53 65  71 75 65 6E 63 65 20 31  2C 20 49 6E 74 65 6C 34  38 36 20 50 72 6F 63 65   Code Sequence 1, Intel486 Proce
00000940  73 73 6F 72 09 35 0D 0A  33 2E 32 2E 20 43 6F 64  65 20 53 65 71 75 65 6E  63 65 20 31 2C 20 50 65  ssor53.2. Code Sequence 1, Pe
00000960  6E 74 69 75 6D 20 50 72  6F 63 65 73 73 6F 72 09  36 0D 0A 33 2E 33 2E 20  43 6F 64 65 20 53 65 71  ntium Processor63.3. Code Seq
00000980  75 65 6E 63 65 20 32 2C  20 49 6E 74 65 6C 34 38  36 20 50 72 6F 63 65 73  73 6F 72 09 36 0D 0A 33  uence 2, Intel486 Processor63
000009A0  2E 34 2E 20 43 6F 64 65  20 53 65 71 75 65 6E 63  65 20 32 2C 20 50 65 6E  74 69 75 6D 20 50 72 6F  .4. Code Sequence 2, Pentium Pro
000009C0  63 65 73 73 6F 72 09 37  0D 0A 33 2E 35 2E 20 43  6F 64 65 20 53 65 71 75  65 6E 63 65 20 33 2C 20  cessor73.5. Code Sequence 3, 
000009E0  49 6E 74 65 6C 34 38 36  20 50 72 6F 63 65 73 73  6F 72 09 37 0D 0A 33 2E  36 2E 20 43 6F 64 65 20  Intel486 Processor73.6. Code 
00000A00  53 65 71 75 65 6E 63 65  20 33 2C 20 50 65 6E 74  69 75 6D 20 50 72 6F 63  65 73 73 6F 72 09 37 0D  Sequence 3, Pentium Processor7
00000A20  0A 34 2E 20 20 43 6F 64  65 20 47 65 6E 65 72 61  74 69 6F 6E 20 53 74 72  61 74 65 67 79 09 39 0D  4.  Code Generation Strategy9
00000A40  0A 0D 0A 35 2E 20 20 42  6C 65 6E 64 65 64 20 43  6F 64 65 20 47 65 6E 65  72 61 74 69 6F 6E 20 43  5.  Blended Code Generation C
00000A60  6F 6E 73 69 64 65 72 61  74 69 6F 6E 09 31 30 0D  0A 35 2E 31 2E 20 20 43  68 6F 69 63 65 20 6F 66  onsideration105.1.  Choice of
00000A80  20 49 6E 64 65 78 20 56  65 72 73 75 73 20 42 61  73 65 20 52 65 67 69 73  74 65 72 09 31 30 0D 0A   Index Versus Base Register10
00000AA0  35 2E 32 2E 20 20 41 64  64 72 65 73 73 69 6E 67  20 4D 6F 64 65 73 20 61  6E 64 20 52 65 67 69 73  5.2.  Addressing Modes and Regis
00000AC0  74 65 72 20 55 73 61 67  65 09 31 30 0D 0A 35 2E  33 2E 20 20 50 72 65 66  65 74 63 68 20 42 61 6E  ter Usage105.3.  Prefetch Ban
00000AE0  64 77 69 64 74 68 09 31  31 0D 0A 35 2E 34 2E 20  20 41 6C 69 67 6E 6D 65  6E 74 09 31 32 0D 0A 35  dwidth115.4.  Alignment125
00000B00  2E 34 2E 31 2E 20 20 43  6F 64 65 09 31 32 0D 0A  35 2E 34 2E 32 2E 20 20  44 61 74 61 09 31 32 0D  .4.1.  Code125.4.2.  Data12
00000B20  0A 35 2E 34 2E 33 2E 20  20 32 2D 42 79 74 65 20  44 61 74 61 09 31 32 0D  0A 35 2E 34 2E 34 2E 20  5.4.3.  2-Byte Data125.4.4. 
00000B40  20 34 2D 42 79 74 65 20  44 61 74 61 09 31 32 0D  0A 35 2E 34 2E 35 2E 20  20 38 2D 42 79 74 65 20   4-Byte Data125.4.5.  8-Byte 
00000B60  44 61 74 61 09 31 32 0D  0A 35 2E 35 2E 20 20 50  72 65 66 69 78 65 64 20  4F 70 63 6F 64 65 73 09  Data125.5.  Prefixed Opcodes
00000B80  31 32 0D 0A 35 2E 36 2E  20 20 49 6E 74 65 67 65  72 20 49 6E 73 74 72 75  63 74 69 6F 6E 20 53 63  125.6.  Integer Instruction Sc
00000BA0  68 65 64 75 6C 69 6E 67  09 31 33 0D 0A 35 2E 36  2E 31 2E 20 20 50 61 69  72 69 6E 67 09 31 33 0D  heduling135.6.1.  Pairing13
00000BC0  0A 35 2E 36 2E 32 2E 20  20 49 6E 73 74 72 75 63  74 69 6F 6E 20 53 65 74  20 50 61 69 72 61 62 69  5.6.2.  Instruction Set Pairabi
00000BE0  6C 69 74 79 09 31 33 0D  0A 09 35 2E 36 2E 32 2E  31 2E 20 20 55 6E 70 61  69 72 61 62 6C 65 20 49  lity135.6.2.1.  Unpairable I
00000C00  6E 73 74 72 75 63 74 69  6F 6E 73 20 28 4E 50 29  09 31 33 0D 0A 09 35 2E  36 2E 32 2E 32 2E 20 20  nstructions (NP)135.6.2.2.  
00000C20  50 61 69 72 61 62 6C 65  20 49 6E 73 74 72 75 63  74 69 6F 6E 73 20 49 73  73 75 65 64 20 74 6F 20  Pairable Instructions Issued to 
00000C40  55 20 6F 72 20 56 20 20  70 69 70 65 73 20 28 55  56 29 2E 2E 2E 2E 2E 2E  2E 2E 2E 2E 2E 2E 2E 2E  U or V  pipes (UV)..............
00000C60  2E 2E 2E 2E 2E 2E 31 34  0D 0A 09 35 2E 36 2E 32  2E 33 2E 20 20 50 61 69  72 61 62 6C 65 20 49 6E  ......145.6.2.3.  Pairable In
00000C80  73 74 72 75 63 74 69 6F  6E 73 20 49 73 73 75 65  64 20 6F 74 20 55 20 70  69 70 65 20 28 50 55 29  structions Issued ot U pipe (PU)
00000CA0  09 31 34 0D 0A 09 35 2E  36 2E 32 2E 34 2E 20 20  50 61 69 72 61 62 6C 65  20 49 6E 73 74 72 75 63  145.6.2.4.  Pairable Instruc
00000CC0  74 69 6F 6E 73 20 49 73  73 75 65 64 20 74 6F 20  56 20 20 70 69 70 65 20  28 50 56 29 09 31 34 0D  tions Issued to V  pipe (PV)14
00000CE0  0A 35 2E 36 2E 33 2E 20  20 55 6E 70 61 69 72 61  62 69 6C 69 74 79 20 44  75 65 20 74 6F 20 52 65  5.6.3.  Unpairability Due to Re
00000D00  67 69 73 74 65 72 73 09  31 34 0D 0A 35 2E 36 2E  34 2E 20 20 53 70 65 63  69 61 6C 20 50 61 69 72  gisters145.6.4.  Special Pair
00000D20  73 09 31 35 0D 0A 35 2E  36 2E 35 2E 20 20 52 65  73 74 72 69 63 74 69 6F  6E 73 20 6F 6E 20 50 61  s155.6.5.  Restrictions on Pa
00000D40  69 72 20 45 78 65 63 75  74 69 6F 6E 09 31 36 0D  0A 35 2E 37 2E 20 20 49  6E 74 65 67 65 72 20 49  ir Execution165.7.  Integer I
00000D60  6E 73 74 72 75 63 74 69  6F 6E 20 53 65 6C 65 63  74 69 6F 6E 09 31 36 0D  0A 0D 0A 0B 0C 36 2E 20  nstruction Selection166. 
00000D80  20 50 72 6F 63 65 73 73  6F 72 20 53 70 65 63 69  66 69 63 20 4F 70 74 69  6D 69 7A 61 74 69 6F 6E   Processor Specific Optimization
00000DA0  73 09 32 30 0D 0A 36 2E  31 2E 20 20 50 65 6E 74  69 75 6D 20 50 72 6F 63  65 73 73 6F 72 20 46 6C  s206.1.  Pentium Processor Fl
00000DC0  6F 61 74 69 6E 67 20 50  6F 69 6E 74 09 32 30 0D  0A 36 2E 31 2E 31 2E 20  20 46 6C 6F 61 74 69 6E  oating Point206.1.1.  Floatin
00000DE0  67 2D 50 6F 69 6E 74 20  45 78 61 6D 70 6C 65 09  32 30 0D 0A 36 2E 31 2E  32 2E 20 20 46 58 43 48  g-Point Example206.1.2.  FXCH
00000E00  20 52 75 6C 65 73 20 61  6E 64 20 52 65 67 75 6C  61 74 69 6F 6E 73 09 32  32 0D 0A 36 2E 31 2E 33   Rules and Regulations226.1.3
00000E20  2E 20 20 4D 65 6D 6F 72  79 20 4F 70 65 72 61 6E  64 73 09 32 33 0D 0A 36  2E 31 2E 34 2E 20 20 46  .  Memory Operands236.1.4.  F
00000E40  6C 6F 61 74 69 6E 67 2D  50 6F 69 6E 74 20 53 74  61 6C 6C 73 09 32 33 0D  0A 37 2E 20 20 53 75 6D  loating-Point Stalls237.  Sum
00000E60  6D 61 72 79 09 32 36 0D  0A 0D 0A 41 70 70 65 6E  64 69 78 20 41 20 2D 20  49 6E 73 74 72 75 63 74  mary26Appendix A - Instruct
00000E80  69 6F 6E 20 50 61 69 72  69 6E 67 20 53 75 6D 6D  61 72 79 2E 2E 2E 2E 2E  2E 2E 2E 2E 2E 2E 2E 2E  ion Pairing Summary.............
00000EA0  2E 2E 2E 2E 2E 2E 2E 2E  2E 2E 2E 2E 2E 2E 2E 2E  2E 2E 2E 2E 2E 2E 2E 2E  2E 2E 2E 2E 2E 2E 2E 2E  ................................
00000EC0  2E 2E 2E 2E 2E 2E 2E 2E  2E 2E 2E 2E 2E 2E 2E 2E  2E 2E 2E 2E 2E 2E 2E 2E  2E 2E 2E 2E 2E 2E 2E 41  ...............................A
00000EE0  2D 31 0D 0A 15 09 0C 0D  0A 31 2E 20 49 6E 74 72  6F 64 75 63 74 69 6F 6E  0D 0A 0D 0A 54 68 65 20  -1§1. IntroductionThe 
00000F00  49 6E 74 65 6C 33 38 36  13 53 59 4D 42 4F 4C 20  32 32 38 20 5C 66 20 22  53 79 6D 62 6F 6C 22 15  Intel386SYMBOL 228 \f "Symbol"§
00000F20  20 41 72 63 68 69 74 65  63 74 75 72 65 20 46 61  6D 69 6C 79 20 72 65 70  72 65 73 65 6E 74 73 20   Architecture Family represents 
00000F40  61 20 73 65 72 69 65 73  20 6F 66 20 63 6F 6D 70  61 74 69 62 6C 65 20 70  72 6F 63 65 73 73 6F 72  a series of compatible processor
00000F60  73 20 69 6E 63 6C 75 64  69 6E 67 20 74 68 65 0D  0A 49 6E 74 65 6C 33 38  36 13 53 59 4D 42 4F 4C  s including theIntel386SYMBOL
00000F80  20 32 32 38 20 5C 66 20  22 53 79 6D 62 6F 6C 22  15 2C 20 49 6E 74 65 6C  34 38 36 13 53 59 4D 42   228 \f "Symbol"§, Intel486SYMB
00000FA0  4F 4C 20 32 32 38 20 5C  66 20 22 53 79 6D 62 6F  6C 22 15 2C 20 61 6E 64  20 74 68 65 20 50 65 6E  OL 228 \f "Symbol"§, and the Pen
00000FC0  74 69 75 6D 13 53 59 4D  42 4F 4C 20 32 32 38 20  5C 66 20 22 53 79 6D 62  6F 6C 22 15 20 70 72 6F  tiumSYMBOL 228 \f "Symbol"§ pro
00000FE0  63 65 73 73 6F 72 73 2E  20 20 54 68 65 20 6E 65  77 65 72 20 6D 65 6D 62  65 72 73 20 6F 66 20 74  cessors.  The newer members of t
00001000  68 65 20 66 61 6D 69 6C  79 20 61 72 65 20 63 61  70 61 62 6C 65 20 6F 66  20 65 78 65 63 75 74 69  he family are capable of executi
00001020  6E 67 20 61 6E 79 20 62  69 6E 61 72 69 65 73 20  63 72 65 61 74 65 64 20  66 6F 72 20 6D 65 6D 62  ng any binaries created for memb
00001040  65 72 73 20 6F 66 20 70  72 65 76 69 6F 75 73 20  67 65 6E 65 72 61 74 69  6F 6E 73 2E 20 46 6F 72  ers of previous generations. For
00001060  20 65 78 61 6D 70 6C 65  2C 20 61 6E 79 20 65 78  69 73 74 69 6E 67 20 38  30 38 36 2F 38 30 38 38   example, any existing 8086/8088
00001080  2C 20 38 30 32 38 36 2C  20 49 6E 74 65 6C 33 38  36 20 28 44 58 20 6F 72  20 53 58 29 2C 20 61 6E  , 80286, Intel386 (DX or SX), an
000010A0  64 20 49 6E 74 65 6C 34  38 36 20 61 70 70 6C 69  63 61 74 69 6F 6E 73 20  77 69 6C 6C 20 62 65 20  d Intel486 applications will be 
000010C0  61 62 6C 65 20 74 6F 20  65 78 65 63 75 74 65 20  6F 6E 20 74 68 65 20 50  65 6E 74 69 75 6D 20 70  able to execute on the Pentium p
000010E0  72 6F 63 65 73 73 6F 72  20 77 69 74 68 6F 75 74  20 61 6E 79 20 6D 6F 64  69 66 69 63 61 74 69 6F  rocessor without any modificatio
00001100  6E 20 6F 72 20 72 65 63  6F 6D 70 69 6C 61 74 69  6F 6E 2E 20 48 6F 77 65  76 65 72 2C 20 74 68 65  n or recompilation. However, the
00001120  72 65 20 61 72 65 20 63  65 72 74 61 69 6E 20 63  6F 64 65 20 6F 70 74 69  6D 69 7A 61 74 69 6F 6E  re are certain code optimization
00001140  0D 0A 74 65 63 68 6E 69  71 75 65 73 20 77 68 69  63 68 20 77 69 6C 6C 20  6D 61 6B 65 20 61 70 70  techniques which will make app
00001160  6C 69 63 61 74 69 6F 6E  73 20 65 78 65 63 75 74  65 20 66 61 73 74 65 72  20 6F 6E 20 61 20 73 70  lications execute faster on a sp
00001180  65 63 69 66 69 63 20 6D  65 6D 62 65 72 20 6F 66  20 74 68 65 20 66 61 6D  69 6C 79 20 77 69 74 68  ecific member of the family with
000011A0  0D 0A 6C 69 74 74 6C 65  20 6F 72 20 6E 6F 20 69  6D 70 61 63 74 20 6F 6E  20 74 68 65 20 70 65 72  little or no impact on the per
000011C0  66 6F 72 6D 61 6E 63 65  20 6F 66 20 6F 74 68 65  72 20 6D 65 6D 62 65 72  73 2E 20 4D 6F 73 74 20  formance of other members. Most 
000011E0  6F 66 20 74 68 65 73 65  20 6F 70 74 69 6D 69 7A  61 74 69 6F 6E 73 20 64  65 61 6C 20 77 69 74 68  of these optimizations deal with
00001200  0D 0A 69 6E 73 74 72 75  63 74 69 6F 6E 20 73 65  71 75 65 6E 63 65 20 73  65 6C 65 63 74 69 6F 6E  instruction sequence selection
00001220  20 61 6E 64 20 69 6E 73  74 72 75 63 74 69 6F 6E  20 72 65 6F 72 64 65 72  69 6E 67 20 74 6F 20 63   and instruction reordering to c
00001240  6F 6D 70 6C 65 6D 65 6E  74 20 74 68 65 20 70 72  6F 63 65 73 73 6F 72 0D  0A 6D 69 63 72 6F 20 61  omplement the processormicro a
00001260  72 63 68 69 74 65 63 74  75 72 65 20 2E 0D 0A 0D  0A 54 68 65 20 69 6E 74  65 6E 74 20 6F 66 20 74  rchitecture .The intent of t
00001280  68 69 73 20 64 6F 63 75  6D 65 6E 74 20 69 73 20  74 6F 20 64 65 73 63 72  69 62 65 20 74 68 65 20  his document is to describe the 
000012A0  69 6D 70 6C 65 6D 65 6E  74 61 74 69 6F 6E 20 64  69 66 66 65 72 65 6E 63  65 73 20 6F 66 20 74 68  implementation differences of th
000012C0  65 20 70 72 6F 63 65 73  73 6F 72 20 6D 65 6D 62  65 72 73 0D 0A 61 6E 64  20 74 68 65 20 6F 70 74  e processor membersand the opt
000012E0  69 6D 69 7A 61 74 69 6F  6E 20 73 74 72 61 74 65  67 79 20 74 68 61 74 20  67 69 76 65 73 20 74 68  imization strategy that gives th
00001300  65 20 62 65 73 74 20 70  65 72 66 6F 72 6D 61 6E  63 65 20 66 6F 72 20 61  6C 6C 20 6D 65 6D 62 65  e best performance for all membe
00001320  72 73 20 6F 66 20 74 68  65 20 66 61 6D 69 6C 79  2E 0D 0A 0D 0A 32 2E 20  4F 76 65 72 76 69 65 77  rs of the family.2. Overview
00001340  20 6F 66 20 49 6E 74 65  6C 33 38 36 2C 20 49 6E  74 65 6C 34 38 36 2C 20  61 6E 64 20 50 65 6E 74   of Intel386, Intel486, and Pent
00001360  69 75 6D 20 50 72 6F 63  65 73 73 6F 72 73 0D 0A  0D 0A 32 2E 31 20 54 68  65 20 49 6E 74 65 6C 33  ium Processors2.1 The Intel3
00001380  38 36 20 50 72 6F 63 65  73 73 6F 72 0D 0A 0D 0A  54 68 65 20 49 6E 74 65  6C 33 38 36 20 70 72 6F  86 ProcessorThe Intel386 pro
000013A0  63 65 73 73 6F 72 20 69  73 20 74 68 65 20 66 69  72 73 74 20 69 6D 70 6C  65 6D 65 6E 74 61 74 69  cessor is the first implementati
000013C0  6F 6E 20 6F 66 20 74 68  65 20 33 32 2D 62 69 74  20 49 6E 74 65 6C 33 38  36 20 61 72 63 68 69 74  on of the 32-bit Intel386 archit
000013E0  65 63 74 75 72 65 2E 20  49 74 20 69 6E 63 6C 75  64 65 73 20 66 75 6C 6C  0D 0A 33 32 2D 62 69 74  ecture. It includes full32-bit
00001400  20 64 61 74 61 20 70 61  74 68 73 2C 20 72 69 63  68 20 33 32 2D 62 69 74  20 61 64 64 72 65 73 73   data paths, rich 32-bit address
00001420  69 6E 67 20 6D 6F 64 65  73 20 61 6E 64 20 6F 6E  2D 63 68 69 70 20 6D 65  6D 6F 72 79 20 6D 61 6E  ing modes and on-chip memory man
00001440  61 67 65 6D 65 6E 74 2E  0D 0A 0D 0A 32 2E 31 2E  31 2E 20 49 6E 73 74 72  75 63 74 69 6F 6E 20 50  agement.2.1.1. Instruction P
00001460  72 65 66 65 74 63 68 65  72 0D 0A 0D 0A 54 68 65  20 69 6E 73 74 72 75 63  74 69 6F 6E 20 70 72 65  refetcherThe instruction pre
00001480  66 65 74 63 68 65 72 20  70 72 65 66 65 74 63 68  65 73 20 74 68 65 20 69  6E 73 74 72 75 63 74 69  fetcher prefetches the instructi
000014A0  6F 6E 20 73 74 72 65 61  6D 20 66 72 6F 6D 20 65  78 74 65 72 6E 61 6C 20  6D 65 6D 6F 72 79 20 61  on stream from external memory a
000014C0  6E 64 20 74 68 65 20 70  72 65 66 65 74 63 68 65  64 20 69 6E 73 74 72 75  63 74 69 6F 6E 73 20 61  nd the prefetched instructions a
000014E0  72 65 20 6B 65 70 74 20  69 6E 20 69 74 73 20 66  6F 75 72 2D 64 65 65 70  2C 20 66 6F 75 72 2D 62  re kept in its four-deep, four-b
00001500  79 74 65 2D 77 69 64 65  20 70 72 65 66 65 74 63  68 20 62 75 66 66 65 72  73 2E 20 54 68 65 20 69  yte-wide prefetch buffers. The i
00001520  6E 73 74 72 75 63 74 69  6F 6E 20 64 65 63 6F 64  65 72 20 6F 70 65 72 61  74 65 73 20 6F 6E 20 74  nstruction decoder operates on t
00001540  68 65 20 63 6F 64 65 20  73 74 72 65 61 6D 20 66  65 64 20 74 6F 20 69 74  20 74 68 72 6F 75 67 68  he code stream fed to it through
00001560  20 74 68 65 20 70 72 65  66 65 74 63 68 20 62 75  66 66 65 72 73 2E 0D 0A  0D 0A 32 2E 31 2E 32 2E   the prefetch buffers.2.1.2.
00001580  20 49 6E 73 74 72 75 63  74 69 6F 6E 20 44 65 63  6F 64 65 72 0D 0A 0D 0A  54 68 65 20 69 6E 73 74   Instruction DecoderThe inst
000015A0  72 75 63 74 69 6F 6E 20  64 65 63 6F 64 65 72 20  70 6C 61 63 65 73 20 74  68 65 20 64 65 63 6F 64  ruction decoder places the decod
000015C0  65 64 20 69 6E 66 6F 72  6D 61 74 69 6F 6E 20 69  6E 20 61 20 74 68 72 65  65 2D 64 65 65 70 20 46  ed information in a three-deep F
000015E0  49 46 4F 2E 20 49 74 20  69 73 20 64 65 63 6F 75  70 6C 65 64 20 66 72 6F  6D 20 62 6F 74 68 20 74  IFO. It is decoupled from both t
00001600  68 65 20 70 72 65 66 65  74 63 68 65 72 20 61 6E  64 20 74 68 65 20 65 78  65 63 75 74 69 6F 6E 20  he prefetcher and the execution 
00001620  63 6F 72 65 20 61 6E 64  20 68 61 73 20 73 65 70  61 72 61 74 65 20 70 72  6F 74 6F 63 6F 6C 73 20  core and has separate protocols 
00001640  77 69 74 68 20 65 61 63  68 2E 0D 0A 0D 0A 32 2E  31 2E 33 2E 20 45 78 65  63 75 74 69 6F 6E 20 43  with each.2.1.3. Execution C
00001660  6F 72 65 0D 0A 0D 0A 54  68 65 20 63 6F 72 65 20  65 6E 67 69 6E 65 20 65  78 65 63 75 74 65 73 20  oreThe core engine executes 
00001680  74 68 65 20 69 6E 63 6F  6D 69 6E 67 20 69 6E 73  74 72 75 63 74 69 6F 6E  73 20 6F 6E 65 20 61 74  the incoming instructions one at
000016A0  20 61 20 74 69 6D 65 2C  20 62 75 74 20 66 6F 72  20 63 65 72 74 61 69 6E  20 63 61 73 65 73 2C 20   a time, but for certain cases, 
000016C0  69 74 20 61 6C 6C 6F 77  73 20 6F 76 65 72 6C 61  70 70 69 6E 67 20 74 68  65 20 6C 61 73 74 20 65  it allows overlapping the last e
000016E0  78 65 63 75 74 69 6F 6E  20 63 79 63 6C 65 20 6F  66 20 74 68 65 20 63 75  72 72 65 6E 74 20 69 6E  xecution cycle of the current in
00001700  73 74 72 75 63 74 69 6F  6E 20 77 69 74 68 20 74  68 65 20 65 66 66 65 63  74 69 76 65 20 61 64 64  struction with the effective add
00001720  72 65 73 73 20 63 61 6C  63 75 6C 61 74 69 6F 6E  20 6F 66 20 74 68 65 20  6E 65 78 74 20 69 6E 73  ress calculation of the next ins
00001740  74 72 75 63 74 69 6F 6E  27 73 20 6D 65 6D 6F 72  79 20 72 65 66 65 72 65  6E 63 65 2E 0D 0A 0D 0A  truction's memory reference.
00001760  46 72 6F 6D 20 74 68 65  20 63 6F 6D 70 69 6C 65  72 20 77 72 69 74 65 72  27 73 20 70 6F 69 6E 74  From the compiler writer's point
00001780  20 6F 66 20 76 69 65 77  2C 20 74 68 65 20 64 65  63 6F 75 70 6C 65 64 20  70 72 65 66 65 74 63 68   of view, the decoupled prefetch
000017A0  2F 64 65 63 6F 64 65 2F  65 78 65 63 75 74 69 6F  6E 20 73 74 61 67 65 73  20 61 6E 64 20 74 68 65  /decode/execution stages and the
000017C0  20 73 65 71 75 65 6E 74  69 61 6C 20 6E 61 74 75  72 65 20 6F 66 20 74 68  65 20 63 6F 72 65 20 65   sequential nature of the core e
000017E0  6E 67 69 6E 65 20 68 61  73 20 70 6C 61 63 65 64  20 66 65 77 20 72 65 71  75 69 72 65 6D 65 6E 74  ngine has placed few requirement
00001800  73 20 66 6F 72 20 69 6E  73 74 72 75 63 74 69 6F  6E 20 73 63 68 65 64 75  6C 69 6E 67 2E 20 20 41  s for instruction scheduling.  A
00001820  76 6F 69 64 69 6E 67 20  74 68 65 20 75 73 65 20  6F 66 20 61 6E 20 69 6E  64 65 78 20 69 6E 20 74  voiding the use of an index in t
00001840  68 65 20 65 66 66 65 63  74 69 76 65 20 61 64 64  72 65 73 73 20 77 69 6C  6C 20 73 61 76 65 20 6F  he effective address will save o
00001860  6E 65 20 65 78 74 72 61  20 63 6C 6F 63 6B 2E 20  41 20 63 61 72 65 66 75  6C 20 63 68 6F 69 63 65  ne extra clock. A careful choice
00001880  20 6F 66 20 69 6E 73 74  72 75 63 74 69 6F 6E 73  20 74 6F 20 6D 69 6E 69  6D 69 7A 65 20 74 68 65   of instructions to minimize the
000018A0  20 65 78 65 63 75 74 69  6F 6E 20 63 6C 6F 63 6B  20 63 6F 75 6E 74 73 20  69 73 20 74 68 65 20 62   execution clock counts is the b
000018C0  65 73 74 20 6F 70 74 69  6D 69 7A 61 74 69 6F 6E  20 61 70 70 72 6F 61 63  68 2E 0D 0A 0D 0A 32 2E  est optimization approach.2.
000018E0  32 20 54 68 65 20 49 6E  74 65 6C 34 38 36 20 50  72 6F 63 65 73 73 6F 72  0D 0A 0D 0A 54 68 65 20  2 The Intel486 ProcessorThe 
00001900  49 6E 74 65 6C 34 38 36  20 70 72 6F 63 65 73 73  6F 72 20 68 61 73 20 61  20 66 75 6C 6C 20 62 6C  Intel486 processor has a full bl
00001920  6F 77 6E 20 69 6E 74 65  67 65 72 20 70 69 70 65  6C 69 6E 65 20 64 65 6C  69 76 65 72 69 6E 67 20  own integer pipeline delivering 
00001940  61 20 70 65 61 6B 20 74  68 72 6F 75 67 68 70 75  74 20 6F 66 20 6F 6E 65  20 69 6E 73 74 72 75 63  a peak throughput of one instruc
00001960  74 69 6F 6E 20 70 65 72  20 63 6C 6F 63 6B 2E 20  49 74 20 68 61 73 20 69  6E 74 65 67 72 61 74 65  tion per clock. It has integrate
00001980  64 20 74 68 65 20 66 69  72 73 74 20 6C 65 76 65  6C 20 63 61 63 68 65 20  61 6E 64 20 74 68 65 20  d the first level cache and the 
000019A0  66 6C 6F 61 74 69 6E 67  2D 70 6F 69 6E 74 20 75  6E 69 74 20 6F 6E 20 63  68 69 70 2C 20 61 6E 64  floating-point unit on chip, and
000019C0  20 69 74 20 68 61 73 20  74 68 65 20 73 61 6D 65  20 6F 6E 2D 63 68 69 70  20 6D 65 6D 6F 72 79 20   it has the same on-chip memory 
000019E0  6D 61 6E 61 67 65 6D 65  6E 74 20 63 61 70 61 62  69 6C 69 74 69 65 73 20  61 73 20 74 68 65 20 49  management capabilities as the I
00001A00  6E 74 65 6C 33 38 36 20  70 72 6F 63 65 73 73 6F  72 2E 0D 0A 0D 0A 0C 0D  0A 32 2E 32 2E 31 2E 20  ntel386 processor.2.2.1. 
00001A20  49 6E 74 65 67 65 72 20  50 69 70 65 6C 69 6E 65  0D 0A 0D 0A 54 68 65 20  49 6E 74 65 6C 34 38 36  Integer PipelineThe Intel486
00001A40  20 68 61 73 20 61 20 66  69 76 65 2D 73 74 61 67  65 20 69 6E 74 65 67 65  72 20 70 69 70 65 6C 69   has a five-stage integer pipeli
00001A60  6E 65 20 63 61 70 61 62  6C 65 20 6F 66 20 70 72  6F 63 65 73 73 69 6E 67  20 6F 6E 65 20 69 6E 73  ne capable of processing one ins
00001A80  74 72 75 63 74 69 6F 6E  20 70 65 72 20 63 6C 6F  63 6B 2E 0D 0A 54 68 65  20 66 69 76 65 20 70 69  truction per clock.The five pi
00001AA0  70 65 6C 69 6E 65 20 73  74 61 67 65 73 20 61 72  65 3A 0D 0A 0D 0A 61 2E  20 50 72 65 66 65 74 63  peline stages are:a. Prefetc
00001AC0  68 2C 20 28 50 46 29 20  2D 20 77 68 65 72 65 20  69 6E 73 74 72 75 63 74  69 6F 6E 73 20 61 72 65  h, (PF) - where instructions are
00001AE0  20 66 65 74 63 68 65 64  20 66 72 6F 6D 20 74 68  65 20 63 61 63 68 65 20  61 6E 64 20 70 6C 61 63   fetched from the cache and plac
00001B00  65 64 20 69 6E 20 6F 6E  65 20 6F 66 20 74 77 6F  20 31 36 2D 62 79 74 65  20 62 75 66 66 65 72 73  ed in one of two 16-byte buffers
00001B20  2E 0D 0A 0D 0A 62 2E 20  44 65 63 6F 64 65 20 28  44 31 29 20 2D 20 77 68  65 72 65 20 69 6E 63 6F  .b. Decode (D1) - where inco
00001B40  6D 69 6E 67 20 63 6F 64  65 20 73 74 72 65 61 6D  20 69 73 20 62 65 69 6E  67 20 64 65 63 6F 64 65  ming code stream is being decode
00001B60  64 2E 20 50 72 65 66 69  78 65 64 20 69 6E 73 74  72 75 63 74 69 6F 6E 73  20 73 74 61 79 20 69 6E  d. Prefixed instructions stay in
00001B80  20 44 31 20 66 6F 72 20  74 77 6F 20 63 6C 6F 63  6B 73 2E 0D 0A 0D 0A 63  2E 20 41 64 64 72 65 73   D1 for two clocks.c. Addres
00001BA0  73 20 47 65 6E 65 72 61  74 69 6F 6E 20 28 44 32  29 20 2D 20 77 68 65 72  65 20 65 66 66 65 63 74  s Generation (D2) - where effect
00001BC0  69 76 65 20 61 64 64 72  65 73 73 20 61 6E 64 20  6C 69 6E 65 61 72 20 61  64 64 72 65 73 73 20 61  ive address and linear address a
00001BE0  72 65 20 63 61 6C 63 75  6C 61 74 65 64 20 69 6E  20 70 61 72 61 6C 6C 65  6C 2E 20 54 68 65 20 61  re calculated in parallel. The a
00001C00  64 64 72 65 73 73 20 67  65 6E 65 72 61 74 69 6F  6E 20 63 61 6E 20 75 73  75 61 6C 6C 79 20 62 65  ddress generation can usually be
00001C20  20 63 6F 6D 70 6C 65 74  65 64 20 69 6E 20 6F 6E  65 20 63 79 63 6C 65 20  65 78 63 65 70 74 20 69   completed in one cycle except i
00001C40  6E 20 63 61 73 65 73 20  77 68 65 72 65 20 74 68  65 20 69 6E 64 65 78 65  64 20 61 64 64 72 65 73  n cases where the indexed addres
00001C60  73 69 6E 67 20 6D 6F 64  65 20 69 73 20 75 73 65  64 2E 20 49 66 20 74 68  65 20 69 6E 64 65 78 20  sing mode is used. If the index 
00001C80  69 73 20 75 73 65 64 2C  20 74 68 65 20 69 6E 73  74 72 75 63 74 69 6F 6E  20 73 74 61 79 73 20 69  is used, the instruction stays i
00001CA0  6E 20 44 32 20 66 6F 72  20 74 77 6F 20 63 6C 6F  63 6B 73 2E 0D 0A 0D 0A  64 2E 20 45 78 65 63 75  n D2 for two clocks.d. Execu
00001CC0  74 69 6F 6E 20 28 45 29  20 2D 20 77 68 65 72 65  20 74 68 65 20 6D 61 63  68 69 6E 65 20 6F 70 65  tion (E) - where the machine ope
00001CE0  72 61 74 69 6F 6E 73 20  61 72 65 20 70 65 72 66  6F 72 6D 65 64 2E 20 53  69 6D 70 6C 65 20 69 6E  rations are performed. Simple in
00001D00  73 74 72 75 63 74 69 6F  6E 73 20 28 74 68 6F 73  65 20 77 69 74 68 20 6F  6E 65 20 6D 61 63 68 69  structions (those with one machi
00001D20  6E 65 20 6F 70 65 72 61  74 69 6F 6E 29 20 74 61  6B 65 20 6F 6E 65 20 63  79 63 6C 65 20 74 6F 20  ne operation) take one cycle to 
00001D40  65 78 65 63 75 74 65 20  67 69 76 69 6E 67 20 61  20 6D 61 78 69 6D 75 6D  20 74 68 72 6F 75 67 68  execute giving a maximum through
00001D60  70 75 74 20 6F 66 20 6F  6E 65 20 69 6E 73 74 72  75 63 74 69 6F 6E 20 70  65 72 20 63 6C 6F 63 6B  put of one instruction per clock
00001D80  2E 20 54 68 65 20 6D 6F  72 65 20 63 6F 6D 70 6C  65 78 20 69 6E 73 74 72  75 63 74 69 6F 6E 73 20  . The more complex instructions 
00001DA0  74 61 6B 65 20 6D 75 6C  74 69 70 6C 65 20 65 78  65 63 75 74 69 6F 6E 20  63 79 63 6C 65 73 2E 0D  take multiple execution cycles.
00001DC0  0A 0D 0A 65 2E 20 57 72  69 74 65 62 61 63 6B 20  28 57 42 29 20 2D 20 77  68 65 72 65 20 74 68 65  e. Writeback (WB) - where the
00001DE0  20 6E 65 65 64 65 64 20  72 65 67 69 73 74 65 72  20 75 70 64 61 74 65 20  6F 63 63 75 72 73 2E 0D   needed register update occurs.
00001E00  0A 0D 0A 41 20 74 61 6B  65 6E 20 62 72 61 6E 63  68 20 62 72 65 61 6B 73  20 74 68 65 20 70 69 70  A taken branch breaks the pip
00001E20  65 6C 69 6E 65 20 73 74  72 65 61 6D 20 61 6E 64  20 63 61 75 73 65 73 20  61 20 74 77 6F 2D 63 6C  eline stream and causes a two-cl
00001E40  6F 63 6B 20 70 65 6E 61  6C 74 79 2C 20 77 68 65  72 65 61 73 20 74 68 65  20 70 69 70 65 6C 69 6E  ock penalty, whereas the pipelin
00001E60  65 20 73 74 72 65 61 6D  20 69 73 20 75 6E 61 66  66 65 63 74 65 64 20 62  79 20 61 20 6E 6F 74 2D  e stream is unaffected by a not-
00001E80  74 61 6B 65 6E 20 62 72  61 6E 63 68 2E 0D 0A 0D  0A 32 2E 32 2E 32 2E 20  4F 6E 2D 43 68 69 70 20  taken branch.2.2.2. On-Chip 
00001EA0  43 61 63 68 65 0D 0A 0D  0A 54 68 65 20 6F 6E 2D  63 68 69 70 20 63 61 63  68 65 20 69 73 20 61 20  CacheThe on-chip cache is a 
00001EC0  63 6F 6D 62 69 6E 65 64  20 69 6E 73 74 72 75 63  74 69 6F 6E 20 61 6E 64  20 64 61 74 61 20 63 61  combined instruction and data ca
00001EE0  63 68 65 2E 20 49 74 20  69 73 20 38 2D 4B 62 79  74 65 73 20 69 6E 20 73  69 7A 65 2C 20 66 6F 75  che. It is 8-Kbytes in size, fou
00001F00  72 2D 77 61 79 20 73 65  74 20 61 73 73 6F 63 69  61 74 69 76 65 20 77 69  74 68 20 61 20 31 36 2D  r-way set associative with a 16-
00001F20  62 79 74 65 20 6C 69 6E  65 20 73 69 7A 65 20 61  6E 64 20 70 73 65 75 64  6F 2D 4C 52 55 20 72 65  byte line size and pseudo-LRU re
00001F40  70 6C 61 63 65 6D 65 6E  74 20 61 6C 67 6F 72 69  74 68 6D 2E 20 41 6C 6C  20 64 61 74 61 20 72 65  placement algorithm. All data re
00001F60  66 65 72 65 6E 63 65 73  20 68 61 76 65 20 70 72  69 6F 72 69 74 79 20 61  63 63 65 73 73 20 74 6F  ferences have priority access to
00001F80  20 74 68 65 20 63 61 63  68 65 20 6F 76 65 72 20  69 6E 73 74 72 75 63 74  69 6F 6E 20 70 72 65 66   the cache over instruction pref
00001FA0  65 74 63 68 20 63 79 63  6C 65 73 2E 0D 0A 0D 0A  32 2E 32 2E 33 2E 20 4F  6E 2D 43 68 69 70 20 46  etch cycles.2.2.3. On-Chip F
00001FC0  6C 6F 61 74 69 6E 67 2D  50 6F 69 6E 74 20 55 6E  69 74 0D 0A 0D 0A 54 68  65 20 6F 6E 2D 63 68 69  loating-Point UnitThe on-chi
00001FE0  70 20 66 6C 6F 61 74 69  6E 67 2D 70 6F 69 6E 74  20 75 6E 69 74 20 75 74  69 6C 69 7A 65 73 20 74  p floating-point unit utilizes t
00002000  68 65 20 69 6E 74 65 67  65 72 20 70 69 70 65 6C  69 6E 65 20 66 6F 72 20  65 61 72 6C 79 20 64 61  he integer pipeline for early da
00002020  74 61 20 61 63 63 65 73  73 2E 20 54 68 65 20 62  75 73 20 73 74 72 75 63  74 75 72 65 20 61 6C 6C  ta access. The bus structure all
00002040  6F 77 73 20 36 34 2D 62  69 74 20 64 61 74 61 20  74 6F 20 62 65 20 74 72  61 6E 73 66 65 72 72 65  ows 64-bit data to be transferre
00002060  64 20 62 65 74 77 65 65  6E 20 74 68 65 20 63 61  63 68 65 20 61 6E 64 20  74 68 65 20 66 6C 6F 61  d between the cache and the floa
00002080  74 69 6E 67 20 70 6F 69  6E 74 20 68 61 72 64 77  61 72 65 20 69 6E 20 6F  6E 65 20 63 6C 6F 63 6B  ting point hardware in one clock
000020A0  2E 20 54 68 65 20 66 6C  6F 61 74 69 6E 67 2D 70  6F 69 6E 74 20 64 65 73  69 67 6E 20 61 6C 73 6F  . The floating-point design also
000020C0  20 61 6C 6C 6F 77 73 20  6F 76 65 72 6C 61 70 70  69 6E 67 20 74 68 65 20  66 6C 6F 61 74 69 6E 67   allows overlapping the floating
000020E0  2D 70 6F 69 6E 74 20 6F  70 65 72 61 74 69 6F 6E  73 20 77 69 74 68 20 69  6E 74 65 67 65 72 20 6F  -point operations with integer o
00002100  70 65 72 61 74 69 6F 6E  73 2E 0D 0A 0D 0A 54 68  65 20 65 78 65 63 75 74  69 6F 6E 20 63 6F 72 65  perations.The execution core
00002120  20 6F 66 20 74 68 65 20  49 6E 74 65 6C 34 38 36  20 70 72 6F 63 65 73 73  6F 72 20 68 61 73 20 62   of the Intel486 processor has b
00002140  65 65 6E 20 61 72 63 68  69 74 65 63 74 65 64 20  74 6F 20 6D 61 78 69 6D  69 7A 65 20 74 68 65 20  een architected to maximize the 
00002160  74 68 72 6F 75 67 68 70  75 74 20 6F 66 20 61 20  63 6C 61 73 73 20 6F 66  20 22 66 72 65 71 75 65  throughput of a class of "freque
00002180  6E 74 6C 79 20 75 73 65  64 22 20 69 6E 73 74 72  75 63 74 69 6F 6E 73 2E  20 48 65 6E 63 65 2C 20  ntly used" instructions. Hence, 
000021A0  63 61 72 65 66 75 6C 20  73 65 6C 65 63 74 69 6F  6E 20 6F 66 20 61 6E 20  69 6E 73 74 72 75 63 74  careful selection of an instruct
000021C0  69 6F 6E 20 73 65 71 75  65 6E 63 65 20 74 6F 20  70 65 72 66 6F 72 6D 20  61 20 67 69 76 65 6E 20  ion sequence to perform a given 
000021E0  74 61 73 6B 20 72 65 73  75 6C 74 73 20 69 6E 20  66 61 73 74 65 72 20 65  78 65 63 75 74 69 6F 6E  task results in faster execution
00002200  20 74 69 6D 65 2E 20 41  6C 73 6F 2C 20 63 6F 64  65 20 73 63 68 65 64 75  6C 69 6E 67 20 74 6F 20   time. Also, code scheduling to 
00002220  61 76 6F 69 64 20 70 69  70 65 6C 69 6E 65 20 73  74 61 6C 6C 73 20 68 65  6C 70 73 20 74 6F 20 62  avoid pipeline stalls helps to b
00002240  6F 6F 73 74 20 61 70 70  6C 69 63 61 74 69 6F 6E  20 70 65 72 66 6F 72 6D  61 6E 63 65 2E 20 4D 6F  oost application performance. Mo
00002260  73 74 20 6F 66 20 74 68  65 20 6F 70 74 69 6D 69  7A 61 74 69 6F 6E 73 20  74 61 72 67 65 74 65 64  st of the optimizations targeted
00002280  20 74 6F 20 74 68 65 20  49 6E 74 65 6C 34 38 36  13 53 59 4D 42 4F 4C 20  32 32 38 20 5C 66 20 22   to the Intel486SYMBOL 228 \f "
000022A0  53 79 6D 62 6F 6C 22 15  20 70 72 6F 63 65 73 73  6F 72 20 64 6F 20 6E 6F  74 20 68 61 76 65 20 6E  Symbol"§ processor do not have n
000022C0  65 67 61 74 69 76 65 20  65 66 66 65 63 74 73 20  6F 6E 20 49 6E 74 65 6C  33 38 36 13 53 59 4D 42  egative effects on Intel386SYMB
000022E0  4F 4C 20 32 32 38 20 5C  66 20 22 53 79 6D 62 6F  6C 22 15 20 70 72 6F 63  65 73 73 6F 72 2E 0D 0A  OL 228 \f "Symbol"§ processor.
00002300  0D 0A 32 2E 33 20 54 68  65 20 50 65 6E 74 69 75  6D 20 50 72 6F 63 65 73  73 6F 72 0D 0A 0D 0A 54  2.3 The Pentium ProcessorT
00002320  68 65 20 50 65 6E 74 69  75 6D 20 70 72 6F 63 65  73 73 6F 72 20 69 73 20  61 6E 20 61 64 76 61 6E  he Pentium processor is an advan
00002340  63 65 64 20 73 75 70 65  72 73 63 61 6C 61 72 20  70 72 6F 63 65 73 73 6F  72 2E 20 20 49 74 20 69  ced superscalar processor.  It i
00002360  73 20 62 75 69 6C 74 20  61 72 6F 75 6E 64 20 74  77 6F 20 67 65 6E 65 72  61 6C 20 70 75 72 70 6F  s built around two general purpo
00002380  73 65 20 69 6E 74 65 67  65 72 20 70 69 70 65 6C  69 6E 65 73 20 61 6E 64  20 61 20 70 69 70 65 6C  se integer pipelines and a pipel
000023A0  69 6E 65 64 20 66 6C 6F  61 74 69 6E 67 2D 70 6F  69 6E 74 20 75 6E 69 74  2E 20 54 68 65 20 50 65  ined floating-point unit. The Pe
000023C0  6E 74 69 75 6D 20 70 72  6F 63 65 73 73 6F 72 20  63 61 6E 20 65 78 65 63  75 74 65 20 74 77 6F 20  ntium processor can execute two 
000023E0  69 6E 74 65 67 65 72 20  69 6E 73 74 72 75 63 74  69 6F 6E 73 20 73 69 6D  75 6C 74 61 6E 65 6F 75  integer instructions simultaneou
00002400  73 6C 79 2E 20 41 20 73  6F 66 74 77 61 72 65 2D  74 72 61 6E 73 70 61 72  65 6E 74 20 64 79 6E 61  sly. A software-transparent dyna
00002420  6D 69 63 20 62 72 61 6E  63 68 2D 70 72 65 64 69  63 74 69 6F 6E 20 6D 65  63 68 61 6E 69 73 6D 20  mic branch-prediction mechanism 
00002440  6D 69 6E 69 6D 69 7A 65  73 20 70 69 70 65 6C 69  6E 65 20 73 74 61 6C 6C  73 20 64 75 65 20 74 6F  minimizes pipeline stalls due to
00002460  20 62 72 61 6E 63 68 65  73 2E 0D 0A 0D 0A 0D 0A  0D 0A 0D 0A 0D 0A 32 2E  33 2E 31 2E 20 49 6E 74   branches.2.3.1. Int
00002480  65 67 65 72 20 50 69 70  65 6C 69 6E 65 73 0D 0A  0D 0A 54 68 65 20 50 65  6E 74 69 75 6D 20 70 72  eger PipelinesThe Pentium pr
000024A0  6F 63 65 73 73 6F 72 20  68 61 73 20 74 77 6F 20  70 61 72 61 6C 6C 65 6C  20 69 6E 74 65 67 65 72  ocessor has two parallel integer
000024C0  20 70 69 70 65 6C 69 6E  65 73 2C 20 74 68 65 20  6D 61 69 6E 20 70 69 70  65 20 28 55 29 20 77 68   pipelines, the main pipe (U) wh
000024E0  69 63 68 20 69 73 20 61  6E 20 65 6E 68 61 6E 63  65 64 20 49 6E 74 65 6C  34 38 36 20 70 72 6F 63  ich is an enhanced Intel486 proc
00002500  65 73 73 6F 72 20 70 69  70 65 20 61 6E 64 20 74  68 65 20 73 65 63 6F 6E  64 61 72 79 20 70 69 70  essor pipe and the secondary pip
00002520  65 20 28 56 29 20 77 68  69 63 68 20 69 73 20 73  69 6D 69 6C 61 72 20 74  6F 20 74 68 65 20 6D 61  e (V) which is similar to the ma
00002540  69 6E 20 6F 6E 65 20 62  75 74 20 68 61 73 20 73  6F 6D 65 20 6C 69 6D 69  74 61 74 69 6F 6E 73 20  in one but has some limitations 
00002560  6F 6E 20 74 68 65 20 69  6E 73 74 72 75 63 74 69  6F 6E 73 20 69 74 20 63  61 6E 20 65 78 65 63 75  on the instructions it can execu
00002580  74 65 2E 20 54 68 65 20  6C 69 6D 69 74 61 74 69  6F 6E 73 20 77 69 6C 6C  20 62 65 20 64 65 73 63  te. The limitations will be desc
000025A0  72 69 62 65 64 20 69 6E  20 6D 6F 72 65 0D 0A 64  65 74 61 69 6C 20 69 6E  20 6C 61 74 65 72 20 73  ribed in moredetail in later s
000025C0  65 63 74 69 6F 6E 73 2E  0D 0A 0D 0A 54 68 65 20  50 65 6E 74 69 75 6D 20  70 72 6F 63 65 73 73 6F  ections.The Pentium processo
000025E0  72 20 63 61 6E 20 69 73  73 75 65 20 74 77 6F 20  69 6E 73 74 72 75 63 74  69 6F 6E 73 20 65 76 65  r can issue two instructions eve
00002600  72 79 20 63 79 63 6C 65  2E 20 44 75 72 69 6E 67  20 65 78 65 63 75 74 69  6F 6E 2C 20 74 68 65 20  ry cycle. During execution, the 
00002620  6E 65 78 74 20 74 77 6F  20 69 6E 73 74 72 75 63  74 69 6F 6E 73 20 61 72  65 20 63 68 65 63 6B 65  next two instructions are checke
00002640  64 2C 20 61 6E 64 20 69  66 20 70 6F 73 73 69 62  6C 65 2C 20 74 68 65 79  20 61 72 65 20 69 73 73  d, and if possible, they are iss
00002660  75 65 64 20 73 75 63 68  20 74 68 61 74 20 74 68  65 20 66 69 72 73 74 20  6F 6E 65 20 65 78 65 63  ued such that the first one exec
00002680  75 74 65 73 20 69 6E 20  74 68 65 20 55 20 70 69  70 65 2C 20 61 6E 64 20  74 68 65 20 73 65 63 6F  utes in the U pipe, and the seco
000026A0  6E 64 20 69 6E 20 74 68  65 20 56 20 20 70 69 70  65 2E 20 28 49 66 20 69  74 20 69 73 20 6E 6F 74  nd in the V  pipe. (If it is not
000026C0  20 70 6F 73 73 69 62 6C  65 20 74 6F 20 69 73 73  75 65 20 74 77 6F 20 69  6E 73 74 72 75 63 74 69   possible to issue two instructi
000026E0  6F 6E 73 2C 20 74 68 65  6E 20 74 68 65 20 6E 65  78 74 20 69 6E 73 74 72  75 63 74 69 6F 6E 20 69  ons, then the next instruction i
00002700  73 20 69 73 73 75 65 64  20 74 6F 20 74 68 65 20  55 20 70 69 70 65 20 61  6E 64 20 6E 6F 20 69 6E  s issued to the U pipe and no in
00002720  73 74 72 75 63 74 69 6F  6E 20 69 73 20 69 73 73  75 65 64 20 74 6F 20 74  68 65 20 56 20 20 70 69  struction is issued to the V  pi
00002740  70 65 2E 29 0D 0A 0D 0A  57 68 65 6E 20 69 6E 73  74 72 75 63 74 69 6F 6E  73 20 65 78 65 63 75 74  pe.)When instructions execut
00002760  65 20 69 6E 20 74 68 65  20 74 77 6F 20 70 69 70  65 73 2C 20 74 68 65 69  72 20 62 65 68 61 76 69  e in the two pipes, their behavi
00002780  6F 72 20 69 73 20 65 78  61 63 74 6C 79 20 74 68  65 20 73 61 6D 65 20 61  73 20 69 66 20 74 68 65  or is exactly the same as if the
000027A0  79 20 77 65 72 65 20 65  78 65 63 75 74 65 64 20  73 65 71 75 65 6E 74 69  61 6C 6C 79 2E 20 57 68  y were executed sequentially. Wh
000027C0  65 6E 20 61 20 73 74 61  6C 6C 20 6F 63 63 75 72  73 2C 20 73 75 63 63 65  73 73 69 76 65 20 69 6E  en a stall occurs, successive in
000027E0  73 74 72 75 63 74 69 6F  6E 73 20 61 72 65 20 6E  6F 74 20 61 6C 6C 6F 77  65 64 20 74 6F 20 70 61  structions are not allowed to pa
00002800  73 73 20 74 68 65 20 73  74 61 6C 6C 65 64 20 69  6E 73 74 72 75 63 74 69  6F 6E 20 69 6E 20 65 69  ss the stalled instruction in ei
00002820  74 68 65 72 20 70 69 70  65 2E 20 49 6E 20 74 68  65 20 50 65 6E 74 69 75  6D 20 70 72 6F 63 65 73  ther pipe. In the Pentium proces
00002840  73 6F 72 27 73 20 70 69  70 65 6C 69 6E 65 73 2C  20 74 68 65 20 44 32 20  73 74 61 67 65 20 63 61  sor's pipelines, the D2 stage ca
00002860  6E 20 70 65 72 66 6F 72  6D 20 61 20 6D 75 6C 74  69 77 61 79 20 61 64 64  2C 20 73 6F 20 74 68 65  n perform a multiway add, so the
00002880  72 65 20 69 73 20 6E 6F  74 20 61 20 6F 6E 65 2D  63 6C 6F 63 6B 20 69 6E  64 65 78 20 70 65 6E 61  re is not a one-clock index pena
000028A0  6C 74 79 20 61 73 20 77  69 74 68 20 74 68 65 20  49 6E 74 65 6C 34 38 36  20 70 69 70 65 6C 69 6E  lty as with the Intel486 pipelin
000028C0  65 2E 0D 0A 0D 0A 32 2E  33 2E 32 2E 20 43 61 63  68 65 73 0D 0A 0D 0A 54  68 65 20 6F 6E 2D 63 68  e.2.3.2. CachesThe on-ch
000028E0  69 70 20 63 61 63 68 65  20 73 75 62 73 79 73 74  65 6D 20 63 6F 6E 73 69  73 74 73 20 6F 66 20 74  ip cache subsystem consists of t
00002900  77 6F 20 28 69 6E 73 74  72 75 63 74 69 6F 6E 20  61 6E 64 20 64 61 74 61  29 20 38 2D 4B 62 79 74  wo (instruction and data) 8-Kbyt
00002920  65 2C 20 74 77 6F 2D 77  61 79 20 73 65 74 20 61  73 73 6F 63 69 61 74 69  76 65 20 63 61 63 68 65  e, two-way set associative cache
00002940  73 20 77 69 74 68 20 61  20 63 61 63 68 65 20 6C  69 6E 65 20 6C 65 6E 67  74 68 20 6F 66 20 33 32  s with a cache line length of 32
00002960  20 62 79 74 65 73 2E 20  54 68 65 72 65 20 69 73  20 61 20 36 34 2D 62 69  74 20 77 69 64 65 20 65   bytes. There is a 64-bit wide e
00002980  78 74 65 72 6E 61 6C 20  64 61 74 61 20 62 75 73  20 69 6E 74 65 72 66 61  63 65 2E 20 54 68 65 20  xternal data bus interface. The 
000029A0  63 61 63 68 65 73 20 65  6D 70 6C 6F 79 20 61 20  77 72 69 74 65 20 62 61  63 6B 20 6D 65 63 68 61  caches employ a write back mecha
000029C0  6E 69 73 6D 20 61 6E 64  20 61 6E 20 4C 52 55 20  72 65 70 6C 61 63 65 6D  65 6E 74 20 61 6C 67 6F  nism and an LRU replacement algo
000029E0  72 69 74 68 6D 2E 20 54  68 65 20 64 61 74 61 20  63 61 63 68 65 20 63 6F  6E 73 69 73 74 73 20 6F  rithm. The data cache consists o
00002A00  66 20 65 69 67 68 74 20  62 61 6E 6B 73 20 69 6E  74 65 72 6C 65 61 76 65  64 20 6F 6E 20 66 6F 75  f eight banks interleaved on fou
00002A20  72 2D 62 79 74 65 20 62  6F 75 6E 64 61 72 69 65  73 2E 20 20 54 68 65 20  64 61 74 61 20 63 61 63  r-byte boundaries.  The data cac
00002A40  68 65 20 63 61 6E 20 62  65 20 61 63 63 65 73 73  65 64 20 73 69 6D 75 6C  74 61 6E 65 6F 75 73 6C  he can be accessed simultaneousl
00002A60  79 20 66 72 6F 6D 20 62  6F 74 68 20 70 69 70 65  73 2C 20 61 73 20 6C 6F  6E 67 20 61 73 20 74 68  y from both pipes, as long as th
00002A80  65 20 72 65 66 65 72 65  6E 63 65 73 20 61 72 65  20 74 6F 20 64 69 66 66  65 72 65 6E 74 20 62 61  e references are to different ba
00002AA0  6E 6B 73 2E 20 54 68 65  20 6D 69 6E 69 6D 75 6D  20 64 65 6C 61 79 20 66  6F 72 20 61 20 63 61 63  nks. The minimum delay for a cac
00002AC0  68 65 20 6D 69 73 73 20  69 73 20 33 20 63 6C 6F  63 6B 73 2E 0D 0A 0D 0A  32 2E 33 2E 33 2E 20 20  he miss is 3 clocks.2.3.3.  
00002AE0  49 6E 73 74 72 75 63 74  69 6F 6E 20 50 72 65 66  65 74 63 68 65 72 0D 0A  0D 0A 54 68 65 20 69 6E  Instruction PrefetcherThe in
00002B00  73 74 72 75 63 74 69 6F  6E 20 70 72 65 66 65 74  63 68 65 72 20 68 61 73  20 66 6F 75 72 20 62 75  struction prefetcher has four bu
00002B20  66 66 65 72 73 2C 20 65  61 63 68 20 6F 66 20 77  68 69 63 68 20 69 73 20  33 32 20 62 79 74 65 73  ffers, each of which is 32 bytes
00002B40  20 6C 6F 6E 67 2E 20 49  74 20 63 61 6E 20 66 65  74 63 68 20 61 6E 20 69  6E 73 74 72 75 63 74 69   long. It can fetch an instructi
00002B60  6F 6E 20 77 68 69 63 68  20 69 73 20 73 70 6C 69  74 20 61 6D 6F 6E 67 20  74 77 6F 20 63 61 63 68  on which is split among two cach
00002B80  65 20 6C 69 6E 65 73 20  77 69 74 68 20 6E 6F 20  70 65 6E 61 6C 74 79 2E  20 42 65 63 61 75 73 65  e lines with no penalty. Because
00002BA0  20 74 68 65 20 69 6E 73  74 72 75 63 74 69 6F 6E  20 61 6E 64 20 64 61 74  61 20 63 61 63 68 65 73   the instruction and data caches
00002BC0  20 61 72 65 20 73 65 70  61 72 61 74 65 2C 20 69  6E 73 74 72 75 63 74 69  6F 6E 20 70 72 65 66 65   are separate, instruction prefe
00002BE0  74 63 68 65 73 20 6E 6F  20 6C 6F 6E 67 65 72 20  63 6F 6E 66 6C 69 63 74  20 77 69 74 68 20 64 61  tches no longer conflict with da
00002C00  74 61 20 72 65 66 65 72  65 6E 63 65 73 20 66 6F  72 20 61 63 63 65 73 73  20 74 6F 20 74 68 65 20  ta references for access to the 
00002C20  63 61 63 68 65 20 28 61  73 20 69 6E 20 74 68 65  20 63 61 73 65 20 6F 66  20 49 6E 74 65 6C 34 38  cache (as in the case of Intel48
00002C40  36 20 70 72 6F 63 65 73  73 6F 72 29 2E 0D 0A 0D  0A 32 2E 33 2E 34 2E 20  20 42 72 61 6E 63 68 20  6 processor).2.3.4.  Branch 
00002C60  54 61 72 67 65 74 20 42  75 66 66 65 72 0D 0A 0D  0A 54 68 65 20 50 65 6E  74 69 75 6D 20 70 72 6F  Target BufferThe Pentium pro
00002C80  63 65 73 73 6F 72 20 65  6D 70 6C 6F 79 73 20 61  20 64 79 6E 61 6D 69 63  20 62 72 61 6E 63 68 20  cessor employs a dynamic branch 
00002CA0  70 72 65 64 69 63 74 69  6F 6E 20 73 63 68 65 6D  65 20 77 69 74 68 20 61  20 32 35 36 2D 65 6E 74  prediction scheme with a 256-ent
00002CC0  72 79 20 42 72 61 6E 63  68 20 54 61 72 67 65 74  20 42 75 66 66 65 72 20  28 42 54 42 29 2E 20 20  ry Branch Target Buffer (BTB).  
00002CE0  49 66 20 74 68 65 20 70  72 65 64 69 63 74 69 6F  6E 20 69 73 20 63 6F 72  72 65 63 74 2C 20 74 68  If the prediction is correct, th
00002D00  65 72 65 20 69 73 20 6E  6F 20 70 65 6E 61 6C 74  79 20 77 68 65 6E 20 65  78 65 63 75 74 69 6E 67  ere is no penalty when executing
00002D20  20 61 20 62 72 61 6E 63  68 20 69 6E 73 74 72 75  63 74 69 6F 6E 2E 20 20  54 68 65 72 65 20 69 73   a branch instruction.  There is
00002D40  20 61 20 33 2D 63 79 63  6C 65 20 70 65 6E 61 6C  74 79 20 69 66 20 74 68  65 20 63 6F 6E 64 69 74   a 3-cycle penalty if the condit
00002D60  69 6F 6E 61 6C 20 62 72  61 6E 63 68 20 77 61 73  20 65 78 65 63 75 74 65  64 20 69 6E 20 74 68 65  ional branch was executed in the
00002D80  20 55 20 70 69 70 65 20  6F 72 20 61 20 34 2D 63  79 63 6C 65 20 70 65 6E  61 6C 74 79 20 69 66 20   U pipe or a 4-cycle penalty if 
00002DA0  69 74 20 77 61 73 20 65  78 65 63 75 74 65 64 20  69 6E 20 74 68 65 20 56  20 20 70 69 70 65 2E 20  it was executed in the V  pipe. 
00002DC0  4D 69 73 70 72 65 64 69  63 74 65 64 20 63 61 6C  6C 73 20 61 6E 64 20 75  6E 63 6F 6E 64 69 74 69  Mispredicted calls and unconditi
00002DE0  6F 6E 61 6C 20 6A 75 6D  70 20 69 6E 73 74 72 75  63 74 69 6F 6E 73 20 68  61 76 65 20 61 20 33 2D  onal jump instructions have a 3-
00002E00  63 6C 6F 63 6B 20 70 65  6E 61 6C 74 79 20 69 6E  20 65 69 74 68 65 72 20  70 69 70 65 2E 20 4F 6E  clock penalty in either pipe. On
00002E20  20 74 68 65 20 49 6E 74  65 6C 34 38 36 20 70 72  6F 63 65 73 73 6F 72 2C  20 74 61 6B 65 6E 20 62   the Intel486 processor, taken b
00002E40  72 61 6E 63 68 65 73 20  68 61 76 65 20 61 20 74  77 6F 2D 63 6C 6F 63 6B  20 70 65 6E 61 6C 74 79  ranches have a two-clock penalty
00002E60  2E 0D 0A 0D 0A 32 2E 33  2E 35 2E 20 50 69 70 65  6C 69 6E 65 64 20 46 6C  6F 61 74 69 6E 67 2D 50  .2.3.5. Pipelined Floating-P
00002E80  6F 69 6E 74 20 55 6E 69  74 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  oint Unit                       
00002EA0  20 20 20 20 20 20 0D 0A  0D 0A 54 68 65 20 6D 61  6A 6F 72 69 74 79 20 6F  66 20 74 68 65 20 66 72        The majority of the fr
00002EC0  65 71 75 65 6E 74 6C 79  20 75 73 65 64 20 69 6E  73 74 72 75 63 74 69 6F  6E 73 20 61 72 65 20 70  equently used instructions are p
00002EE0  69 70 65 6C 69 6E 65 64  20 73 6F 20 74 68 61 74  20 74 68 65 20 70 69 70  65 6C 69 6E 65 73 20 63  ipelined so that the pipelines c
00002F00  61 6E 20 61 63 63 65 70  74 20 61 20 6E 65 77 20  70 61 69 72 20 6F 66 20  6F 70 65 72 61 6E 64 73  an accept a new pair of operands
00002F20  20 65 76 65 72 79 20 63  79 63 6C 65 2E 20 54 68  65 72 65 66 6F 72 65 20  61 20 67 6F 6F 64 20 63   every cycle. Therefore a good c
00002F40  6F 64 65 20 67 65 6E 65  72 61 74 6F 72 20 63 61  6E 20 61 63 68 69 65 76  65 20 61 20 74 68 72 6F  ode generator can achieve a thro
00002F60  75 67 68 70 75 74 20 6F  66 20 61 6C 6D 6F 73 74  20 31 20 69 6E 73 74 72  75 63 74 69 6F 6E 20 70  ughput of almost 1 instruction p
00002F80  65 72 20 63 79 63 6C 65  20 28 6F 66 20 63 6F 75  72 73 65 20 74 68 69 73  20 61 73 73 75 6D 65 73  er cycle (of course this assumes
00002FA0  20 61 20 70 72 6F 67 72  61 6D 20 77 69 74 68 20  61 20 6D 6F 64 65 73 74  20 61 6D 6F 75 6E 74 20   a program with a modest amount 
00002FC0  6F 66 20 6E 61 74 75 72  61 6C 20 70 61 72 61 6C  6C 65 6C 69 73 6D 21 29  2E 20 54 68 65 20 66 78  of natural parallelism!). The fx
00002FE0  63 68 20 69 6E 73 74 72  75 63 74 69 6F 6E 20 63  61 6E 20 62 65 20 65 78  65 63 75 74 65 64 20 69  ch instruction can be executed i
00003000  6E 20 70 61 72 61 6C 6C  65 6C 20 77 69 74 68 20  74 68 65 20 63 6F 6D 6D  6F 6E 6C 79 20 75 73 65  n parallel with the commonly use
00003020  64 20 46 50 20 69 6E 73  74 72 75 63 74 69 6F 6E  73 2C 20 77 68 69 63 68  20 6C 65 74 73 20 74 68  d FP instructions, which lets th
00003040  65 20 63 6F 64 65 20 67  65 6E 65 72 61 74 6F 72  20 6F 72 20 70 72 6F 67  72 61 6D 6D 65 72 20 74  e code generator or programmer t
00003060  72 65 61 74 20 74 68 65  20 66 6C 6F 61 74 69 6E  67 2D 70 6F 69 6E 74 20  73 74 61 63 6B 20 61 73  reat the floating-point stack as
00003080  20 61 20 72 65 67 75 6C  61 72 20 72 65 67 69 73  74 65 72 20 73 65 74 20  77 69 74 68 6F 75 74 20   a regular register set without 
000030A0  61 6E 79 20 70 65 72 66  6F 72 6D 61 6E 63 65 20  64 65 67 72 61 64 61 74  69 6F 6E 2E 0D 0A 0D 0A  any performance degradation.
000030C0  57 69 74 68 20 74 68 65  20 73 75 70 65 72 73 63  61 6C 61 72 20 69 6D 70  6C 65 6D 65 6E 74 61 74  With the superscalar implementat
000030E0  69 6F 6E 2C 20 69 74 20  69 73 20 69 6D 70 6F 72  74 61 6E 74 20 74 6F 20  73 63 68 65 64 75 6C 65  ion, it is important to schedule
00003100  20 74 68 65 20 69 6E 73  74 72 75 63 74 69 6F 6E  20 73 74 72 65 61 6D 20  74 6F 20 6D 61 78 69 6D   the instruction stream to maxim
00003120  69 7A 65 20 74 68 65 20  75 73 61 67 65 20 6F 66  20 74 68 65 20 74 77 6F  20 69 6E 74 65 67 65 72  ize the usage of the two integer
00003140  20 70 69 70 65 6C 69 6E  65 73 2E 20 53 69 6E 63  65 20 65 61 63 68 20 6F  66 20 74 68 65 20 50 65   pipelines. Since each of the Pe
00003160  6E 74 69 75 6D 20 70 72  6F 63 65 73 73 6F 72 27  73 20 69 6E 74 65 67 65  72 20 70 69 70 65 6C 69  ntium processor's integer pipeli
00003180  6E 65 73 20 69 73 20 65  6E 68 61 6E 63 65 64 20  66 72 6F 6D 20 74 68 65  20 70 69 70 65 6C 69 6E  nes is enhanced from the pipelin
000031A0  65 20 6F 66 20 74 68 65  20 49 6E 74 65 6C 34 38  36 20 70 72 6F 63 65 73  73 6F 72 2C 20 74 68 65  e of the Intel486 processor, the
000031C0  20 69 6E 73 74 72 75 63  74 69 6F 6E 20 73 63 68  65 64 75 6C 69 6E 67 20  63 72 69 74 65 72 69 61   instruction scheduling criteria
000031E0  20 66 6F 72 20 74 68 65  20 50 65 6E 74 69 75 6D  20 70 72 6F 63 65 73 73  6F 72 20 69 73 20 61 20   for the Pentium processor is a 
00003200  73 75 70 65 72 73 65 74  20 6F 66 20 74 68 65 20  49 6E 74 65 6C 34 38 36  20 70 72 6F 63 65 73 73  superset of the Intel486 process
00003220  6F 72 20 72 65 71 75 69  72 65 6D 65 6E 74 73 2E  0D 0A 0D 0A 33 2E 20 49  6E 74 65 67 65 72 20 45  or requirements.3. Integer E
00003240  78 61 6D 70 6C 65 73 0D  0A 0D 0A 57 69 74 68 20  74 68 65 20 6F 76 65 72  76 69 65 77 20 6F 66 20  xamplesWith the overview of 
00003260  74 68 65 20 49 6E 74 65  6C 33 38 36 2C 20 49 6E  74 65 6C 34 38 36 20 61  6E 64 20 50 65 6E 74 69  the Intel386, Intel486 and Penti
00003280  75 6D 20 70 72 6F 63 65  73 73 6F 72 73 20 69 6E  20 74 68 65 20 70 72 65  76 69 6F 75 73 20 73 65  um processors in the previous se
000032A0  63 74 69 6F 6E 2C 20 74  68 65 20 65 78 61 6D 70  6C 65 73 20 67 69 76 65  6E 20 69 6E 20 74 68 69  ction, the examples given in thi
000032C0  73 20 73 65 63 74 69 6F  6E 20 66 75 72 74 68 65  72 20 69 6C 6C 75 73 74  72 61 74 65 20 74 68 65  s section further illustrate the
000032E0  20 65 78 65 63 75 74 69  6F 6E 20 63 6C 6F 63 6B  20 63 79 63 6C 65 73 20  61 6D 6F 6E 67 20 76 61   execution clock cycles among va
00003300  72 69 6F 75 73 20 69 6E  73 74 72 75 63 74 69 6F  6E 20 73 65 71 75 65 6E  63 65 73 2E 0D 0A 0D 0A  rious instruction sequences.
00003320  41 6C 6C 20 65 78 61 6D  70 6C 65 73 20 61 73 73  75 6D 65 20 61 20 31 30  30 25 20 63 61 63 68 65  All examples assume a 100% cache
00003340  20 68 69 74 20 72 61 74  65 20 61 6E 64 20 6E 6F  6E 2D 63 6F 6E 66 6C 69  63 74 69 6E 67 20 6D 65   hit rate and non-conflicting me
00003360  6D 6F 72 79 20 61 63 63  65 73 73 65 73 2E 20 41  20 33 32 2D 62 69 74 20  66 6C 61 74 20 61 64 64  mory accesses. A 32-bit flat add
00003380  72 65 73 73 20 6D 6F 64  65 6C 20 69 73 20 61 6C  73 6F 20 61 73 73 75 6D  65 64 2E 0D 0A 0D 0A 54  ress model is also assumed.T
000033A0  68 65 72 65 20 69 73 20  61 20 63 79 63 6C 65 20  63 6F 75 6E 74 20 6E 65  78 74 20 74 6F 20 65 61  here is a cycle count next to ea
000033C0  63 68 20 69 6E 73 74 72  75 63 74 69 6F 6E 2E 20  41 20 63 79 63 6C 65 20  63 6F 75 6E 74 20 61 70  ch instruction. A cycle count ap
000033E0  70 65 61 72 73 20 77 69  74 68 6F 75 74 20 61 6E  20 69 6E 73 74 72 75 63  74 69 6F 6E 20 77 68 65  pears without an instruction whe
00003400  6E 20 74 68 65 72 65 20  69 73 20 61 20 70 69 70  65 20 73 74 61 6C 6C 2E  20 54 68 65 73 65 20 65  n there is a pipe stall. These e
00003420  78 61 6D 70 6C 65 73 20  61 6C 73 6F 20 61 73 73  75 6D 65 20 74 68 61 74  20 74 68 65 20 62 72 61  xamples also assume that the bra
00003440  6E 63 68 20 70 72 65 64  69 63 74 69 6F 6E 20 69  73 20 63 6F 72 72 65 63  74 2E 0D 0A 0D 0A 47 6F  nch prediction is correct.Go
00003460  69 6E 67 20 74 68 72 6F  75 67 68 20 74 68 65 73  65 20 65 78 61 6D 70 6C  65 73 20 73 68 6F 75 6C  ing through these examples shoul
00003480  64 20 67 69 76 65 20 79  6F 75 20 61 6E 20 69 6E  74 75 69 74 69 76 65 20  66 65 65 6C 20 66 6F 72  d give you an intuitive feel for
000034A0  20 68 6F 77 20 70 61 69  72 69 6E 67 20 77 6F 72  6B 73 20 6F 6E 20 74 68  65 20 50 65 6E 74 69 75   how pairing works on the Pentiu
000034C0  6D 20 70 72 6F 63 65 73  73 6F 72 20 61 6E 64 20  61 64 64 69 74 69 6F 6E  61 6C 20 69 6E 73 69 67  m processor and additional insig
000034E0  68 74 20 61 62 6F 75 74  20 73 6F 6D 65 20 6F 66  20 74 68 65 20 63 6F 6D  6D 6F 6E 20 64 65 6C 61  ht about some of the common dela
00003500  79 73 20 6F 6E 20 62 6F  74 68 20 74 68 65 20 49  6E 74 65 6C 34 38 36 20  61 6E 64 20 50 65 6E 74  ys on both the Intel486 and Pent
00003520  69 75 6D 20 70 72 6F 63  65 73 73 6F 72 73 2E 0D  0A 0D 0A 43 20 73 6F 75  72 63 65 3A 0D 0A 0D 0A  ium processors.C source:
00003540  73 74 61 74 69 63 20 69  6E 74 20 61 5B 31 30 5D  2C 20 62 5B 31 30 5D 3B  0D 0A 69 6E 74 20 69 3B  static int a[10], b[10];int i;
00003560  0D 0A 66 6F 72 20 28 69  3D 30 3B 20 69 3C 31 30  3B 20 69 2B 2B 29 20 7B  0D 0A 20 20 20 20 61 5B  for (i=0; i<10; i++) {    a[
00003580  69 5D 20 3D 20 61 5B 69  5D 20 2B 20 31 3B 0D 0A  20 20 20 20 62 5B 69 5D  20 3D 20 62 5B 69 5D 20  i] = a[i] + 1;    b[i] = b[i] 
000035A0  2B 20 31 3B 0D 0A 7D 0D  0A 0D 0A 54 68 65 72 65  20 61 72 65 20 76 61 72  69 6F 75 73 20 69 6E 73  + 1;}There are various ins
000035C0  74 72 75 63 74 69 6F 6E  20 73 65 71 75 65 6E 63  65 73 20 77 68 69 63 68  20 77 69 6C 6C 20 70 72  truction sequences which will pr
000035E0  6F 64 75 63 65 20 61 20  63 6F 72 72 65 63 74 20  70 72 6F 67 72 61 6D 2E  20 54 68 65 69 72 20 69  oduce a correct program. Their i
00003600  6E 64 69 76 69 64 75 61  6C 20 70 65 72 66 6F 72  6D 61 6E 63 65 2C 20 68  6F 77 65 76 65 72 2C 20  ndividual performance, however, 
00003620  6D 61 79 20 76 61 72 79  20 63 6F 6E 73 69 64 65  72 61 62 6C 79 2E 0D 0A  0D 0A 48 65 72 65 20 61  may vary considerably.Here a
00003640  72 65 20 74 68 72 65 65  20 65 78 61 6D 70 6C 65  73 3A 0D 0A 0D 0A 53 65  71 75 65 6E 63 65 20 31  re three examples:Sequence 1
00003660  09 53 65 71 75 65 6E 63  65 20 32 09 53 65 71 75  65 6E 63 65 20 33 0D 0A  0D 0A 20 78 6F 72 20 65  Sequence 2Sequence 3 xor e
00003680  61 78 2C 20 65 61 78 09  78 6F 72 20 65 61 78 2C  20 65 61 78 09 6D 6F 76  20 65 61 78 2C 20 2D 34  ax, eaxxor eax, eaxmov eax, -4
000036A0  30 0D 0A 0D 0A 54 6F 70  4F 66 4C 6F 6F 70 3A 20  09 54 6F 70 4F 66 4C 6F  6F 70 3A 09 54 6F 70 4F  0TopOfLoop: TopOfLoop:TopO
000036C0  66 4C 6F 6F 70 3A 0D 0A  20 09 6D 6F 76 20 20 65  64 78 2C 20 65 61 78 09  09 69 6E 63 20 20 64 77  fLoop: mov  edx, eaxinc  dw
000036E0  6F 72 64 20 70 74 72 20  5B 65 61 78 2A 34 2B 61  5D 09 6D 6F 76 20 20 65  64 78 2C 20 5B 65 61 78  ord ptr [eax*4+a]mov  edx, [eax
00003700  2B 34 30 2B 61 5D 0D 0A  20 09 73 68 6C 20 20 65  64 78 2C 20 32 09 09 69  6E 63 20 20 64 77 6F 72  +40+a] shl  edx, 2inc  dwor
00003720  64 20 70 74 72 20 5B 65  61 78 2A 34 2B 62 5D 09  6D 6F 76 20 20 65 63 78  2C 20 5B 65 61 78 2B 34  d ptr [eax*4+b]mov  ecx, [eax+4
00003740  30 2B 62 5D 0D 0A 20 09  69 6E 63 20 20 64 77 6F  72 64 20 70 74 72 20 5B  65 64 78 2B 61 5D 09 09  0+b] inc  dword ptr [edx+a]
00003760  69 6E 63 20 20 65 61 78  09 09 69 6E 63 20 20 65  64 78 0D 0A 20 09 6D 6F  76 20 20 65 64 78 2C 20  inc  eaxinc  edx mov  edx, 
00003780  65 61 78 09 09 63 6D 70  20 20 65 61 78 2C 20 31  30 09 09 69 6E 63 20 20  65 63 78 0D 0A 20 09 73  eaxcmp  eax, 10inc  ecx s
000037A0  68 6C 20 20 65 64 78 2C  20 32 09 09 6A 6C 20 20  20 54 6F 70 4F 66 4C 6F  6F 70 09 09 6D 6F 76 20  hl  edx, 2jl   TopOfLoopmov 
000037C0  20 5B 65 61 78 2B 34 30  2B 61 5D 2C 20 65 64 78  0D 0A 20 09 69 6E 63 20  20 64 77 6F 72 64 20 70   [eax+40+a], edx inc  dword p
000037E0  74 72 20 5B 65 64 78 2B  62 5D 09 09 6D 6F 76 20  20 5B 65 61 78 2B 34 30  2B 62 5D 2C 20 65 63 78  tr [edx+b]mov  [eax+40+b], ecx
00003800  0D 0A 20 09 69 6E 63 20  20 65 61 78 20 09 09 61  64 64 20 20 65 61 78 2C  20 34 0D 0A 20 09 63 6D   inc  eax add  eax, 4 cm
00003820  70 20 20 65 61 78 2C 20  31 30 09 09 6A 6E 7A 20  20 54 6F 70 4F 66 4C 6F  6F 70 0D 0A 20 09 6A 31  p  eax, 10jnz  TopOfLoop j1
00003840  20 20 20 54 6F 70 4F 66  4C 6F 6F 70 0D 0A 0D 0A  43 6F 64 65 20 53 65 71  75 65 6E 63 65 20 31 20     TopOfLoopCode Sequence 1 
00003860  63 6F 75 6C 64 20 62 65  6E 65 66 69 74 20 66 72  6F 6D 20 63 6F 6D 6D 6F  6E 20 73 75 62 65 78 70  could benefit from common subexp
00003880  72 65 73 73 69 6F 6E 20  65 6C 69 6D 69 6E 61 74  69 6F 6E 2E 20 49 74 20  69 73 20 6E 6F 74 20 75  ression elimination. It is not u
000038A0  6E 6F 70 74 69 6D 69 7A  65 64 20 63 6F 64 65 2C  20 69 74 20 69 73 20 6A  75 73 74 20 6E 6F 74 20  noptimized code, it is just not 
000038C0  74 68 6F 72 6F 75 67 68  6C 79 20 6F 70 74 69 6D  69 7A 65 64 2E 20 43 6F  64 65 20 74 68 61 74 20  thoroughly optimized. Code that 
000038E0  69 73 20 75 6E 6F 70 74  69 6D 69 7A 65 64 20 77  6F 75 6C 64 20 6E 6F 74  20 6B 65 65 70 20 22 69  is unoptimized would not keep "i
00003900  22 20 69 6E 20 61 20 72  65 67 69 73 74 65 72 2E  0D 0A 0D 0A 43 6F 64 65  20 53 65 71 75 65 6E 63  " in a register.Code Sequenc
00003920  65 20 32 20 69 73 20 74  68 65 20 6D 6F 73 74 20  73 74 72 61 69 67 68 74  2D 66 6F 72 77 61 72 64  e 2 is the most straight-forward
00003940  20 73 74 79 6C 65 20 63  6F 64 65 2E 0D 0A 0D 0A  43 6F 64 65 20 53 65 71  75 65 6E 63 65 20 33 20   style code.Code Sequence 3 
00003960  75 73 65 73 20 61 20 6C  6F 61 64 2F 73 74 6F 72  65 20 6D 6F 64 65 6C 2E  20 49 74 20 61 6C 73 6F  uses a load/store model. It also
00003980  20 69 6E 63 6F 72 70 6F  72 61 74 65 73 20 73 6F  6D 65 20 69 6E 64 75 63  74 69 6F 6E 20 76 61 72   incorporates some induction var
000039A0  69 61 62 6C 65 20 65 6C  69 6D 69 6E 61 74 69 6F  6E 20 6F 70 74 69 6D 69  7A 61 74 69 6F 6E 73 20  iable elimination optimizations 
000039C0  77 69 74 68 20 74 65 73  74 20 72 65 70 6C 61 63  65 6D 65 6E 74 2E 20 54  68 65 20 6C 6F 6F 70 20  with test replacement. The loop 
000039E0  63 6F 75 6E 74 65 72 20  69 6E 20 65 61 78 20 63  6F 75 6E 74 73 20 75 70  20 74 6F 20 7A 65 72 6F  counter in eax counts up to zero
00003A00  2E 20 20 57 68 65 6E 20  69 74 20 62 65 63 6F 6D  65 73 20 7A 65 72 6F 2C  20 74 68 65 20 6A 6E 7A  .  When it becomes zero, the jnz
00003A20  20 69 73 20 6E 6F 74 20  74 61 6B 65 6E 2E 20 54  68 69 73 20 63 6F 64 65  20 61 76 6F 69 64 73 20   is not taken. This code avoids 
00003A40  74 68 65 20 63 6F 6D 70  61 72 65 20 69 6E 73 74  72 75 63 74 69 6F 6E 2E  0D 0A 0D 0A 54 68 65 20  the compare instruction.The 
00003A60  70 65 72 66 6F 72 6D 61  6E 63 65 20 6F 66 20 65  61 63 68 20 6F 66 20 74  68 65 73 65 20 63 6F 64  performance of each of these cod
00003A80  65 20 73 65 71 75 65 6E  63 65 73 20 69 73 20 65  78 61 6D 69 6E 65 64 20  6F 6E 20 62 6F 74 68 20  e sequences is examined on both 
00003AA0  74 68 65 20 49 6E 74 65  6C 34 38 36 20 61 6E 64  20 50 65 6E 74 69 75 6D  20 0D 0A 70 72 6F 63 65  the Intel486 and Pentium proce
00003AC0  73 73 6F 72 73 2E 0D 0A  0D 0A 33 2E 31 2E 20 20  43 6F 64 65 20 53 65 71  75 65 6E 63 65 20 31 2C  ssors.3.1.  Code Sequence 1,
00003AE0  20 49 6E 74 65 6C 34 38  36 20 50 72 6F 63 65 73  73 6F 72 0D 0A 0D 0A 54  68 65 20 73 68 6C 20 69   Intel486 ProcessorThe shl i
00003B00  6E 73 74 72 75 63 74 69  6F 6E 20 74 61 6B 65 73  20 74 77 6F 20 63 79 63  6C 65 73 20 6F 6E 20 61  nstruction takes two cycles on a
00003B20  6E 20 49 6E 74 65 6C 34  38 36 20 70 72 6F 63 65  73 73 6F 72 2E 20 41 4C  55 20 6F 70 65 72 61 74  n Intel486 processor. ALU operat
00003B40  69 6F 6E 73 20 28 65 2E  67 2E 20 61 64 64 29 20  77 69 74 68 0D 0A 6D 65  6D 6F 72 79 20 72 65 73  ions (e.g. add) withmemory res
00003B60  75 6C 74 73 20 74 61 6B  65 20 33 20 63 6C 6F 63  6B 73 3A 20 31 20 74 6F  20 6C 6F 61 64 2C 20 31  ults take 3 clocks: 1 to load, 1
00003B80  20 74 6F 20 61 64 64 2C  20 61 6E 64 20 31 20 74  6F 20 73 74 6F 72 65 2E  0D 0A 0D 0A 09 6D 6F 76   to add, and 1 to store.mov
00003BA0  20 20 65 64 78 2C 20 65  61 78 20 09 3B 20 31 0D  0A 09 73 68 6C 20 20 65  64 78 2C 20 32 09 3B 20    edx, eax ; 1shl  edx, 2; 
00003BC0  32 20 20 20 32 20 63 6C  6F 63 6B 20 69 6E 73 74  72 75 63 74 69 6F 6E 0D  0A 09 20 20 28 73 68 31  2   2 clock instruction  (sh1
00003BE0  29 09 3B 20 33 0D 0A 09  69 6E 63 20 20 64 77 6F  72 64 20 70 74 72 20 5B  65 64 78 2B 61 5D 09 3B  ); 3inc  dword ptr [edx+a];
00003C00  20 34 20 20 20 33 20 63  6C 6F 63 6B 73 20 77 69  74 68 20 6D 65 6D 6F 72  79 20 6F 70 65 72 61 6E   4   3 clocks with memory operan
00003C20  64 0D 0A 09 20 20 28 69  6E 63 29 09 3B 20 35 20  20 20 20 20 70 6C 75 73  20 31 20 63 6C 6F 63 6B  d  (inc); 5     plus 1 clock
00003C40  20 66 6F 72 20 65 64 78  20 41 47 49 0D 0A 09 20  20 28 69 6E 63 29 09 3B  20 36 0D 0A 09 20 20 28   for edx AGI  (inc); 6  (
00003C60  69 6E 63 29 09 3B 20 37  0D 0A 09 6D 6F 76 20 20  65 64 78 2C 20 65 61 78  09 3B 20 38 0D 0A 09 73  inc); 7mov  edx, eax; 8s
00003C80  68 6C 20 20 65 64 78 2C  20 32 09 3B 20 39 20 20  20 32 20 63 6C 6F 63 6B  20 69 6E 73 74 72 75 63  hl  edx, 2; 9   2 clock instruc
00003CA0  74 69 6F 6E 0D 0A 09 20  20 28 73 68 6C 29 09 3B  20 31 30 0D 0A 09 69 6E  63 20 20 64 77 6F 72 64  tion  (shl); 10inc  dword
00003CC0  20 70 74 72 20 5B 65 64  78 2B 62 5D 09 3B 20 31  31 20 20 33 20 63 6C 6F  63 6B 73 20 77 69 74 68   ptr [edx+b]; 11  3 clocks with
00003CE0  20 6D 65 6D 6F 72 79 20  6F 70 65 72 61 6E 64 0D  0A 09 20 20 28 69 6E 63  29 09 3B 20 31 32 20 20   memory operand  (inc); 12  
00003D00  20 20 70 6C 75 73 20 31  20 63 6C 6F 63 6B 20 66  6F 72 20 65 64 78 20 41  47 49 0D 0A 09 20 20 28    plus 1 clock for edx AGI  (
00003D20  69 6E 63 29 09 3B 20 31  33 0D 0A 09 20 20 28 69  6E 63 29 09 3B 20 31 34  0D 0A 09 69 6E 63 20 20  inc); 13  (inc); 14inc  
00003D40  65 61 78 09 3B 20 31 35  0D 0A 09 63 6D 70 20 20  65 61 78 2C 20 31 30 09  3B 20 31 36 0D 0A 09 6A  eax; 15cmp  eax, 10; 16j
00003D60  6C 20 20 20 54 6F 70 4F  66 4C 6F 6F 70 20 09 3B  20 31 37 20 20 32 20 63  6C 6F 63 6B 73 20 62 65  l   TopOfLoop ; 17  2 clocks be
00003D80  63 61 75 73 65 20 6A 6C  20 69 73 20 70 72 65 66  69 78 65 64 0D 0A 09 09  3B 31 38 0D 0A 09 09 3B  cause jl is prefixed;18;
00003DA0  20 31 39 20 20 62 72 61  6E 63 68 20 74 61 6B 65  6E 20 70 65 6E 61 6C 74  79 0D 0A 09 09 3B 20 32   19  branch taken penalty; 2
00003DC0  30 0D 0A 09 6D 6F 76 20  20 65 64 78 2C 20 65 61  78 09 3B 20 32 31 20 20  6E 65 78 74 20 69 74 65  0mov  edx, eax; 21  next ite
00003DE0  72 61 74 69 6F 6E 0D 0A  0D 0A 54 6F 74 61 6C 3A  20 32 30 20 63 79 63 6C  65 73 0D 0A 0D 0A 43 79  rationTotal: 20 cyclesCy
00003E00  63 6C 65 73 20 34 20 61  6E 64 20 31 31 20 68 61  64 20 61 6E 20 41 64 64  72 65 73 73 20 47 65 6E  cles 4 and 11 had an Address Gen
00003E20  65 72 61 74 69 6F 6E 20  49 6E 74 65 72 6C 6F 63  6B 20 28 41 47 49 29 20  44 65 6C 61 79 2E 20 52  eration Interlock (AGI) Delay. R
00003E40  65 67 69 73 74 65 72 20  65 64 78 20 77 61 73 20  77 72 69 74 74 65 6E 20  69 6E 20 63 79 63 6C 65  egister edx was written in cycle
00003E60  20 33 20 61 6E 64 20 75  73 65 64 20 61 73 20 61  20 62 61 73 65 20 72 65  67 69 73 74 65 72 20 69   3 and used as a base register i
00003E80  6E 20 63 79 63 6C 65 20  35 2E 20 57 68 65 6E 20  61 20 72 65 67 69 73 74  65 72 20 69 73 20 75 73  n cycle 5. When a register is us
00003EA0  65 64 20 69 6E 20 61 6E  20 65 66 66 65 63 74 69  76 65 20 61 64 64 72 65  73 73 20 63 61 6C 63 75  ed in an effective address calcu
00003EC0  6C 61 74 69 6F 6E 20 69  6E 20 74 68 65 20 63 79  63 6C 65 20 61 66 74 65  72 20 74 68 65 20 72 65  lation in the cycle after the re
00003EE0  67 69 73 74 65 72 20 69  73 20 77 72 69 74 74 65  6E 2C 20 74 68 65 72 65  20 69 73 20 61 20 6F 6E  gister is written, there is a on
00003F00  65 2D 63 6C 6F 63 6B 20  70 65 6E 61 6C 74 79 2E  20 54 68 69 73 20 68 61  70 70 65 6E 73 20 62 65  e-clock penalty. This happens be
00003F20  63 61 75 73 65 20 74 68  65 20 65 66 66 65 63 74  69 76 65 20 61 64 64 72  65 73 73 20 63 61 6C 63  cause the effective address calc
00003F40  75 6C 61 74 69 6F 6E 20  69 73 20 70 65 72 66 6F  72 6D 65 64 20 69 6E 20  74 68 65 20 44 32 20 73  ulation is performed in the D2 s
00003F60  74 61 67 65 20 6F 66 20  74 68 65 20 70 69 70 65  6C 69 6E 65 2E 0D 0A 0D  0A 57 69 74 68 20 74 68  tage of the pipeline.With th
00003F80  65 20 61 73 73 65 6D 62  6C 65 72 20 75 73 65 64  20 66 6F 72 20 74 68 69  73 20 63 6F 64 65 20 73  e assembler used for this code s
00003FA0  65 71 75 65 6E 63 65 2C  20 74 68 65 20 6A 6C 20  69 6E 73 74 72 75 63 74  69 6F 6E 20 77 61 73 20  equence, the jl instruction was 
00003FC0  61 20 22 6A 75 6D 70 20  6E 65 61 72 2C 22 20 6E  6F 74 20 61 20 22 6A 75  6D 70 20 73 68 6F 72 74  a "jump near," not a "jump short
00003FE0  2E 22 20 22 4A 75 6D 70  20 6E 65 61 72 22 20 69  73 20 61 20 30 66 20 70  72 65 66 69 78 65 64 20  ." "Jump near" is a 0f prefixed 
00004000  69 6E 73 74 72 75 63 74  69 6F 6E 2E 20 50 72 65  66 69 78 65 64 20 69 6E  73 74 72 75 63 74 69 6F  instruction. Prefixed instructio
00004020  6E 73 20 74 61 6B 65 20  61 6E 20 65 78 74 72 61  20 63 79 63 6C 65 20 6F  6E 20 74 68 65 20 49 6E  ns take an extra cycle on the In
00004040  74 65 6C 34 38 36 20 70  72 6F 63 65 73 73 6F 72  20 69 6E 20 74 68 65 20  44 31 20 73 74 61 67 65  tel486 processor in the D1 stage
00004060  2E 0D 0A 0D 0A 54 68 65  20 49 6E 74 65 6C 34 38  36 20 70 72 6F 63 65 73  73 6F 72 20 64 6F 65 73  .The Intel486 processor does
00004080  20 6E 6F 74 20 68 61 76  65 20 61 6E 79 20 62 72  61 6E 63 68 20 70 72 65  64 69 63 74 69 6F 6E 20   not have any branch prediction 
000040A0  6D 65 63 68 61 6E 69 73  6D 2E 20 57 68 65 6E 65  76 65 72 20 6A 75 6D 70  73 20 61 72 65 20 74 61  mechanism. Whenever jumps are ta
000040C0  6B 65 6E 2C 0D 0A 74 68  65 72 65 20 69 73 20 61  20 32 2D 63 6C 6F 63 6B  20 70 65 6E 61 6C 74 79  ken,there is a 2-clock penalty
000040E0  20 28 43 79 63 6C 65 73  20 31 39 20 61 6E 64 20  32 30 29 2E 0D 0A 0D 0A  0C 33 2E 32 2E 20 20 43   (Cycles 19 and 20).3.2.  C
00004100  6F 64 65 20 53 65 71 75  65 6E 63 65 20 31 2C 20  50 65 6E 74 69 75 6D 20  50 72 6F 63 65 73 73 6F  ode Sequence 1, Pentium Processo
00004120  72 0D 0A 0D 0A 55 20 70  69 70 65 20 20 20 20 20  20 20 20 20 20 20 20 09  56 20 20 70 69 70 65 09  rU pipe            V  pipe
00004140  09 0D 0A 0D 0A 6D 6F 76  20 20 65 64 78 2C 20 65  61 78 09 09 3B 20 31 0D  0A 73 68 6C 20 20 65 64  mov  edx, eax; 1shl  ed
00004160  78 2C 20 32 20 09 09 3B  20 32 0D 0A 69 6E 63 20  20 64 77 6F 72 64 20 70  74 72 20 5B 65 64 78 2B  x, 2 ; 2inc  dword ptr [edx+
00004180  61 5D 09 09 3B 20 33 20  20 20 33 20 63 6C 6F 63  6B 73 20 77 69 74 68 20  6D 65 6D 2E 20 6F 70 0D  a]; 3   3 clocks with mem. op
000041A0  0A 20 20 28 69 6E 63 29  09 09 3B 20 34 20 20 20  20 20 70 6C 75 73 20 31  20 66 6F 72 20 65 64 78    (inc); 4     plus 1 for edx
000041C0  20 41 47 49 0D 0A 20 20  28 69 6E 63 29 09 09 3B  20 35 0D 0A 20 20 28 69  6E 63 29 09 6D 6F 76 20   AGI  (inc); 5  (inc)mov 
000041E0  20 65 64 78 2C 20 65 61  78 09 3B 20 36 20 20 20  50 61 69 72 73 20 77 69  74 68 20 6C 61 73 74 20   edx, eax; 6   Pairs with last 
00004200  55 20 63 79 63 6C 65 0D  0A 73 68 6C 20 20 65 64  78 2C 20 32 09 09 3B 20  37 0D 0A 69 6E 63 20 20  U cycleshl  edx, 2; 7inc  
00004220  64 77 6F 72 64 20 70 74  72 20 5B 65 64 78 2B 62  5D 09 09 3B 20 38 20 20  20 33 20 63 6C 6F 63 6B  dword ptr [edx+b]; 8   3 clock
00004240  73 20 77 69 74 68 20 6D  65 6D 2E 20 6F 70 0D 0A  20 20 28 69 6E 63 29 09  09 3B 20 39 20 20 20 20  s with mem. op  (inc); 9    
00004260  20 70 6C 75 73 20 6C 20  66 6F 72 20 65 64 78 20  41 47 49 0D 0A 20 20 28  69 6E 63 29 09 09 3B 20   plus l for edx AGI  (inc); 
00004280  31 30 0D 0A 20 20 28 69  6E 63 29 09 69 6E 63 20  20 65 61 78 09 3B 20 31  31 20 20 50 61 69 72 73  10  (inc)inc  eax; 11  Pairs
000042A0  20 77 69 74 68 20 6C 61  73 74 20 55 20 63 79 63  6C 65 0D 0A 63 6D 70 20  20 65 61 78 2C 20 31 30   with last U cyclecmp  eax, 10
000042C0  09 6A 6C 20 20 20 54 6F  70 4F 66 4C 6F 6F 70 09  3B 20 31 32 0D 0A 6D 6F  76 20 20 65 64 78 2C 20  jl   TopOfLoop; 12mov  edx, 
000042E0  65 61 78 09 09 3B 20 31  33 20 20 4E 65 78 74 20  69 74 65 72 61 74 69 6F  6E 0D 0A 0D 0A 54 6F 74  eax; 13  Next iterationTot
00004300  61 6C 20 3A 31 32 20 63  79 63 6C 65 73 0D 0A 0D  0A 4E 6F 74 65 20 74 68  61 74 20 74 68 65 20 22  al :12 cyclesNote that the "
00004320  73 68 69 66 74 22 20 69  6E 73 74 72 75 63 74 69  6F 6E 20 74 61 6B 65 73  20 74 77 6F 20 63 6C 6F  shift" instruction takes two clo
00004340  63 6B 73 20 6F 6E 20 74  68 65 20 49 6E 74 65 6C  34 38 36 20 70 72 6F 63  65 73 73 6F 72 20 61 6E  cks on the Intel486 processor an
00004360  64 20 6F 6E 6C 79 20 6F  6E 65 20 6F 6E 20 74 68  65 20 50 65 6E 74 69 75  6D 20 70 72 6F 63 65 73  d only one on the Pentium proces
00004380  73 6F 72 2E 20 54 68 65  20 50 65 6E 74 69 75 6D  20 70 72 6F 63 65 73 73  6F 72 20 68 61 73 20 73  sor. The Pentium processor has s
000043A0  70 65 63 69 61 6C 20 68  61 72 64 77 61 72 65 20  74 6F 20 61 76 6F 69 64  20 74 68 65 20 30 66 20  pecial hardware to avoid the 0f 
000043C0  70 72 65 66 69 78 20 64  65 6C 61 79 20 6F 6E 20  6A 63 63 20 22 6E 65 61  72 22 20 69 6E 73 74 72  prefix delay on jcc "near" instr
000043E0  75 63 74 69 6F 6E 73 2E  20 49 74 20 61 6C 73 6F  20 63 61 6E 20 70 61 69  72 20 74 68 65 20 63 6F  uctions. It also can pair the co
00004400  6D 70 61 72 65 20 61 6E  64 20 6A 75 6D 70 2C 20  65 76 65 6E 20 74 68 6F  75 67 68 20 63 6D 70 20  mpare and jump, even though cmp 
00004420  77 72 69 74 65 73 20 61  20 63 6F 6E 64 69 74 69  6F 6E 20 66 6C 61 67 20  61 6E 64 20 6A 6C 20 72  writes a condition flag and jl r
00004440  65 61 64 73 20 69 74 2E  20 54 68 65 20 62 72 61  6E 63 68 20 70 72 65 64  69 63 74 69 6F 6E 20 68  eads it. The branch prediction h
00004460  61 72 64 77 61 72 65 2C  20 77 68 65 6E 20 69 74  20 70 72 65 64 69 63 74  73 20 74 68 65 20 62 72  ardware, when it predicts the br
00004480  61 6E 63 68 20 74 6F 20  62 65 20 74 61 6B 65 6E  2C 20 63 61 6E 20 65 78  65 63 75 74 65 20 74 68  anch to be taken, can execute th
000044A0  65 20 74 61 72 67 65 74  20 69 6E 73 74 72 75 63  74 69 6F 6E 20 69 6E 20  74 68 65 20 63 79 63 6C  e target instruction in the cycl
000044C0  65 20 66 6F 6C 6C 6F 77  69 6E 67 20 74 68 65 20  6A 75 6D 70 2E 20 57 68  65 6E 20 61 20 6D 75 6C  e following the jump. When a mul
000044E0  74 69 70 6C 65 20 63 79  63 6C 65 20 69 6E 73 74  72 75 63 74 69 6F 6E 20  69 6E 20 74 68 65 20 55  tiple cycle instruction in the U
00004500  20 70 69 70 65 20 70 61  69 72 73 20 77 69 74 68  20 61 6E 6F 74 68 65 72  20 69 6E 73 74 72 75 63   pipe pairs with another instruc
00004520  74 69 6F 6E 2C 20 74 68  65 20 6C 61 73 74 20 6D  65 6D 6F 72 79 20 6F 70  65 72 61 74 69 6F 6E 20  tion, the last memory operation 
00004540  6F 66 20 74 68 65 20 55  20 70 69 70 65 20 69 6E  73 74 72 75 63 74 69 6F  6E 20 70 61 69 72 73 20  of the U pipe instruction pairs 
00004560  77 69 74 68 20 74 68 65  20 66 69 72 73 74 20 6F  70 65 72 61 74 69 6F 6E  20 6F 66 20 74 68 65 20  with the first operation of the 
00004580  56 20 20 70 69 70 65 20  69 6E 73 74 72 75 63 74  69 6F 6E 20 28 63 79 63  6C 65 73 20 36 20 61 6E  V  pipe instruction (cycles 6 an
000045A0  64 20 31 31 29 2E 0D 0A  0D 0A 33 2E 33 2E 20 20  43 6F 64 65 20 53 65 71  75 65 6E 63 65 20 32 2C  d 11).3.3.  Code Sequence 2,
000045C0  20 49 6E 74 65 6C 34 38  36 20 50 72 6F 63 65 73  73 6F 72 0D 0A 0D 0A 69  6E 63 20 20 64 77 6F 72   Intel486 Processorinc  dwor
000045E0  64 20 70 74 72 20 5B 65  61 78 2A 34 2B 61 5D 20  09 3B 20 31 20 20 20 33  20 63 6C 6F 63 6B 73 20  d ptr [eax*4+a] ; 1   3 clocks 
00004600  77 69 74 68 20 6D 65 6D  6F 72 79 20 6F 70 65 72  61 6E 64 0D 0A 20 20 28  69 6E 63 29 09 3B 20 32  with memory operand  (inc); 2
00004620  20 20 20 20 20 70 6C 75  73 20 31 20 66 6F 72 20  69 6E 64 65 78 69 6E 67  0D 0A 20 20 28 69 6E 63       plus 1 for indexing  (inc
00004640  29 09 3B 20 33 0D 0A 20  20 28 69 6E 63 29 09 3B  20 34 0D 0A 69 6E 63 20  20 64 77 6F 72 64 20 70  ); 3  (inc); 4inc  dword p
00004660  74 72 20 5B 65 61 78 2A  34 2B 62 5D 09 3B 20 35  20 20 20 33 20 63 6C 6F  63 6B 73 20 77 69 74 68  tr [eax*4+b]; 5   3 clocks with
00004680  20 6D 65 6D 6F 72 79 20  6F 70 65 72 61 6E 64 0D  0A 20 20 28 69 6E 63 29  09 3B 20 36 20 20 20 20   memory operand  (inc); 6    
000046A0  20 70 6C 75 73 20 31 20  66 6F 72 20 69 6E 64 65  78 69 6E 67 0D 0A 20 20  28 69 6E 63 29 09 3B 20   plus 1 for indexing  (inc); 
000046C0  37 0D 0A 20 20 28 69 6E  63 29 09 3B 20 38 0D 0A  69 6E 63 20 20 65 61 78  09 3B 20 39 0D 0A 63 6D  7  (inc); 8inc  eax; 9cm
000046E0  70 20 20 65 61 78 2C 20  31 30 09 3B 20 31 30 0D  0A 6A 6C 20 20 20 54 6F  70 4F 66 4C 6F 6F 70 09  p  eax, 10; 10jl   TopOfLoop
00004700  3B 20 31 31 20 20 32 20  63 6C 6F 63 6B 73 20 62  65 63 61 75 73 65 20 6A  6C 20 69 73 20 70 72 65  ; 11  2 clocks because jl is pre
00004720  66 69 78 65 64 0D 0A 09  3B 20 31 32 0D 0A 09 3B  20 31 33 20 20 42 72 61  6E 63 68 20 74 61 6B 65  fixed; 12; 13  Branch take
00004740  6E 20 70 65 6E 61 6C 74  79 0D 0A 09 3B 20 31 34  0D 0A 69 6E 63 20 20 64  77 6F 72 64 20 70 74 72  n penalty; 14inc  dword ptr
00004760  20 5B 65 61 78 2A 34 2B  61 5D 09 3B 20 31 35 20  20 4E 65 78 74 20 69 74  65 72 61 74 69 6F 6E 0D   [eax*4+a]; 15  Next iteration
00004780  0A 0D 0A 54 6F 74 61 6C  20 3A 31 34 20 63 79 63  6C 65 73 0D 0A 0D 0A 4F  6E 20 74 68 65 20 49 6E  Total :14 cyclesOn the In
000047A0  74 65 6C 34 38 36 20 70  72 6F 63 65 73 73 6F 72  2C 20 77 68 65 6E 65 76  65 72 20 61 6E 20 69 6E  tel486 processor, whenever an in
000047C0  64 65 78 20 72 65 67 69  73 74 65 72 20 69 73 20  75 73 65 64 20 69 6E 20  61 6E 20 65 66 66 65 63  dex register is used in an effec
000047E0  74 69 76 65 20 61 64 64  72 65 73 73 20 63 61 6C  63 75 6C 61 74 69 6F 6E  2C 0D 0A 74 68 65 72 65  tive address calculation,there
00004800  20 69 73 20 61 20 6F 6E  65 2D 63 6C 6F 63 6B 20  70 65 6E 61 6C 74 79 20  69 6E 20 74 68 65 20 44   is a one-clock penalty in the D
00004820  32 20 73 74 61 67 65 20  28 43 79 63 6C 65 73 20  31 20 61 6E 64 20 35 29  2E 20 54 68 69 73 20 64  2 stage (Cycles 1 and 5). This d
00004840  6F 65 73 20 6E 6F 74 20  61 70 70 6C 79 20 74 6F  20 62 61 73 65 0D 0A 72  65 67 69 73 74 65 72 73  oes not apply to baseregisters
00004860  2E 0D 0A 0D 0A 0D 0A 0D  0A 0D 0A 0D 0A 0D 0A 0D  0A 33 2E 34 2E 20 20 43  6F 64 65 20 73 65 71 75  .3.4.  Code sequ
00004880  65 6E 63 65 20 32 2C 20  50 65 6E 74 69 75 6D 20  50 72 6F 63 65 73 73 6F  72 0D 0A 0D 0A 55 20 70  ence 2, Pentium ProcessorU p
000048A0  69 70 65 20 20 20 20 20  20 20 20 20 20 20 20 20  09 20 56 20 20 70 69 70  65 20 0D 0A 0D 0A 69 6E  ipe              V  pipe in
000048C0  63 20 20 20 64 77 6F 72  64 20 70 74 72 20 5B 65  61 78 2A 34 2B 61 5D 20  09 3B 20 31 20 33 20 63  c   dword ptr [eax*4+a] ; 1 3 c
000048E0  6C 6F 63 6B 73 20 77 69  74 68 20 6D 65 6D 2E 20  6F 70 2E 0D 0A 20 20 28  69 6E 63 29 09 09 3B 20  locks with mem. op.  (inc); 
00004900  32 0D 0A 20 20 28 69 6E  63 29 09 69 6E 63 20 20  64 77 6F 72 64 20 70 74  72 20 5B 65 61 78 2A 34  2  (inc)inc  dword ptr [eax*4
00004920  2B 62 5D 09 3B 20 33 20  31 73 74 20 56 20 70 61  69 72 73 20 77 69 74 68  20 6C 61 73 74 20 55 0D  +b]; 3 1st V pairs with last U
00004940  0A 20 09 20 20 28 69 6E  63 29 09 3B 20 34 0D 0A  09 20 20 28 69 6E 63 29  09 3B 20 35 0D 0A 69 6E     (inc); 4  (inc); 5in
00004960  63 20 20 20 20 65 61 78  09 09 3B 20 36 0D 0A 63  6D 70 20 20 20 20 65 61  78 2C 20 31 30 09 6A 6C  c    eax; 6cmp    eax, 10jl
00004980  20 20 54 6F 70 4F 66 4C  6F 6F 70 09 3B 20 37 0D  0A 69 6E 63 20 20 20 20  64 77 6F 72 64 20 70 74    TopOfLoop; 7inc    dword pt
000049A0  72 20 5B 65 61 78 2A 34  2B 61 5D 09 3B 20 38 20  4E 65 78 74 20 69 74 65  72 61 74 69 6F 6E 0D 0A  r [eax*4+a]; 8 Next iteration
000049C0  0D 0A 54 6F 74 61 6C 3A  20 37 20 63 79 63 6C 65  73 0D 0A 0D 0A 54 68 65  20 69 6E 63 20 65 61 78  Total: 7 cyclesThe inc eax
000049E0  20 69 6E 73 74 72 75 63  74 69 6F 6E 20 61 74 20  63 79 63 6C 65 20 36 20  64 69 64 20 6E 6F 74 20   instruction at cycle 6 did not 
00004A00  70 61 69 72 20 77 69 74  68 20 74 68 65 20 63 6D  70 20 69 6E 73 74 72 75  63 74 69 6F 6E 20 62 65  pair with the cmp instruction be
00004A20  63 61 75 73 65 20 6F 66  20 61 20 72 65 67 69 73  74 65 72 20 64 65 70 65  6E 64 65 6E 63 65 2E 20  cause of a register dependence. 
00004A40  4F 74 68 65 72 20 74 68  61 6E 20 69 6E 20 61 20  66 65 77 20 73 70 65 63  69 61 6C 20 63 61 73 65  Other than in a few special case
00004A60  73 20 28 73 75 63 68 20  61 73 20 63 6D 70 2D 6A  6D 70 29 2C 20 61 20 72  65 67 69 73 74 65 72 20  s (such as cmp-jmp), a register 
00004A80  63 61 6E 6E 6F 74 20 62  65 20 61 63 63 65 73 73  65 64 20 75 6E 74 69 6C  20 74 68 65 20 63 79 63  cannot be accessed until the cyc
00004AA0  6C 65 20 61 66 74 65 72  20 69 74 20 69 73 20 77  72 69 74 74 65 6E 2E 0D  0A 0D 0A 33 2E 35 2E 20  le after it is written.3.5. 
00004AC0  20 43 6F 64 65 20 53 65  71 75 65 6E 63 65 20 33  2C 20 49 6E 74 65 6C 34  38 36 20 50 72 6F 63 65   Code Sequence 3, Intel486 Proce
00004AE0  73 73 6F 72 0D 0A 0D 0A  09 6D 6F 76 20 20 65 64  78 2C 20 5B 65 61 78 2B  34 30 2B 61 5D 09 3B 20  ssormov  edx, [eax+40+a]; 
00004B00  31 0D 0A 09 09 3B 20 32  20 20 20 46 69 6C 6C 20  70 72 65 66 65 74 63 68  20 62 75 66 66 65 72 0D  1; 2   Fill prefetch buffer
00004B20  0A 09 6D 6F 76 20 20 65  63 78 2C 20 5B 65 61 78  2B 34 30 2B 62 5D 09 3B  20 33 0D 0A 09 69 6E 63  mov  ecx, [eax+40+b]; 3inc
00004B40  20 20 65 64 78 09 3B 20  34 0D 0A 09 69 6E 63 20  20 65 63 78 09 3B 20 35  0D 0A 09 6D 6F 76 20 20    edx; 4inc  ecx; 5mov  
00004B60  5B 65 61 78 2B 34 30 2B  61 5D 2C 20 65 64 78 09  3B 20 36 0D 0A 09 6D 6F  76 20 20 5B 65 61 78 2B  [eax+40+a], edx; 6mov  [eax+
00004B80  34 30 2B 62 5D 2C 20 65  63 78 20 09 3B 20 37 0D  0A 09 61 64 64 20 20 65  61 78 2C 20 34 09 3B 20  40+b], ecx ; 7add  eax, 4; 
00004BA0  38 0D 0A 09 6A 6E 7A 20  20 54 6F 70 4F 66 4C 6F  6F 70 09 3B 20 39 20 20  20 50 72 65 66 69 78 20  8jnz  TopOfLoop; 9   Prefix 
00004BC0  6F 6E 20 6A 6E 7A 0D 0A  09 09 3B 20 31 30 0D 0A  09 09 3B 20 31 31 20 20  42 72 61 6E 63 68 20 70  on jnz; 10; 11  Branch p
00004BE0  65 6E 61 6C 74 79 0D 0A  20 20 20 20 09 09 3B 20  31 32 0D 0A 09 6D 6F 76  20 20 65 64 78 2C 20 5B  enalty    ; 12mov  edx, [
00004C00  65 61 78 2B 34 30 2B 61  5D 09 3B 20 31 33 20 20  4E 65 78 74 20 69 74 65  72 61 74 69 6F 6E 0D 0A  eax+40+a]; 13  Next iteration
00004C20  0D 0A 54 6F 74 61 6C 20  3A 20 31 32 20 63 79 63  6C 65 73 0D 0A 0D 0A 54  68 65 20 64 65 6C 61 79  Total : 12 cyclesThe delay
00004C40  20 61 74 20 63 6C 6F 63  6B 20 32 20 69 73 20 63  61 75 73 65 64 20 62 79  20 61 20 6D 69 73 73 20   at clock 2 is caused by a miss 
00004C60  69 6E 20 74 68 65 20 49  6E 74 65 6C 34 38 36 20  70 72 6F 63 65 73 73 6F  72 27 73 20 70 72 65 66  in the Intel486 processor's pref
00004C80  65 74 63 68 20 62 75 66  66 65 72 2E 20 54 68 65  20 70 72 65 76 69 6F 75  73 20 74 77 6F 20 65 78  etch buffer. The previous two ex
00004CA0  61 6D 70 6C 65 73 20 68  61 64 20 61 20 73 69 6D  69 6C 61 72 20 70 65 6E  61 6C 74 79 2C 20 62 75  amples had a similar penalty, bu
00004CC0  74 20 69 74 20 77 61 73  20 68 69 64 64 65 6E 20  62 79 20 74 68 65 20 32  2D 63 6C 6F 63 6B 73 20  t it was hidden by the 2-clocks 
00004CE0  75 73 65 64 20 66 6F 72  20 74 68 65 20 73 68 6C  20 69 6E 73 74 72 75 63  74 69 6F 6E 20 69 6E 20  used for the shl instruction in 
00004D00  63 6F 64 65 20 73 65 71  75 65 6E 63 65 20 31 2C  20 61 6E 64 20 62 79 20  74 68 65 20 69 6E 64 65  code sequence 1, and by the inde
00004D20  78 20 70 65 6E 61 6C 74  79 20 69 6E 20 63 6F 64  65 20 73 65 71 75 65 6E  63 65 20 32 2E 0D 0A 0D  x penalty in code sequence 2.
00004D40  0A 33 2E 36 2E 20 20 43  6F 64 65 20 53 65 71 75  65 6E 63 65 20 33 2C 20  50 65 6E 74 69 75 6D 20  3.6.  Code Sequence 3, Pentium 
00004D60  50 72 6F 63 65 73 73 6F  72 0D 0A 0D 0A 55 20 70  69 70 65 20 09 20 20 56  20 20 70 69 70 65 0D 0A  ProcessorU pipe   V  pipe
00004D80  0D 0A 6D 6F 76 20 20 65  64 78 2C 20 5B 65 61 78  2B 34 30 2B 61 5D 09 6D  6F 76 20 20 65 63 78 2C  mov  edx, [eax+40+a]mov  ecx,
00004DA0  20 5B 65 61 78 2B 34 30  2B 62 5D 09 3B 20 31 0D  0A 69 6E 63 20 20 65 64  78 09 69 6E 63 20 20 65   [eax+40+b]; 1inc  edxinc  e
00004DC0  63 78 09 3B 20 32 0D 0A  6D 6F 76 20 20 5B 65 61  78 2B 34 30 2B 61 5D 2C  20 65 64 78 09 6D 6F 76  cx; 2mov  [eax+40+a], edxmov
00004DE0  20 20 5B 65 61 78 2B 34  30 2B 62 5D 2C 20 65 63  78 09 3B 20 33 0D 0A 61  64 64 20 20 65 61 78 2C    [eax+40+b], ecx; 3add  eax,
00004E00  20 34 09 6A 6E 7A 20 20  54 6F 70 4F 66 4C 6F 6F  70 09 3B 20 34 0D 0A 6D  6F 76 20 20 65 64 78 2C   4jnz  TopOfLoop; 4mov  edx,
00004E20  20 5B 65 61 78 2B 34 30  2B 61 5D 09 6D 6F 76 20  20 65 63 78 2C 20 5B 65  61 78 2B 34 30 2B 62 5D   [eax+40+a]mov  ecx, [eax+40+b]
00004E40  09 3B 20 35 20 41 47 49  20 6F 6E 20 65 61 78 20  77 69 74 68 0D 0A 20 20  28 6D 6F 76 29 20 20 20  ; 5 AGI on eax with  (mov)   
00004E60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 09 20 20 28 6D 6F  76 29 09 3B 20 36 20 6E                      (mov); 6 n
00004E80  65 78 74 20 69 74 65 72  61 74 69 6F 6E 0D 0A 0D  0A 54 6F 74 61 6C 3A 20  35 20 63 79 63 6C 65 73  ext iterationTotal: 5 cycles
00004EA0  0D 0A 0D 0A 54 68 65 20  70 72 65 66 65 74 63 68  20 62 75 66 66 65 72 20  64 65 6C 61 79 20 6F 6E  The prefetch buffer delay on
00004EC0  20 74 68 65 20 49 6E 74  65 6C 34 38 36 20 70 72  6F 63 65 73 73 6F 72 20  69 73 20 6E 6F 20 6C 6F   the Intel486 processor is no lo
00004EE0  6E 67 65 72 20 72 65 6C  65 76 61 6E 74 2E 20 54  68 65 20 50 65 6E 74 69  75 6D 20 70 72 6F 63 65  nger relevant. The Pentium proce
00004F00  73 73 6F 72 20 68 61 73  20 6D 6F 72 65 20 70 72  65 66 65 74 63 68 20 62  75 66 66 65 72 73 20 61  ssor has more prefetch buffers a
00004F20  6E 64 20 64 69 66 66 65  72 65 6E 74 20 61 6C 69  67 6E 6D 65 6E 74 20 63  61 70 61 62 69 6C 69 74  nd different alignment capabilit
00004F40  69 65 73 2E 20 49 6E 20  74 68 65 20 65 78 61 6D  70 6C 65 20 61 62 6F 76  65 2C 20 74 68 65 20 6C  ies. In the example above, the l
00004F60  6F 6F 70 20 63 6F 6E 74  72 6F 6C 20 69 73 20 64  65 74 65 72 6D 69 6E 65  64 20 62 79 20 74 68 65  oop control is determined by the
00004F80  20 61 64 64 20 65 61 78  2C 20 34 20 69 6E 73 74  72 75 63 74 69 6F 6E 20  73 65 74 74 69 6E 67 20   add eax, 4 instruction setting 
00004FA0  74 68 65 20 7A 65 72 6F  20 63 6F 6E 64 69 74 69  6F 6E 20 63 6F 64 65 20  61 73 20 69 74 20 63 6F  the zero condition code as it co
00004FC0  75 6E 74 73 20 75 70 20  74 6F 20 7A 65 72 6F 2E  0D 0A 0D 0A 54 68 65 72  65 20 69 73 20 61 6E 20  unts up to zero.There is an 
00004FE0  41 47 49 20 6F 6E 20 65  61 78 20 62 65 63 61 75  73 65 20 74 68 65 20 61  64 64 20 69 6E 20 63 79  AGI on eax because the add in cy
00005000  63 6C 65 20 34 20 77 72  69 74 65 73 20 74 6F 20  65 61 78 20 61 6E 64 20  62 6F 74 68 20 6D 6F 76  cle 4 writes to eax and both mov
00005020  27 20 73 20 69 6E 20 63  79 63 6C 65 20 35 20 72  65 66 65 72 65 6E 63 65  20 69 74 2C 20 65 76 65  ' s in cycle 5 reference it, eve
00005040  6E 20 74 68 6F 75 67 68  20 74 68 65 72 65 20 69  73 20 61 20 62 72 61 6E  63 68 20 69 6E 20 62 65  n though there is a branch in be
00005060  74 77 65 65 6E 2E 20 4F  6E 20 74 68 65 20 49 6E  74 65 6C 34 38 36 20 70  72 6F 63 65 73 73 6F 72  tween. On the Intel486 processor
00005080  2C 20 41 47 6C 27 73 20  6F 6E 6C 79 20 68 61 70  70 65 6E 20 62 65 74 77  65 65 6E 20 61 64 6A 61  , AGl's only happen between adja
000050A0  63 65 6E 74 20 69 6E 73  74 72 75 63 74 69 6F 6E  73 2E 20 4F 6E 20 74 68  65 20 50 65 6E 74 69 75  cent instructions. On the Pentiu
000050C0  6D 20 70 72 6F 63 65 73  73 6F 72 2C 20 74 68 65  72 65 20 63 61 6E 20 62  65 20 74 77 6F 20 69 6E  m processor, there can be two in
000050E0  73 74 72 75 63 74 69 6F  6E 73 20 69 6E 20 62 65  74 77 65 65 6E 20 61 6E  64 20 73 74 69 6C 6C 20  structions in between and still 
00005100  62 65 20 61 6E 20 41 47  49 3B 20 66 6F 72 20 65  78 61 6D 70 6C 65 2C 20  62 65 74 77 65 65 6E 20  be an AGI; for example, between 
00005120  61 20 55 20 70 69 70 65  20 61 64 64 20 69 6E 20  63 79 63 6C 65 20 6E 20  61 6E 64 20 61 20 56 20  a U pipe add in cycle n and a V 
00005140  20 70 69 70 65 20 6D 6F  76 20 74 68 61 74 20 75  73 65 73 20 74 68 65 20  72 65 73 75 6C 74 20 6F   pipe mov that uses the result o
00005160  66 20 74 68 65 20 61 64  64 20 61 73 20 61 20 62  61 73 65 20 69 6E 20 63  79 63 6C 65 20 6E 2B 31  f the add as a base in cycle n+1
00005180  2E 20 54 68 65 20 67 65  6E 65 72 61 6C 20 72 75  6C 65 20 69 73 20 74 68  61 6E 20 61 6E 20 41 47  . The general rule is than an AG
000051A0  49 20 77 69 6C 6C 20 6F  63 63 75 72 20 77 68 65  6E 20 61 6E 79 20 69 6E  73 74 72 75 63 74 69 6F  I will occur when any instructio
000051C0  6E 20 69 6E 20 63 79 63  6C 65 20 6E 20 77 72 69  74 65 73 20 74 6F 20 61  20 72 65 67 69 73 74 65  n in cycle n writes to a registe
000051E0  72 20 74 68 61 74 20 69  73 20 75 73 65 64 20 69  6E 20 61 6E 20 65 66 66  65 63 74 69 76 65 20 61  r that is used in an effective a
00005200  64 64 72 65 73 73 20 63  61 6C 63 75 6C 61 74 69  6F 6E 20 69 6E 20 61 6E  79 20 69 6E 73 74 72 75  ddress calculation in any instru
00005220  63 74 69 6F 6E 20 69 6E  20 63 79 63 6C 65 20 6E  2B 31 2E 20 54 68 69 73  20 69 73 20 62 65 63 61  ction in cycle n+1. This is beca
00005240  75 73 65 20 74 68 65 20  65 66 66 65 63 74 69 76  65 20 61 64 64 72 65 73  73 20 63 61 6C 63 75 6C  use the effective address calcul
00005260  61 74 69 6F 6E 20 69 73  20 70 65 72 66 6F 72 6D  65 64 20 69 6E 20 44 32  2E 0D 0A 0D 0A 49 6E 20  ation is performed in D2.In 
00005280  61 20 63 6F 6D 70 69 6C  65 72 27 73 20 69 6E 74  65 72 6D 65 64 69 61 74  65 20 72 65 70 72 65 73  a compiler's intermediate repres
000052A0  65 6E 74 61 74 69 6F 6E  20 6F 66 20 74 68 65 20  70 72 6F 67 72 61 6D 20  62 65 66 6F 72 65 20 69  entation of the program before i
000052C0  6E 73 74 72 75 63 74 69  6F 6E 20 73 63 68 65 64  75 6C 69 6E 67 20 28 72  65 6F 72 64 65 72 69 6E  nstruction scheduling (reorderin
000052E0  67 29 2C 20 6F 6E 65 20  6D 69 67 68 74 20 65 78  70 65 63 74 20 74 68 65  20 6F 72 64 65 72 20 66  g), one might expect the order f
00005300  6F 72 20 73 65 71 75 65  6E 63 65 20 33 20 74 6F  20 62 65 3A 0D 0A 0D 0A  6C 6F 61 64 20 5B 61 2B  or sequence 3 to be:load [a+
00005320  65 61 78 2B 34 30 5D 20  20 20 20 20 20 20 20 20  20 20 20 6C 6F 61 64 20  5B 62 2B 65 61 78 2B 34  eax+40]            load [b+eax+4
00005340  30 5D 0D 0A 20 20 20 20  20 20 20 7C 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  0]       |                    
00005360  20 20 20 20 20 20 20 20  20 7C 0D 0A 20 20 20 20  20 20 20 7C 20 20 20 20  20 20 20 20 20 20 20 20           |       |            
00005380  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 7C 0D 0A 20 20 20 20  20 20 20 61 64 64 20 31                   |       add 1
000053A0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 61 64  64 20 31 0D 0A 20 20 20                        add 1   
000053C0  20 20 20 20 20 7C 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20       |                          
000053E0  20 20 20 7C 0D 0A 20 20  20 20 20 20 20 20 7C 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20     |        |                 
00005400  20 20 20 20 20 20 20 20  20 20 20 20 7C 0D 0A 20  20 20 20 20 73 74 6F 72  65 20 5B 61 2B 65 61 78              |     store [a+eax
00005420  2B 34 30 5D 20 20 20 20  20 20 73 74 6F 72 65 20  5B 62 2B 65 61 78 2B 34  30 5D 0D 0A 20 20 20 20  +40]      store [b+eax+40]    
00005440  20 20 20 20 20 20 20 20  20 20 20 20 7C 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 7C 20              |                 | 
00005460  20 20 20 20 20 20 20 20  20 20 20 0D 0A 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 7C 20 20                             |  
00005480  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 7C  20 20 20 20 20 20 20 20  20 20 20 20 0D 0A 20 20                 |              
000054A0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 61 64 64 20 20 65 61  78 2C 20 31 0D 0A 20 20                   add  eax, 1  
000054C0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 7C  0D 0A 20 20 20 20 20 20                         |      
000054E0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 7C 0D 0A 20 20  20 20 20 20 20 20 20 20                     |          
00005500  20 20 20 20 20 20 20 20  20 20 20 63 6D 70 20 20  31 30 0D 0A 20 20 20 20  20 20 20 20 20 20 20 20             cmp  10            
00005520  20 20 20 20 20 20 20 20  20 20 20 20 20 7C 0D 0A  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20               |                
00005540  20 20 20 20 20 20 20 20  20 7C 0D 0A 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20           |                    
00005560  20 20 20 6A 75 6D 70 0D  0A 0D 0A 52 65 6F 72 64  65 72 69 6E 67 20 74 68  69 73 20 69 6E 74 65 72     jumpReordering this inter
00005580  6D 65 64 69 61 74 65 20  63 6F 64 65 20 74 6F 20  6F 62 74 61 69 6E 20 74  68 65 20 61 73 73 65 6D  mediate code to obtain the assem
000055A0  62 6C 79 20 63 6F 64 65  20 73 68 6F 77 6E 20 65  61 72 6C 69 65 72 20 69  6E 76 6F 6C 76 65 73 20  bly code shown earlier involves 
000055C0  6D 6F 76 69 6E 67 20 74  68 65 20 6C 6F 61 64 20  66 72 6F 6D 20 22 62 22  20 69 6E 20 66 72 6F 6E  moving the load from "b" in fron
000055E0  74 20 6F 66 20 74 68 65  20 73 74 6F 72 65 20 69  6E 74 6F 20 22 61 2E 22  20 49 6E 73 74 72 75 63  t of the store into "a." Instruc
00005600  74 69 6F 6E 20 72 65 6F  72 64 65 72 69 6E 67 20  72 65 71 75 69 72 65 73  20 6B 6E 6F 77 69 6E 67  tion reordering requires knowing
00005620  20 74 68 61 74 20 6D 65  6D 6F 72 79 20 6F 70 65  72 61 6E 64 73 20 61 72  65 20 69 6E 64 65 70 65   that memory operands are indepe
00005640  6E 64 65 6E 74 2E 20 49  6E 20 74 68 69 73 20 63  61 73 65 2C 20 69 74 20  63 61 6E 20 62 65 20 65  ndent. In this case, it can be e
00005660  61 73 69 6C 79 20 70 72  6F 76 65 6E 20 74 68 61  74 20 65 6C 65 6D 65 6E  74 73 20 6F 66 20 22 61  asily proven that elements of "a
00005680  22 20 64 6F 20 6E 6F 74  20 6F 76 65 72 6C 61 70  20 69 6E 20 6D 65 6D 6F  72 79 20 77 69 74 68 20  " do not overlap in memory with 
000056A0  65 6C 65 6D 65 6E 74 73  20 6F 66 20 22 62 2E 22  0D 0A 0D 0A 43 6F 6D 6D  65 6E 74 73 20 20 20 20  elements of "b."Comments    
000056C0  20 20 20 20 20 20 20 20  20 20 0D 0A 0D 0A 55 73  69 6E 67 20 61 20 6C 6F  61 64 2F 73 74 6F 72 65            Using a load/store
000056E0  20 70 61 72 61 64 69 67  6D 20 77 6F 72 6B 73 20  77 65 6C 6C 20 6F 6E 20  74 68 65 20 50 65 6E 74   paradigm works well on the Pent
00005700  69 75 6D 20 70 72 6F 63  65 73 73 6F 72 20 62 65  63 61 75 73 65 20 69 74  20 65 78 70 6F 73 65 73  ium processor because it exposes
00005720  20 6D 6F 72 65 20 6F 70  70 6F 72 74 75 6E 69 74  69 65 73 20 66 6F 72 20  70 61 69 72 69 6E 67 20   more opportunities for pairing 
00005740  69 6E 73 74 72 75 63 74  69 6F 6E 73 20 77 68 65  6E 20 74 68 65 20 69 6E  73 74 72 75 63 74 69 6F  instructions when the instructio
00005760  6E 73 20 61 72 65 20 73  63 68 65 64 75 6C 65 64  2E 20 20 49 74 20 64 6F  65 73 20 6E 6F 74 20 68  ns are scheduled.  It does not h
00005780  6F 77 65 76 65 72 2C 20  69 6E 63 72 65 61 73 65  20 74 68 65 20 6E 75 6D  62 65 72 20 6F 66 20 63  owever, increase the number of c
000057A0  6C 6F 63 6B 73 2C 20 65  76 65 6E 20 77 69 74 68  6F 75 74 20 73 63 68 65  64 75 6C 69 6E 67 2C 20  locks, even without scheduling, 
000057C0  74 68 6F 75 67 68 20 74  68 69 73 20 69 67 6E 6F  72 65 73 20 70 6F 73 73  69 62 6C 65 20 73 65 63  though this ignores possible sec
000057E0  6F 6E 64 61 72 79 20 65  66 66 65 63 74 73 20 73  75 63 68 20 61 73 20 6C  61 72 67 65 72 20 63 6F  ondary effects such as larger co
00005800  64 65 20 73 69 7A 65 2E  20 20 20 54 68 69 73 20  63 61 6E 20 6C 65 61 64  20 74 6F 20 69 6E 73 74  de size.   This can lead to inst
00005820  72 75 63 74 69 6F 6E 20  63 61 63 68 65 20 6D 69  73 73 65 73 2E 20 20 41  6E 6F 74 68 65 72 20 73  ruction cache misses.  Another s
00005840  65 63 6F 6E 64 61 72 79  20 65 66 66 65 63 74 20  69 73 20 74 68 65 20 75  73 65 20 6F 66 20 6D 6F  econdary effect is the use of mo
00005860  72 65 20 72 65 67 69 73  74 65 72 73 2C 20 77 68  69 63 68 20 61 72 65 20  61 20 6C 69 6D 69 74 65  re registers, which are a limite
00005880  64 20 72 65 73 6F 75 72  63 65 20 6F 6E 20 74 68  65 73 65 20 70 72 6F 63  65 73 73 6F 72 73 2E 20  d resource on these processors. 
000058A0  43 6F 6D 70 69 6C 65 72  20 77 72 69 74 65 72 73  20 6D 61 79 20 77 61 6E  74 20 74 6F 20 70 61 79  Compiler writers may want to pay
000058C0  20 6D 6F 72 65 20 61 74  74 65 6E 74 69 6F 6E 20  74 6F 20 72 65 67 69 73  74 65 72 20 61 6C 6C 6F   more attention to register allo
000058E0  63 61 74 69 6F 6E 2E 0D  0A 0D 0A 49 6E 20 74 68  69 73 20 64 6F 63 75 6D  65 6E 74 2C 20 77 65 20  cation.In this document, we 
00005900  77 69 6C 6C 20 72 65 66  65 72 20 74 6F 20 74 68  69 73 20 61 73 20 22 6C  6F 61 64 2F 73 74 6F 72  will refer to this as "load/stor
00005920  65 22 20 73 74 79 6C 65  20 63 6F 64 65 20 67 65  6E 65 72 61 74 69 6F 6E  2E 0D 0A 0D 0A 0C 34 2E  e" style code generation.4.
00005940  20 43 6F 64 65 20 47 65  6E 65 72 61 74 69 6F 6E  20 53 74 72 61 74 65 67  79 0D 0A 0D 0A 45 76 65   Code Generation StrategyEve
00005960  6E 20 74 68 6F 75 67 68  20 65 61 63 68 20 6D 65  6D 62 65 72 20 6F 66 20  74 68 65 20 49 6E 74 65  n though each member of the Inte
00005980  6C 33 38 36 20 70 72 6F  63 65 73 73 6F 72 20 66  61 6D 69 6C 79 20 68 61  73 20 61 20 64 69 66 66  l386 processor family has a diff
000059A0  65 72 65 6E 74 20 6D 69  63 72 6F 20 61 72 63 68  69 74 65 63 74 75 72 65  20 64 75 65 20 74 6F 0D  erent micro architecture due to
000059C0  0A 74 65 63 68 6E 6F 6C  6F 67 79 20 76 65 72 73  75 73 20 69 6D 70 6C 65  6D 65 6E 74 61 74 69 6F  technology versus implementatio
000059E0  6E 20 74 72 61 64 65 6F  66 66 73 2C 20 74 68 65  20 64 69 66 66 65 72 65  6E 63 65 73 20 69 6E 64  n tradeoffs, the differences ind
00005A00  75 63 65 64 20 66 65 77  20 63 6F 6E 66 6C 69 63  74 73 20 69 6E 20 74 68  65 20 6F 76 65 72 61 6C  uced few conflicts in the overal
00005A20  6C 20 63 6F 64 65 20 6F  70 74 69 6D 69 7A 61 74  69 6F 6E 20 73 74 72 61  74 65 67 79 2E 20 49 6E  l code optimization strategy. In
00005A40  20 66 61 63 74 2C 20 74  68 65 72 65 20 69 73 20  61 20 73 65 74 20 6F 66  20 22 62 6C 65 6E 64 65   fact, there is a set of "blende
00005A60  64 22 20 6F 70 74 69 6D  69 7A 61 74 69 6F 6E 73  20 74 68 61 74 20 77 69  6C 6C 20 63 72 65 61 74  d" optimizations that will creat
00005A80  65 20 61 6E 20 6F 70 74  69 6D 61 6C 20 62 69 6E  61 72 79 20 61 63 72 6F  73 73 20 74 68 65 20 65  e an optimal binary across the e
00005AA0  6E 74 69 72 65 20 66 61  6D 69 6C 79 2E 20 54 68  65 20 22 62 6C 65 6E 64  65 64 22 20 6F 70 74 69  ntire family. The "blended" opti
00005AC0  6D 69 7A 61 74 69 6F 6E  73 20 69 6E 63 6C 75 64  65 3A 0D 0A 0D 0A 31 2E  20 4F 70 74 69 6D 69 7A  mizations include:1. Optimiz
00005AE0  61 74 69 6F 6E 73 20 74  68 61 74 20 62 65 6E 65  66 69 74 20 61 6C 6C 20  6D 65 6D 62 65 72 73 2E  ations that benefit all members.
00005B00  0D 0A 0D 0A 32 2E 20 4F  70 74 69 6D 69 7A 61 74  69 6F 6E 73 20 74 68 61  74 20 62 65 6E 65 66 69  2. Optimizations that benefi
00005B20  74 20 6F 6E 65 20 6F 72  20 6D 6F 72 65 20 6D 65  6D 62 65 72 73 20 62 75  74 20 64 6F 20 6E 6F 74  t one or more members but do not
00005B40  20 68 75 72 74 20 74 68  65 20 72 65 6D 61 69 6E  69 6E 67 20 6D 65 6D 62  65 72 73 2E 0D 0A 0D 0A   hurt the remaining members.
00005B60  33 2E 20 4F 70 74 69 6D  69 7A 61 74 69 6F 6E 73  20 74 68 61 74 20 62 65  6E 65 66 69 74 20 6F 6E  3. Optimizations that benefit on
00005B80  65 20 6F 72 20 6D 6F 72  65 20 6D 65 6D 62 65 72  73 20 61 20 6C 6F 74 20  62 75 74 20 6F 6E 6C 79  e or more members a lot but only
00005BA0  20 68 75 72 74 20 74 68  65 20 72 65 6D 61 69 6E  69 6E 67 20 6D 65 6D 62  65 72 73 0D 0A 20 20 20   hurt the remaining members   
00005BC0  20 61 20 6C 69 74 74 6C  65 2E 0D 0A 0D 0A 46 6F  72 20 74 68 6F 73 65 20  6F 70 74 69 6D 69 7A 61   a little.For those optimiza
00005BE0  74 69 6F 6E 73 20 74 68  61 74 20 62 65 6E 65 66  69 74 20 6F 6E 6C 79 20  63 65 72 74 61 69 6E 20  tions that benefit only certain 
00005C00  6D 65 6D 62 65 72 73 20  62 75 74 20 63 61 75 73  65 20 6E 6F 74 69 63 65  61 62 6C 65 20 64 65 67  members but cause noticeable deg
00005C20  72 61 64 61 74 69 6F 6E  20 74 6F 20 6F 74 68 65  72 73 2C 20 69 74 20 69  73 20 72 65 63 6F 6D 6D  radation to others, it is recomm
00005C40  65 6E 64 65 64 20 74 68  61 74 20 74 68 65 79 20  62 65 20 69 6D 70 6C 65  6D 65 6E 74 65 64 20 75  ended that they be implemented u
00005C60  6E 64 65 72 20 73 77 69  74 63 68 65 73 20 61 6E  64 20 6C 65 66 74 20 74  6F 20 74 68 65 20 75 73  nder switches and left to the us
00005C80  65 72 20 74 6F 20 64 65  63 69 64 65 20 77 68 65  74 68 65 72 20 6D 61 78  69 6D 69 7A 69 6E 67 20  er to decide whether maximizing 
00005CA0  74 68 65 20 70 65 72 66  6F 72 6D 61 6E 63 65 20  6F 66 20 61 20 73 70 65  63 69 66 69 63 20 70 72  the performance of a specific pr
00005CC0  6F 63 65 73 73 6F 72 20  69 73 20 64 65 73 69 72  61 62 6C 65 2E 0D 0A 0D  0A 0C 35 2E 20 42 6C 65  ocessor is desirable.5. Ble
00005CE0  6E 64 65 64 20 43 6F 64  65 20 47 65 6E 65 72 61  74 69 6F 6E 20 43 6F 6E  73 69 64 65 72 61 74 69  nded Code Generation Considerati
00005D00  6F 6E 0D 0A 0D 0A 35 2E  31 20 43 68 6F 69 63 65  20 6F 66 20 49 6E 64 65  78 20 56 65 72 73 75 73  on5.1 Choice of Index Versus
00005D20  20 42 61 73 65 20 52 65  67 69 73 74 65 72 0D 0A  0D 0A 54 68 65 20 49 6E  74 65 6C 33 38 36 20 61   Base RegisterThe Intel386 a
00005D40  6E 64 20 74 68 65 20 49  6E 74 65 6C 34 38 36 20  70 72 6F 63 65 73 73 6F  72 73 20 6E 65 65 64 20  nd the Intel486 processors need 
00005D60  61 6E 20 61 64 64 69 74  69 6F 6E 61 6C 20 63 6C  6F 63 6B 20 63 79 63 6C  65 20 74 6F 20 67 65 6E  an additional clock cycle to gen
00005D80  65 72 61 74 65 20 61 6E  20 65 66 66 65 63 74 69  76 65 20 61 64 64 72 65  73 73 20 77 68 65 6E 20  erate an effective address when 
00005DA0  61 6E 20 69 6E 64 65 78  20 72 65 67 69 73 74 65  72 20 69 73 20 75 73 65  64 2E 20 54 68 65 72 65  an index register is used. There
00005DC0  66 6F 72 65 2C 20 69 66  20 6F 6E 6C 79 20 6F 6E  65 20 69 6E 64 65 78 69  6E 67 20 63 6F 6D 70 6F  fore, if only one indexing compo
00005DE0  6E 65 6E 74 20 69 73 20  75 73 65 64 20 28 69 2E  65 2E 2C 20 6E 6F 74 20  62 6F 74 68 20 61 20 62  nent is used (i.e., not both a b
00005E00  61 73 65 20 72 65 67 69  73 74 65 72 20 61 6E 64  20 61 6E 20 69 6E 64 65  78 20 72 65 67 69 73 74  ase register and an index regist
00005E20  65 72 29 20 61 6E 64 20  73 63 61 6C 69 6E 67 20  69 73 20 6E 6F 74 20 6E  65 63 65 73 73 61 72 79  er) and scaling is not necessary
00005E40  2C 20 74 68 65 6E 20 69  74 20 69 73 20 66 61 73  74 65 72 20 74 6F 20 75  73 65 20 74 68 65 20 72  , then it is faster to use the r
00005E60  65 67 69 73 74 65 72 20  61 73 20 61 20 62 61 73  65 20 72 61 74 68 65 72  20 74 68 61 6E 20 61 6E  egister as a base rather than an
00005E80  20 69 6E 64 65 78 2E 20  46 6F 72 20 65 78 61 6D  70 6C 65 3A 0D 0A 0D 0A  6D 6F 76 20 20 65 61 78   index. For example:mov  eax
00005EA0  2C 20 5B 65 73 69 5D 20  20 3B 20 75 73 65 20 65  73 69 20 61 73 20 62 61  73 65 0D 0A 6D 6F 76 20  , [esi]  ; use esi as basemov 
00005EC0  20 65 61 78 2C 20 5B 65  73 69 2A 5D 20 3B 20 75  73 65 20 65 73 69 20 61  73 20 69 6E 64 65 78 2C   eax, [esi*] ; use esi as index,
00005EE0  20 31 20 63 6C 6F 63 6B  20 70 65 6E 61 6C 74 79  0D 0A 0D 0A 49 74 20 74  61 6B 65 73 20 74 68 65   1 clock penaltyIt takes the
00005F00  20 50 65 6E 74 69 75 6D  20 70 72 6F 63 65 73 73  6F 72 20 6F 6E 65 20 63  6C 6F 63 6B 20 74 6F 20   Pentium processor one clock to 
00005F20  63 61 6C 63 75 6C 61 74  65 20 74 68 65 20 65 66  66 65 63 74 69 76 65 20  61 64 64 72 65 73 73 20  calculate the effective address 
00005F40  65 76 65 6E 20 77 68 65  6E 20 61 6E 20 69 6E 64  65 78 20 72 65 67 69 73  74 65 72 20 69 73 20 75  even when an index register is u
00005F60  73 65 64 2E 20 20 48 65  6E 63 65 2C 20 50 65 6E  74 69 75 6D 20 70 72 6F  63 65 73 73 6F 72 20 69  sed.  Hence, Pentium processor i
00005F80  73 20 6E 65 75 74 72 61  6C 20 74 6F 20 74 68 65  20 63 68 6F 69 63 65 20  6F 66 20 69 6E 64 65 78  s neutral to the choice of index
00005FA0  20 76 65 72 73 75 73 20  62 61 73 65 20 72 65 67  69 73 74 65 72 2E 0D 0A  0D 0A 35 2E 32 2E 20 41   versus base register.5.2. A
00005FC0  64 64 72 65 73 73 69 6E  67 20 4D 6F 64 65 73 20  61 6E 64 20 52 65 67 69  73 74 65 72 20 55 73 61  ddressing Modes and Register Usa
00005FE0  67 65 0D 0A 0D 0A 31 2E  20 46 6F 72 20 74 68 65  20 49 6E 74 65 6C 34 38  36 20 70 72 6F 63 65 73  ge1. For the Intel486 proces
00006000  73 6F 72 2C 20 77 68 65  6E 20 61 20 72 65 67 69  73 74 65 72 20 69 73 20  75 73 65 64 20 61 73 20  sor, when a register is used as 
00006020  74 68 65 20 62 61 73 65  20 63 6F 6D 70 6F 6E 65  6E 74 2C 20 61 6E 20 61  64 64 69 74 69 6F 6E 61  the base component, an additiona
00006040  6C 20 63 6C 6F 63 6B 20  63 79 63 6C 65 20 69 73  20 75 73 65 64 20 69 66  20 74 68 61 74 20 72 65  l clock cycle is used if that re
00006060  67 69 73 74 65 72 20 69  73 20 74 68 65 20 64 65  73 74 69 6E 61 74 69 6F  6E 20 6F 66 20 74 68 65  gister is the destination of the
00006080  20 69 6D 6D 65 64 69 61  74 65 6C 79 20 70 72 65  63 65 64 69 6E 67 20 69  6E 73 74 72 75 63 74 69   immediately preceding instructi
000060A0  6F 6E 20 28 61 73 73 75  6D 69 6E 67 20 61 6C 6C  20 69 6E 73 74 72 75 63  74 69 6F 6E 73 20 61 72  on (assuming all instructions ar
000060C0  65 20 61 6C 72 65 61 64  79 20 69 6E 20 74 68 65  20 70 72 65 66 65 74 63  68 20 71 75 65 75 65 29  e already in the prefetch queue)
000060E0  2E 20 46 6F 72 20 65 78  61 6D 70 6C 65 3A 0D 0A  0D 0A 61 64 64 20 20 65  73 69 2C 20 65 61 78 20  . For example:add  esi, eax 
00006100  20 20 20 3B 20 65 73 69  20 69 73 20 64 65 73 74  69 6E 61 74 69 6F 6E 20  72 65 67 69 73 74 65 72     ; esi is destination register
00006120  0D 0A 6D 6F 76 20 20 65  61 78 2C 20 5B 65 73 69  5D 20 20 3B 20 65 73 69  20 69 73 20 62 61 73 65  mov  eax, [esi]  ; esi is base
00006140  2C 20 31 20 63 6C 6F 63  6B 20 70 65 6E 61 6C 74  79 0D 0A 0D 0A 53 69 6E  63 65 20 74 68 65 20 50  , 1 clock penaltySince the P
00006160  65 6E 74 69 75 6D 20 70  72 6F 63 65 73 73 6F 72  20 68 61 73 20 74 77 6F  20 69 6E 74 65 67 65 72  entium processor has two integer
00006180  20 70 69 70 65 6C 69 6E  65 73 20 61 6E 64 20 65  61 63 68 20 70 69 70 65  6C 69 6E 65 20 68 61 73   pipelines and each pipeline has
000061A0  20 61 20 73 69 6D 69 6C  61 72 20 6F 72 67 61 6E  69 7A 61 74 69 6F 6E 20  6F 6E 20 74 68 65 20 49   a similar organization on the I
000061C0  6E 74 65 6C 34 38 36 20  70 72 6F 63 65 73 73 6F  72 2C 20 61 20 72 65 67  69 73 74 65 72 20 75 73  ntel486 processor, a register us
000061E0  65 64 20 61 73 20 74 68  65 20 62 61 73 65 20 6F  72 20 69 6E 64 65 78 20  63 6F 6D 70 6F 6E 65 6E  ed as the base or index componen
00006200  74 20 6F 66 20 61 6E 20  65 66 66 65 63 74 69 76  65 20 61 64 64 72 65 73  73 20 63 61 6C 63 75 6C  t of an effective address calcul
00006220  61 74 69 6F 6E 20 28 69  6E 20 65 69 74 68 65 72  20 70 69 70 65 29 20 63  61 75 73 65 73 20 61 6E  ation (in either pipe) causes an
00006240  20 61 64 64 69 74 69 6F  6E 61 6C 20 63 6C 6F 63  6B 20 63 79 63 6C 65 20  69 66 20 74 68 61 74 20   additional clock cycle if that 
00006260  72 65 67 69 73 74 65 72  20 69 73 20 74 68 65 20  64 65 73 74 69 6E 61 74  69 6F 6E 20 6F 66 20 65  register is the destination of e
00006280  69 74 68 65 72 20 69 6E  73 74 72 75 63 74 69 6F  6E 20 66 72 6F 6D 20 74  68 65 20 69 6D 6D 65 64  ither instruction from the immed
000062A0  69 61 74 65 6C 79 20 70  72 65 63 65 64 69 6E 67  20 63 79 63 6C 65 20 28  41 64 64 72 65 73 73 20  iately preceding cycle (Address 
000062C0  47 65 6E 65 72 61 74 69  6F 6E 20 49 6E 74 65 72  6C 6F 63 6B 2C 20 28 41  47 49 29 29 2E 20 54 6F  Generation Interlock, (AGI)). To
000062E0  20 61 76 6F 69 64 20 74  68 65 20 41 47 49 2C 20  74 68 65 20 69 6E 73 74  72 75 63 74 69 6F 6E 73   avoid the AGI, the instructions
00006300  20 73 68 6F 75 6C 64 20  62 65 20 73 65 70 61 72  61 74 65 64 20 62 79 20  61 74 20 6C 65 61 73 74   should be separated by at least
00006320  20 6F 6E 65 20 63 79 63  6C 65 20 62 79 20 70 6C  61 63 69 6E 67 20 6F 74  68 65 72 20 69 6E 73 74   one cycle by placing other inst
00006340  72 75 63 74 69 6F 6E 73  20 62 65 74 77 65 65 6E  20 74 68 65 6D 2E 0D 0A  0D 0A 32 2E 20 4E 6F 74  ructions between them.2. Not
00006360  65 20 74 68 61 74 20 73  6F 6D 65 20 69 6E 73 74  72 75 63 74 69 6F 6E 73  20 68 61 76 65 20 69 6D  e that some instructions have im
00006380  70 6C 69 63 69 74 20 72  65 61 64 73 2F 77 72 69  74 65 73 20 74 6F 20 72  65 67 69 73 74 65 72 73  plicit reads/writes to registers
000063A0  2E 20 49 6E 73 74 72 75  63 74 69 6F 6E 73 20 74  68 61 74 20 67 65 6E 65  72 61 74 65 20 61 64 64  . Instructions that generate add
000063C0  72 65 73 73 65 73 20 69  6D 70 6C 69 63 69 74 6C  79 20 74 68 72 6F 75 67  68 20 65 73 70 20 28 70  resses implicitly through esp (p
000063E0  75 73 68 2C 70 6F 70 2F  72 65 74 2F 63 61 6C 6C  29 20 61 6C 73 6F 20 73  75 66 66 65 72 20 66 72  ush,pop/ret/call) also suffer fr
00006400  6F 6D 20 74 68 65 20 41  47 49 20 70 65 6E 61 6C  74 79 2E 0D 0A 0D 0A 45  78 61 6D 70 6C 65 73 3A  om the AGI penalty.Examples:
00006420  0D 0A 0D 0A 73 75 62 20  20 65 73 70 2C 20 32 34  0D 0A 20 20 20 20 20 20  20 20 3B 20 20 31 20 63  sub  esp, 24        ;  1 c
00006440  79 63 6C 65 20 73 74 61  6C 6C 0D 0A 70 75 73 68  20 65 62 78 0D 0A 0D 0A  0D 0A 6D 6F 76 20 20 65  ycle stallpush ebxmov  e
00006460  73 70 2C 20 65 62 70 0D  0A 20 20 20 20 20 20 20  20 3B 20 20 31 20 63 79  63 6C 65 20 73 74 61 6C  sp, ebp        ;  1 cycle stal
00006480  6C 0D 0A 70 6F 70 20 20  65 62 70 0D 0A 0D 0A 50  75 73 68 20 61 6E 64 20  70 6F 70 20 61 6C 73 6F  lpop  ebpPush and pop also
000064A0  20 69 6D 70 6C 69 63 69  74 6C 79 20 77 72 69 74  65 20 74 6F 20 65 73 70  2E 20 54 68 69 73 2C 20   implicitly write to esp. This, 
000064C0  68 6F 77 65 76 65 72 2C  20 64 6F 65 73 20 6E 6F  74 20 63 61 75 73 65 20  61 6E 20 41 47 49 20 77  however, does not cause an AGI w
000064E0  68 65 6E 20 74 68 65 20  6E 65 78 74 20 69 6E 73  74 72 75 63 74 69 6F 6E  20 61 64 64 72 65 73 73  hen the next instruction address
00006500  65 73 20 74 68 72 6F 75  67 68 20 65 73 70 2E 0D  0A 0D 0A 45 78 61 6D 70  6C 65 3A 0D 0A 0D 0A 70  es through esp.Example:p
00006520  75 73 68 20 65 64 69 20  20 20 20 20 20 20 20 20  20 3B 20 6E 6F 20 73 74  61 6C 6C 0D 0A 6D 6F 76  ush edi          ; no stallmov
00006540  20 20 65 62 78 2C 20 5B  65 73 70 5D 0D 0A 0D 0A  0C 0D 0A 33 2E 20 4F 6E  20 74 68 65 20 49 6E 74    ebx, [esp]3. On the Int
00006560  65 6C 34 38 36 20 70 72  6F 63 65 73 73 6F 72 20  74 68 65 72 65 20 69 73  20 61 20 31 2D 63 6C 6F  el486 processor there is a 1-clo
00006580  63 6B 20 70 65 6E 61 6C  74 79 20 66 6F 72 20 64  65 63 6F 64 69 6E 67 20  61 6E 20 69 6E 73 74 72  ck penalty for decoding an instr
000065A0  75 63 74 69 6F 6E 20 77  69 74 68 20 65 69 74 68  65 72 20 61 6E 0D 0A 69  6E 64 65 78 20 6F 72 20  uction with either anindex or 
000065C0  61 6E 20 69 6D 6D 65 64  69 61 74 65 2D 64 69 73  70 6C 61 63 65 6D 65 6E  74 20 63 6F 6D 62 69 6E  an immediate-displacement combin
000065E0  61 74 69 6F 6E 2E 20 4F  6E 20 74 68 65 20 50 65  6E 74 69 75 6D 20 70 72  6F 63 65 73 73 6F 72 2C  ation. On the Pentium processor,
00006600  20 74 68 65 20 69 6D 6D  65 64 69 61 74 65 2D 64  69 73 70 6C 61 63 65 6D  65 6E 74 20 63 6F 6D 62   the immediate-displacement comb
00006620  69 6E 61 74 69 6F 6E 20  69 73 20 6E 6F 74 20 70  61 69 72 61 62 6C 65 2E  20 57 68 65 6E 20 69 74  ination is not pairable. When it
00006640  20 69 73 20 6E 65 63 65  73 73 61 72 79 20 74 6F  20 75 73 65 20 63 6F 6E  73 74 61 6E 74 73 2C 20   is necessary to use constants, 
00006660  69 74 20 77 6F 75 6C 64  20 73 74 69 6C 6C 20 62  65 20 6D 6F 72 65 20 65  66 66 69 63 69 65 6E 74  it would still be more efficient
00006680  20 74 6F 20 75 73 65 20  69 6D 6D 65 64 69 61 74  65 20 64 61 74 61 20 69  6E 73 74 65 61 64 20 6F   to use immediate data instead o
000066A0  66 20 6C 6F 61 64 69 6E  67 20 74 68 65 20 63 6F  6E 73 74 61 6E 74 20 69  6E 74 6F 20 61 20 72 65  f loading the constant into a re
000066C0  67 69 73 74 65 72 20 66  69 72 73 74 2E 20 20 48  6F 77 65 76 65 72 2C 20  69 66 20 74 68 65 20 73  gister first.  However, if the s
000066E0  61 6D 65 20 69 6D 6D 65  64 69 61 74 65 20 64 61  74 61 20 69 73 20 75 73  65 64 20 6D 6F 72 65 20  ame immediate data is used more 
00006700  74 68 61 6E 20 6F 6E 63  65 2C 20 69 74 20 77 6F  75 6C 64 20 62 65 20 66  61 73 74 65 72 20 74 6F  than once, it would be faster to
00006720  20 6C 6F 61 64 20 74 68  65 20 63 6F 6E 73 74 61  6E 74 20 69 6E 20 61 20  72 65 67 69 73 74 65 72   load the constant in a register
00006740  20 61 6E 64 20 74 68 65  6E 20 75 73 65 20 74 68  65 20 72 65 67 69 73 74  65 72 20 6D 75 6C 74 69   and then use the register multi
00006760  70 6C 65 20 74 69 6D 65  73 2E 0D 0A 0D 0A 6D 6F  76 20 20 72 65 73 75 6C  74 2C 20 35 35 35 20 09  ple times.mov  result, 555 
00006780  3B 20 35 35 35 20 69 73  20 69 6D 6D 65 64 69 61  74 65 2C 20 72 65 73 75  6C 74 20 69 73 20 64 69  ; 555 is immediate, result is di
000067A0  73 70 6C 61 63 65 6D 65  6E 74 0D 0A 6D 6F 76 20  20 64 77 6F 72 64 20 70  74 72 20 5B 65 73 70 2B  splacementmov  dword ptr [esp+
000067C0  34 5D 2C 20 31 09 3B 20  31 20 20 69 73 20 69 6D  6D 65 64 69 61 74 65 2C  20 20 20 20 20 20 34 20  4], 1; 1  is immediate,      4 
000067E0  69 73 20 64 69 73 70 6C  61 63 65 6D 65 6E 74 0D  0A 0D 0A 34 2E 20 54 68  65 20 49 6E 74 65 6C 34  is displacement4. The Intel4
00006800  38 36 20 70 72 6F 63 65  73 73 6F 72 20 68 61 73  20 61 20 31 2D 63 6C 6F  63 6B 20 70 65 6E 61 6C  86 processor has a 1-clock penal
00006820  74 79 20 77 68 65 6E 20  75 73 69 6E 67 20 61 20  72 65 67 69 73 74 65 72  20 69 6D 6D 65 64 69 61  ty when using a register immedia
00006840  74 65 6C 79 20 61 66 74  65 72 20 69 74 73 20 73  75 62 2D 0D 0A 72 65 67  69 73 74 65 72 20 77 61  tely after its sub-register wa
00006860  73 20 77 72 69 74 74 65  6E 2E 20 20 54 68 65 20  50 65 6E 74 69 75 6D 20  70 72 6F 63 65 73 73 6F  s written.  The Pentium processo
00006880  72 20 69 73 20 6E 65 75  74 72 61 6C 20 69 6E 20  74 68 69 73 20 72 65 73  70 65 63 74 2E 0D 0A 0D  r is neutral in this respect.
000068A0  0A 45 78 61 6D 70 6C 65  20 28 50 65 6E 74 69 75  6D 20 50 72 6F 63 65 73  73 6F 72 29 3A 0D 0A 0D  Example (Pentium Processor):
000068C0  0A 6D 6F 76 20 20 61 6C  2C 20 20 20 20 20 20 20  30 20 09 3B 20 31 0D 0A  6D 6F 76 20 20 5B 65 62  mov  al,       0 ; 1mov  [eb
000068E0  70 5D 2C 20 65 61 78 20  09 3B 20 32 20 2D 20 4E  6F 20 64 65 6C 61 79 20  6F 6E 20 74 68 65 20 50  p], eax ; 2 - No delay on the P
00006900  65 6E 74 69 75 6D 20 70  72 6F 63 65 73 73 6F 72  0D 0A 0D 0A 45 78 61 6D  70 6C 65 20 28 49 6E 74  entium processorExample (Int
00006920  65 6C 34 38 36 20 70 72  6F 63 65 73 73 6F 72 29  3A 0D 0A 0D 0A 6D 6F 76  20 20 61 6C 2C 20 20 20  el486 processor):mov  al,   
00006940  20 20 20 20 30 20 09 3B  20 31 0D 0A 09 3B 20 32  0D 0A 6D 6F 76 20 20 5B  65 62 70 5D 2C 20 65 61      0 ; 1; 2mov  [ebp], ea
00006960  78 09 3B 20 33 0D 0A 0D  0A 35 2E 33 20 50 72 65  66 65 74 63 68 20 42 61  6E 64 77 69 64 74 68 0D  x; 35.3 Prefetch Bandwidth
00006980  0A 0D 0A 54 68 65 20 49  6E 74 65 6C 34 38 36 20  70 72 6F 63 65 73 73 6F  72 20 70 72 65 66 65 74  The Intel486 processor prefet
000069A0  63 68 20 75 6E 69 74 20  77 69 6C 6C 20 61 63 63  65 73 73 20 74 68 65 20  6F 6E 2D 63 68 69 70 20  ch unit will access the on-chip 
000069C0  63 61 63 68 65 20 74 6F  20 66 69 6C 6C 20 74 68  65 20 70 72 65 66 65 74  63 68 20 71 75 65 75 65  cache to fill the prefetch queue
000069E0  20 77 68 65 6E 65 76 65  72 20 74 68 65 20 63 61  63 68 65 20 69 73 20 69  64 6C 65 20 61 6E 64 20   whenever the cache is idle and 
00006A00  74 68 65 72 65 20 69 73  20 65 6E 6F 75 67 68 20  72 6F 6F 6D 20 69 6E 20  74 68 65 20 71 75 65 75  there is enough room in the queu
00006A20  65 20 66 6F 72 20 61 6E  6F 74 68 65 72 20 63 61  63 68 65 20 6C 69 6E 65  20 28 31 36 20 62 79 74  e for another cache line (16 byt
00006A40  65 73 29 2E 20 49 66 20  74 68 65 20 70 72 65 66  65 74 63 68 20 71 75 65  75 65 20 62 65 63 6F 6D  es). If the prefetch queue becom
00006A60  65 73 20 65 6D 70 74 79  2C 20 69 74 20 63 61 6E  20 74 61 6B 65 20 75 70  20 74 6F 20 74 68 72 65  es empty, it can take up to thre
00006A80  65 20 61 64 64 69 74 69  6F 6E 61 6C 20 63 6C 6F  63 6B 73 20 74 6F 20 73  74 61 72 74 20 74 68 65  e additional clocks to start the
00006AA0  20 6E 65 78 74 20 69 6E  73 74 72 75 63 74 69 6F  6E 2E 20 54 68 65 20 70  72 65 66 65 74 63 68 20   next instruction. The prefetch 
00006AC0  71 75 65 75 65 20 69 73  20 33 32 20 62 79 74 65  73 20 69 6E 20 73 69 7A  65 20 28 32 20 63 61 63  queue is 32 bytes in size (2 cac
00006AE0  68 65 20 6C 69 6E 65 73  29 2E 0D 0A 0D 0A 42 65  63 61 75 73 65 20 64 61  74 61 20 61 63 63 65 73  he lines).Because data acces
00006B00  73 65 73 20 61 6C 77 61  79 73 20 68 61 76 65 20  70 72 69 6F 72 69 74 79  20 6F 76 65 72 20 70 72  ses always have priority over pr
00006B20  65 66 65 74 63 68 20 72  65 71 75 65 73 74 73 2C  20 6B 65 65 70 69 6E 67  20 74 68 65 20 63 61 63  efetch requests, keeping the cac
00006B40  68 65 20 62 75 73 79 20  77 69 74 68 20 64 61 74  61 20 61 63 63 65 73 73  65 73 20 63 61 6E 20 6C  he busy with data accesses can l
00006B60  6F 63 6B 20 6F 75 74 20  74 68 65 20 70 72 65 66  65 74 63 68 20 75 6E 69  74 2E 20 41 73 20 61 20  ock out the prefetch unit. As a 
00006B80  72 65 73 75 6C 74 2C 20  6F 70 74 69 6D 69 7A 65  64 20 63 6F 64 65 20 73  68 6F 75 6C 64 20 61 76  result, optimized code should av
00006BA0  6F 69 64 20 66 6F 75 72  20 63 6F 6E 73 65 63 75  74 69 76 65 20 6D 65 6D  6F 72 79 20 69 6E 73 74  oid four consecutive memory inst
00006BC0  72 75 63 74 69 6F 6E 73  2E 0D 0A 0D 0A 49 74 20  69 73 20 69 6D 70 6F 72  74 61 6E 74 20 74 6F 20  ructions.It is important to 
00006BE0  61 72 72 61 6E 67 65 20  69 6E 73 74 72 75 63 74  69 6F 6E 73 20 73 6F 20  74 68 61 74 20 74 68 65  arrange instructions so that the
00006C00  20 6D 65 6D 6F 72 79 20  62 75 73 20 69 73 20 6E  6F 74 20 75 73 65 64 20  63 6F 6E 74 69 6E 75 6F   memory bus is not used continuo
00006C20  75 73 6C 79 20 62 79 20  61 20 73 65 72 69 65 73  20 6F 66 20 6D 65 6D 6F  72 79 2D 72 65 66 65 72  usly by a series of memory-refer
00006C40  65 6E 63 65 20 69 6E 73  74 72 75 63 74 69 6F 6E  73 2E 20 54 68 65 20 69  6E 73 74 72 75 63 74 69  ence instructions. The instructi
00006C60  6F 6E 73 20 73 68 6F 75  6C 64 20 62 65 20 72 65  61 72 72 61 6E 67 65 64  20 73 6F 20 74 68 61 74  ons should be rearranged so that
00006C80  20 74 68 65 72 65 20 69  73 20 61 20 6E 6F 6E 2D  6D 65 6D 6F 72 79 20 72  65 66 65 72 65 6E 63 69   there is a non-memory referenci
00006CA0  6E 67 20 69 6E 73 74 72  75 63 74 69 6F 6E 20 28  73 75 63 68 20 61 73 20  61 20 72 65 67 69 73 74  ng instruction (such as a regist
00006CC0  65 72 20 69 6E 73 74 72  75 63 74 69 6F 6E 29 20  61 74 20 6C 65 61 73 74  20 74 77 6F 20 63 6C 6F  er instruction) at least two clo
00006CE0  63 6B 73 20 62 65 66 6F  72 65 20 74 68 65 20 70  72 65 66 65 74 63 68 20  71 75 65 75 65 20 62 65  cks before the prefetch queue be
00006D00  63 6F 6D 65 73 20 65 78  68 61 75 73 74 65 64 2E  20 54 68 69 73 20 77 69  6C 6C 20 61 6C 6C 6F 77  comes exhausted. This will allow
00006D20  20 74 68 65 20 70 72 65  66 65 74 63 68 20 75 6E  69 74 20 74 6F 20 74 72  61 6E 73 66 65 72 20 61   the prefetch unit to transfer a
00006D40  20 63 61 63 68 65 20 6C  69 6E 65 20 69 6E 74 6F  20 74 68 65 20 71 75 65  75 65 2E 0D 0A 0D 0A 53   cache line into the queue.S
00006D60  75 63 68 20 61 72 72 61  6E 67 65 6D 65 6E 74 20  6F 66 20 74 68 65 20 69  6E 73 74 72 75 63 74 69  uch arrangement of the instructi
00006D80  6F 6E 73 20 77 69 6C 6C  20 6E 6F 74 20 61 66 66  65 63 74 20 74 68 65 20  70 65 72 66 6F 72 6D 61  ons will not affect the performa
00006DA0  6E 63 65 20 6F 66 20 74  68 65 20 49 6E 74 65 6C  33 38 36 20 61 6E 64 20  50 65 6E 74 69 75 6D 0D  nce of the Intel386 and Pentium
00006DC0  0A 70 72 6F 63 65 73 73  6F 72 73 2E 0D 0A 0D 0A  49 6E 20 67 65 6E 65 72  61 6C 2C 20 69 74 20 69  processors.In general, it i
00006DE0  73 20 64 69 66 66 69 63  75 6C 74 20 66 6F 72 20  61 20 63 6F 6D 70 69 6C  65 72 20 74 6F 20 6D 6F  s difficult for a compiler to mo
00006E00  64 65 6C 20 74 68 65 20  49 6E 74 65 6C 34 38 36  20 70 72 65 66 65 74 63  68 20 62 75 66 66 65 72  del the Intel486 prefetch buffer
00006E20  20 62 65 68 61 76 69 6F  72 2E 20 41 20 73 65 71  75 65 6E 63 65 20 6F 66  20 66 6F 75 72 20 63 6F   behavior. A sequence of four co
00006E40  6E 73 65 63 75 74 69 76  65 20 6D 65 6D 6F 72 79  20 69 6E 73 74 72 75 63  74 69 6F 6E 73 20 77 69  nsecutive memory instructions wi
00006E60  74 68 6F 75 74 20 73 74  61 6C 6C 73 20 28 69 2E  65 2E 2C 20 69 6E 64 65  78 20 70 65 6E 61 6C 74  thout stalls (i.e., index penalt
00006E80  79 29 20 77 69 6C 6C 20  70 72 6F 62 61 62 6C 79  20 73 74 61 6C 6C 20 62  65 63 61 75 73 65 20 6F  y) will probably stall because o
00006EA0  66 20 74 68 65 20 70 72  65 66 65 74 63 68 20 62  75 66 66 65 72 73 20 62  65 69 6E 67 20 65 78 68  f the prefetch buffers being exh
00006EC0  61 75 73 74 65 64 2E 0D  0A 0D 0A 0D 0A 0D 0A 0D  0A 0D 0A 0D 0A 0D 0A 0D  0A 35 2E 34 20 41 6C 69  austed.5.4 Ali
00006EE0  67 6E 6D 65 6E 74 0D 0A  0D 0A 35 2E 34 2E 31 20  43 6F 64 65 20 20 20 20  20 20 20 20 20 20 20 20  gnment5.4.1 Code            
00006F00  20 20 20 20 20 20 20 0D  0A 20 20 20 20 20 20 20  0D 0A 54 68 65 20 49 6E  74 65 6C 34 38 36 20 70                The Intel486 p
00006F20  72 6F 63 65 73 73 6F 72  20 68 61 73 20 61 20 63  61 63 68 65 20 6C 69 6E  65 20 73 69 7A 65 20 6F  rocessor has a cache line size o
00006F40  66 20 31 36 20 62 79 74  65 73 20 61 6E 64 20 74  68 65 20 50 65 6E 74 69  75 6D 20 70 72 6F 63 65  f 16 bytes and the Pentium proce
00006F60  73 73 6F 72 20 68 61 73  20 61 20 63 61 63 68 65  20 6C 69 6E 65 20 73 69  7A 65 20 6F 66 20 33 32  ssor has a cache line size of 32
00006F80  20 62 79 74 65 73 2E 20  53 69 6E 63 65 20 74 68  65 20 49 6E 74 65 6C 34  38 36 20 70 72 6F 63 65   bytes. Since the Intel486 proce
00006FA0  73 73 6F 72 20 68 61 73  20 6F 6E 6C 79 20 74 77  6F 20 70 72 65 66 65 74  63 68 20 62 75 66 66 65  ssor has only two prefetch buffe
00006FC0  72 73 20 28 31 36 20 62  79 74 65 73 20 65 61 63  68 29 2C 20 63 6F 64 65  20 61 6C 69 67 6E 6D 65  rs (16 bytes each), code alignme
00006FE0  6E 74 20 68 61 73 20 61  20 64 69 72 65 63 74 20  69 6D 70 61 63 74 20 6F  6E 20 49 6E 74 65 6C 34  nt has a direct impact on Intel4
00007000  38 36 20 70 72 6F 63 65  73 73 6F 72 20 70 65 72  66 6F 72 6D 61 6E 63 65  20 61 73 20 61 20 72 65  86 processor performance as a re
00007020  73 75 6C 74 20 6F 66 20  74 68 65 20 70 72 65 66  65 74 63 68 20 62 75 66  66 65 72 20 65 66 66 69  sult of the prefetch buffer effi
00007040  63 69 65 6E 63 79 2E 20  43 6F 64 65 20 61 6C 69  67 6E 6D 65 6E 74 20 68  61 73 20 6C 69 74 74 6C  ciency. Code alignment has littl
00007060  65 20 65 66 66 65 63 74  20 6F 6E 20 74 68 65 20  50 65 6E 74 69 75 6D 20  70 72 6F 63 65 73 73 6F  e effect on the Pentium processo
00007080  72 20 70 65 72 66 6F 72  6D 61 6E 63 65 20 62 65  63 61 75 73 65 20 6F 66  20 69 74 73 20 61 62 69  r performance because of its abi
000070A0  6C 69 74 79 20 74 6F 20  70 72 65 66 65 74 63 68  20 61 63 72 6F 73 73 20  61 20 63 61 63 68 65 20  lity to prefetch across a cache 
000070C0  6C 69 6E 65 20 62 6F 75  6E 64 61 72 79 20 77 69  74 68 20 6E 6F 20 70 65  6E 61 6C 74 79 2E 20 20  line boundary with no penalty.  
000070E0  54 68 65 20 49 6E 74 65  6C 33 38 36 20 70 72 6F  63 65 73 73 6F 72 20 77  69 74 68 20 6E 6F 20 6F  The Intel386 processor with no o
00007100  6E 2D 63 68 69 70 20 63  61 63 68 65 20 61 6E 64  20 61 20 64 65 63 6F 75  70 6C 65 64 20 70 72 65  n-chip cache and a decoupled pre
00007120  66 65 74 63 68 20 75 6E  69 74 20 69 73 20 6E 6F  74 20 73 65 6E 73 69 74  69 76 65 20 74 6F 20 63  fetch unit is not sensitive to c
00007140  6F 64 65 20 61 6C 69 67  6E 6D 65 6E 74 2E 20 46  6F 72 20 6F 70 74 69 6D  61 6C 20 70 65 72 66 6F  ode alignment. For optimal perfo
00007160  72 6D 61 6E 63 65 20 61  63 72 6F 73 73 20 74 68  65 20 66 61 6D 69 6C 79  2C 20 69 74 20 69 73 20  rmance across the family, it is 
00007180  72 65 63 6F 6D 6D 65 6E  64 65 64 20 74 68 61 74  20 6C 61 62 65 6C 73 20  62 65 20 61 6C 69 67 6E  recommended that labels be align
000071A0  65 64 20 74 6F 20 74 68  65 20 6E 65 78 74 20 30  4D 4F 44 31 36 20 77 68  65 6E 20 69 74 20 69 73  ed to the next 0MOD16 when it is
000071C0  20 6C 65 73 73 20 74 68  61 6E 20 38 20 62 79 74  65 73 20 61 77 61 79 20  66 72 6F 6D 20 74 68 61   less than 8 bytes away from tha
000071E0  74 20 62 6F 75 6E 64 61  72 79 2E 0D 0A 0D 0A 35  2E 34 2E 32 2E 20 44 61  74 61 0D 0A 0D 0A 41 20  t boundary.5.4.2. DataA 
00007200  6D 69 73 61 6C 69 67 6E  65 64 20 61 63 63 65 73  73 20 69 6E 20 74 68 65  20 64 61 74 61 20 63 61  misaligned access in the data ca
00007220  63 68 65 20 63 6F 73 74  73 20 61 74 20 6C 65 61  73 74 20 61 6E 20 65 78  74 72 61 20 33 20 63 79  che costs at least an extra 3 cy
00007240  63 6C 65 73 20 6F 6E 20  62 6F 74 68 20 74 68 65  20 49 6E 74 65 6C 34 38  36 20 61 6E 64 20 50 65  cles on both the Intel486 and Pe
00007260  6E 74 69 75 6D 20 70 72  6F 63 65 73 73 6F 72 2E  0D 0A 0D 0A 35 2E 34 2E  33 2E 20 20 32 2D 62 79  ntium processor.5.4.3.  2-by
00007280  74 65 20 44 61 74 61 3A  20 41 20 32 2D 62 79 74  65 20 6F 62 6A 65 63 74  20 73 68 6F 75 6C 64 20  te Data: A 2-byte object should 
000072A0  62 65 20 66 75 6C 6C 79  20 63 6F 6E 74 61 69 6E  65 64 20 77 69 74 68 69  6E 20 61 6E 20 61 6C 69  be fully contained within an ali
000072C0  67 6E 65 64 20 34 2D 62  79 74 65 20 77 6F 72 64  20 28 69 2E 65 2E 2C 20  69 74 73 20 62 69 6E 61  gned 4-byte word (i.e., its bina
000072E0  72 79 20 61 64 64 72 65  73 73 20 73 68 6F 75 6C  64 20 62 65 20 78 78 78  78 30 30 2C 20 78 78 78  ry address should be xxxx00, xxx
00007300  78 30 31 2C 20 78 78 78  78 31 30 2C 20 62 75 74  20 6E 6F 74 20 78 78 78  78 31 31 29 2E 0D 0A 0D  x01, xxxx10, but not xxxx11).
00007320  0A 35 2E 34 2E 34 2E 20  20 34 2D 62 79 74 65 20  44 61 74 61 3A 20 54 68  65 20 61 6C 69 67 6E 6D  5.4.4.  4-byte Data: The alignm
00007340  65 6E 74 20 6F 66 20 34  2D 62 79 74 65 20 6F 62  6A 65 63 74 20 73 68 6F  75 6C 64 20 62 65 20 6F  ent of 4-byte object should be o
00007360  6E 20 61 20 34 2D 62 79  74 65 20 62 6F 75 6E 64  61 72 79 2E 0D 0A 0D 0A  35 2E 34 2E 35 2E 20 20  n a 4-byte boundary.5.4.5.  
00007380  38 2D 62 79 74 65 20 44  61 74 61 3A 20 20 41 6E  20 38 2D 62 79 74 65 20  64 61 74 75 6D 20 28 36  8-byte Data:  An 8-byte datum (6
000073A0  34 2D 62 69 74 2C 20 65  2E 67 2E 2C 20 64 6F 75  62 6C 65 2D 70 72 65 63  69 73 69 6F 6E 20 72 65  4-bit, e.g., double-precision re
000073C0  61 6C 73 29 20 73 68 6F  75 6C 64 20 62 65 20 61  6C 69 67 6E 65 64 20 6F  6E 20 61 6E 20 38 2D 62  als) should be aligned on an 8-b
000073E0  79 74 65 20 62 6F 75 6E  64 61 72 79 2E 0D 0A 0D  0A 35 2E 35 20 50 72 65  66 69 78 65 64 20 4F 70  yte boundary.5.5 Prefixed Op
00007400  63 6F 64 65 73 0D 0A 0D  0A 4F 6E 20 74 68 65 20  49 6E 74 65 6C 33 38 36  20 70 72 6F 63 65 73 73  codesOn the Intel386 process
00007420  6F 72 20 61 6E 64 20 74  68 65 20 49 6E 74 65 6C  34 38 36 20 70 72 6F 63  65 73 73 6F 72 2C 20 61  or and the Intel486 processor, a
00007440  6C 6C 20 70 72 65 66 69  78 20 6F 70 63 6F 64 65  73 20 72 65 71 75 69 72  65 20 61 6E 20 61 64 64  ll prefix opcodes require an add
00007460  69 74 69 6F 6E 61 6C 20  63 6C 6F 63 6B 20 74 6F  20 64 65 63 6F 64 65 2E  20 4F 6E 20 74 68 65 20  itional clock to decode. On the 
00007480  50 65 6E 74 69 75 6D 20  70 72 6F 63 65 73 73 6F  72 2C 20 61 6E 20 69 6E  73 74 72 75 63 74 69 6F  Pentium processor, an instructio
000074A0  6E 20 77 69 74 68 20 61  20 70 72 65 66 69 78 20  69 73 20 70 61 69 72 61  62 6C 65 20 69 6E 20 74  n with a prefix is pairable in t
000074C0  68 65 20 55 20 70 69 70  65 20 28 50 55 29 20 69  66 20 74 68 65 20 69 6E  73 74 72 75 63 74 69 6F  he U pipe (PU) if the instructio
000074E0  6E 20 28 77 69 74 68 6F  75 74 20 74 68 65 20 70  72 65 66 69 78 29 20 69  73 20 70 61 69 72 61 62  n (without the prefix) is pairab
00007500  6C 65 20 69 6E 20 62 6F  74 68 20 70 69 70 65 73  20 28 55 56 29 20 6F 72  20 69 6E 20 74 68 65 20  le in both pipes (UV) or in the 
00007520  55 20 70 69 70 65 20 28  50 55 29 2E 20 54 68 69  73 20 69 73 20 61 20 73  70 65 63 69 61 6C 20 63  U pipe (PU). This is a special c
00007540  61 73 65 20 6F 66 20 70  61 69 72 69 6E 67 2E 20  54 68 65 20 70 72 65 66  69 78 65 73 20 61 72 65  ase of pairing. The prefixes are
00007560  20 69 73 73 75 65 64 20  74 6F 20 74 68 65 20 55  20 70 69 70 65 20 61 6E  64 20 67 65 74 20 64 65   issued to the U pipe and get de
00007580  63 6F 64 65 64 20 69 6E  20 6F 6E 65 20 63 79 63  6C 65 20 66 6F 72 20 65  61 63 68 20 70 72 65 66  coded in one cycle for each pref
000075A0  69 78 20 61 6E 64 20 74  68 65 6E 20 74 68 65 20  69 6E 73 74 72 75 63 74  69 6F 6E 20 69 73 20 69  ix and then the instruction is i
000075C0  73 73 75 65 64 20 74 6F  20 74 68 65 20 55 20 70  69 70 65 20 61 6E 64 20  6D 61 79 20 62 65 20 70  ssued to the U pipe and may be p
000075E0  61 69 72 65 64 2E 0D 0A  0D 0A 41 6C 6C 20 74 68  65 73 65 20 70 72 65 66  69 78 65 73 3A 20 6C 6F  aired.All these prefixes: lo
00007600  63 6B 2C 20 73 65 67 6D  65 6E 74 20 6F 76 65 72  72 69 64 65 2C 20 61 64  64 72 65 73 73 20 73 69  ck, segment override, address si
00007620  7A 65 2C 20 73 65 63 6F  6E 64 20 6F 70 63 6F 64  65 20 6D 61 70 20 28 4F  66 29 2C 20 61 6E 64 20  ze, second opcode map (Of), and 
00007640  6F 70 65 72 61 6E 64 20  73 69 7A 65 20 62 65 6C  6F 6E 67 20 74 6F 20 74  68 69 73 20 67 72 6F 75  operand size belong to this grou
00007660  70 2E 20 4E 6F 74 65 20  74 68 61 74 20 74 68 69  73 20 69 6E 63 6C 75 64  65 73 20 61 6C 6C 20 74  p. Note that this includes all t
00007680  68 65 20 31 36 20 62 69  74 20 69 6E 73 74 72 75  63 74 69 6F 6E 73 20 77  68 65 6E 20 65 78 65 63  he 16 bit instructions when exec
000076A0  75 74 69 6E 67 20 69 6E  20 33 32 2D 62 69 74 20  6D 6F 64 65 20 62 65 63  61 75 73 65 20 61 6E 20  uting in 32-bit mode because an 
000076C0  6F 70 65 72 61 6E 64 20  73 69 7A 65 20 70 72 65  66 69 78 20 69 73 20 72  65 71 75 69 72 65 64 20  operand size prefix is required 
000076E0  28 65 2E 67 2E 2C 20 6D  6F 76 20 77 6F 72 64 20  70 74 72 20 5B 2E 2E 5D  2C 20 61 64 64 20 77 6F  (e.g., mov word ptr [..], add wo
00007700  72 64 20 70 74 72 20 5B  2E 2E 5D 2C 20 2E 2E 2E  29 0D 0A 0D 0A 54 68 65  20 6E 65 61 72 20 6A 63  rd ptr [..], ...)The near jc
00007720  63 20 70 72 65 66 69 78  20 62 65 68 61 76 65 73  20 64 69 66 66 65 72 65  6E 74 6C 79 3B 20 69 74  c prefix behaves differently; it
00007740  20 64 6F 65 73 20 6E 6F  74 20 74 61 6B 65 20 61  6E 20 65 78 74 72 61 20  63 79 63 6C 65 20 74 6F   does not take an extra cycle to
00007760  20 64 65 63 6F 64 65 20  61 6E 64 20 62 65 6C 6F  6E 67 73 20 74 6F 20 50  56 20 67 72 6F 75 70 2E   decode and belongs to PV group.
00007780  20 20 4F 74 68 65 72 20  30 66 20 6F 70 63 6F 64  65 73 20 62 65 68 61 76  65 20 61 73 20 6E 6F 72    Other 0f opcodes behave as nor
000077A0  6D 61 6C 20 70 72 65 66  69 78 65 64 20 69 6E 73  74 72 75 63 74 69 6F 6E  73 2E 20 46 6F 72 20 6F  mal prefixed instructions. For o
000077C0  70 74 69 6D 69 7A 65 64  20 63 6F 64 65 2C 20 70  72 65 66 69 78 65 64 20  6F 70 63 6F 64 65 73 20  ptimized code, prefixed opcodes 
000077E0  73 68 6F 75 6C 64 20 62  65 20 61 76 6F 69 64 65  64 2E 0D 0A 0D 0A 57 68  65 6E 20 70 72 65 66 69  should be avoided.When prefi
00007800  78 65 64 20 6F 70 63 6F  64 65 73 20 68 61 76 65  20 74 6F 20 62 65 20 75  73 65 64 2C 20 74 68 65  xed opcodes have to be used, the
00007820  72 65 20 61 72 65 20 74  77 6F 20 63 61 73 65 73  20 69 6E 20 77 68 69 63  68 20 6F 76 65 72 6C 61  re are two cases in which overla
00007840  70 20 63 61 6E 20 62 65  20 61 63 68 69 65 76 65  64 20 62 65 74 77 65 65  6E 20 74 68 65 20 65 78  p can be achieved between the ex
00007860  74 72 61 20 63 6C 6F 63  6B 20 69 74 20 74 61 6B  65 73 20 74 6F 20 64 65  63 6F 64 65 20 61 20 70  tra clock it takes to decode a p
00007880  72 65 66 69 78 20 61 6E  64 20 61 20 63 79 63 6C  65 20 75 73 65 64 20 62  79 20 74 68 65 20 70 72  refix and a cycle used by the pr
000078A0  65 76 69 6F 75 73 20 69  6E 73 74 72 75 63 74 69  6F 6E 20 65 78 65 63 75  74 69 6E 67 20 69 6E 20  evious instruction executing in 
000078C0  74 68 65 20 73 61 6D 65  20 70 69 70 65 3A 0D 0A  0D 0A 31 2E 20 54 68 65  20 6F 6E 65 2D 63 79 63  the same pipe:1. The one-cyc
000078E0  6C 65 20 70 65 6E 61 6C  74 79 20 66 72 6F 6D 20  75 73 69 6E 67 20 74 68  65 20 72 65 73 75 6C 74  le penalty from using the result
00007900  20 72 65 67 69 73 74 65  72 20 6F 66 20 61 20 70  72 65 76 69 6F 75 73 20  69 6E 73 74 72 75 63 74   register of a previous instruct
00007920  69 6F 6E 20 61 73 20 61  20 62 61 73 65 20 6F 72  20 69 6E 64 65 78 20 28  41 47 49 29 2E 0D 0A 0D  ion as a base or index (AGI).
00007940  0A 32 2E 20 54 68 65 20  6C 61 73 74 20 63 79 63  6C 65 20 6F 66 20 61 20  70 72 65 63 65 64 69 6E  2. The last cycle of a precedin
00007960  67 20 6D 75 6C 74 69 2D  63 79 63 6C 65 20 69 6E  73 74 72 75 63 74 69 6F  6E 2E 0D 0A 0D 0A 0D 0A  g multi-cycle instruction.
00007980  0D 0A 0D 0A 0D 0A 35 2E  36 20 49 6E 74 65 67 65  72 20 49 6E 73 74 72 75  63 74 69 6F 6E 20 53 63  5.6 Integer Instruction Sc
000079A0  68 65 64 75 6C 69 6E 67  0D 0A 0D 0A 49 6E 73 74  72 75 63 74 69 6F 6E 20  73 63 68 65 64 75 6C 69  hedulingInstruction scheduli
000079C0  6E 67 20 69 73 20 74 68  65 20 70 72 6F 63 65 73  73 20 6F 66 20 72 65 6F  72 64 65 72 69 6E 67 20  ng is the process of reordering 
000079E0  74 68 65 20 69 6E 73 74  72 75 63 74 69 6F 6E 73  20 69 6E 20 61 20 70 72  6F 67 72 61 6D 20 74 6F  the instructions in a program to
00007A00  20 61 76 6F 69 64 20 73  74 61 6C 6C 73 0D 0A 61  6E 64 20 64 65 6C 61 79  73 20 77 68 69 6C 65 20   avoid stallsand delays while 
00007A20  6D 61 69 6E 74 61 69 6E  69 6E 67 20 74 68 65 20  73 65 6D 61 6E 74 69 63  73 20 6F 66 20 74 68 65  maintaining the semantics of the
00007A40  20 67 65 6E 65 72 61 74  65 64 20 63 6F 64 65 2E  0D 0A 0D 0A 53 63 68 65  64 75 6C 69 6E 67 20 6F   generated code.Scheduling o
00007A60  66 20 69 6E 74 65 67 65  72 20 69 6E 73 74 72 75  63 74 69 6F 6E 73 20 68  61 73 20 74 77 6F 20 70  f integer instructions has two p
00007A80  75 72 70 6F 73 65 73 3A  0D 0A 0D 0A 31 2E 20 20  45 6C 69 6D 69 6E 61 74  65 20 73 74 61 6C 6C 73  urposes:1.  Eliminate stalls
00007AA0  20 69 6E 20 74 68 65 20  49 6E 74 65 6C 34 38 36  20 70 69 70 65 6C 69 6E  65 20 61 6E 64 20 65 61   in the Intel486 pipeline and ea
00007AC0  63 68 20 70 69 70 65 20  6F 66 20 74 68 65 20 50  65 6E 74 69 75 6D 20 70  72 6F 63 65 73 73 6F 72  ch pipe of the Pentium processor
00007AE0  2E 0D 0A 0D 0A 54 68 65  72 65 20 61 72 65 20 73  6F 6D 65 20 63 6F 6E 64  69 74 69 6F 6E 73 20 77  .There are some conditions w
00007B00  68 65 72 65 20 70 69 70  65 20 73 74 61 6C 6C 73  20 61 72 65 20 65 6E 63  6F 75 6E 74 65 72 65 64  here pipe stalls are encountered
00007B20  2E 20 54 68 65 20 67 65  6E 65 72 61 6C 20 67 75  69 64 65 6C 69 6E 65 20  69 73 20 74 6F 20 66 69  . The general guideline is to fi
00007B40  6E 64 20 69 6E 73 74 72  75 63 74 69 6F 6E 73 20  74 68 61 74 20 63 61 6E  20 62 65 20 69 6E 73 65  nd instructions that can be inse
00007B60  72 74 65 64 20 62 65 74  77 65 65 6E 20 74 68 65  20 69 6E 73 74 72 75 63  74 69 6F 6E 73 20 74 68  rted between the instructions th
00007B80  61 74 20 63 61 75 73 65  20 61 20 73 74 61 6C 6C  2E 20 53 69 6E 63 65 20  6D 6F 73 74 20 6F 66 20  at cause a stall. Since most of 
00007BA0  74 68 65 20 63 6F 6D 6D  6F 6E 6C 79 20 75 73 65  64 20 69 6E 74 65 67 65  72 20 69 6E 73 74 72 75  the commonly used integer instru
00007BC0  63 74 69 6F 6E 73 20 74  61 6B 65 20 6F 6E 6C 79  20 6F 6E 65 20 63 6C 6F  63 6B 2C 20 74 68 65 72  ctions take only one clock, ther
00007BE0  65 20 69 73 20 6E 6F 74  20 6D 75 63 68 20 6E 65  65 64 20 74 6F 20 68 69  64 65 20 6C 61 74 65 6E  e is not much need to hide laten
00007C00  63 69 65 73 2E 20 54 68  65 20 6D 6F 73 74 20 63  6F 6D 6D 6F 6E 20 64 65  6C 61 79 73 20 77 68 69  cies. The most common delays whi
00007C20  63 68 20 63 61 6E 20 62  65 20 61 76 6F 69 64 65  64 20 74 68 72 6F 75 67  68 20 73 63 68 65 64 75  ch can be avoided through schedu
00007C40  6C 69 6E 67 20 61 72 65  20 41 47 49 20 27 73 2E  0D 0A 0D 0A 32 2E 20 20  43 72 65 61 74 65 20 70  ling are AGI 's.2.  Create p
00007C60  61 69 72 73 20 66 6F 72  20 6D 61 78 69 6D 75 6D  20 74 68 72 6F 75 67 68  70 75 74 20 66 72 6F 6D  airs for maximum throughput from
00007C80  20 74 68 65 20 50 65 6E  74 69 75 6D 20 70 72 6F  63 65 73 73 6F 72 27 73  20 64 75 61 6C 20 70 69   the Pentium processor's dual pi
00007CA0  70 65 20 61 72 63 68 69  74 65 63 74 75 72 65 3A  0D 0A 0D 0A 54 68 65 20  50 65 6E 74 69 75 6D 20  pe architecture:The Pentium 
00007CC0  70 72 6F 63 65 73 73 6F  72 20 63 61 6E 20 69 73  73 75 65 20 74 77 6F 20  69 6E 73 74 72 75 63 74  processor can issue two instruct
00007CE0  69 6F 6E 73 20 66 6F 72  20 65 78 65 63 75 74 69  6F 6E 20 73 69 6D 75 6C  74 61 6E 65 6F 75 73 6C  ions for execution simultaneousl
00007D00  79 2E 20 54 68 69 73 20  69 73 20 63 61 6C 6C 65  64 20 70 61 69 72 69 6E  67 2E 20 54 68 65 72 65  y. This is called pairing. There
00007D20  20 61 72 65 20 6C 69 6D  69 74 61 74 69 6F 6E 73  20 6F 6E 20 77 68 69 63  68 20 74 77 6F 20 69 6E   are limitations on which two in
00007D40  73 74 72 75 63 74 69 6F  6E 73 20 63 61 6E 20 62  65 20 70 61 69 72 65 64  20 61 6E 64 20 73 6F 6D  structions can be paired and som
00007D60  65 20 70 61 69 72 73 2C  20 65 76 65 6E 20 77 68  65 6E 20 69 73 73 75 65  64 2C 20 77 69 6C 6C 20  e pairs, even when issued, will 
00007D80  6E 6F 74 20 65 78 65 63  75 74 65 20 69 6E 20 70  61 72 61 6C 6C 65 6C 2E  20 50 61 69 72 69 6E 67  not execute in parallel. Pairing
00007DA0  20 64 65 74 61 69 6C 73  20 61 72 65 20 64 65 73  63 72 69 62 65 64 20 69  6E 20 66 6F 6C 6C 6F 77   details are described in follow
00007DC0  69 6E 67 20 73 65 63 74  69 6F 6E 73 2E 20 20 4D  6F 72 65 20 69 6E 66 6F  72 6D 61 74 69 6F 6E 20  ing sections.  More information 
00007DE0  61 62 6F 75 74 20 69 6E  73 74 72 75 63 74 69 6F  6E 20 70 61 69 72 61 62  69 6C 69 74 79 20 63 61  about instruction pairability ca
00007E00  6E 20 62 65 20 66 6F 75  6E 64 20 69 6E 20 41 70  70 65 6E 64 69 78 20 41  2E 0D 0A 0D 0A 52 65 6F  n be found in Appendix A.Reo
00007E20  72 64 65 72 69 6E 67 20  69 6E 73 74 72 75 63 74  69 6F 6E 73 20 73 68 6F  75 6C 64 20 62 65 20 64  rdering instructions should be d
00007E40  6F 6E 65 20 69 6E 20 6F  72 64 65 72 20 74 6F 20  69 6E 63 72 65 61 73 65  20 74 68 65 20 70 6F 73  one in order to increase the pos
00007E60  73 69 62 69 6C 69 74 79  20 6F 66 20 69 73 73 75  69 6E 67 20 74 77 6F 20  69 6E 73 74 72 75 63 74  sibility of issuing two instruct
00007E80  69 6F 6E 73 20 73 69 6D  75 6C 74 61 6E 65 6F 75  73 6C 79 2E 20 20 44 65  70 65 6E 64 65 6E 74 20  ions simultaneously.  Dependent 
00007EA0  69 6E 73 74 72 75 63 74  69 6F 6E 73 20 73 68 6F  75 6C 64 20 62 65 20 73  65 70 61 72 61 74 65 64  instructions should be separated
00007EC0  20 62 79 20 61 74 20 6C  65 61 73 74 20 6F 6E 65  20 6F 74 68 65 72 20 69  6E 73 74 72 75 63 74 69   by at least one other instructi
00007EE0  6F 6E 2E 20 53 63 68 65  64 75 6C 69 6E 67 20 66  6F 72 20 74 68 65 20 50  65 6E 74 69 75 6D 20 70  on. Scheduling for the Pentium p
00007F00  72 6F 63 65 73 73 6F 72  27 73 20 64 75 61 6C 20  70 69 70 65 20 69 73 20  6F 76 65 72 6B 69 6C 6C  rocessor's dual pipe is overkill
00007F20  20 66 6F 72 20 74 68 65  20 49 6E 74 65 6C 34 38  36 20 70 72 6F 63 65 73  73 6F 72 20 62 75 74 20   for the Intel486 processor but 
00007F40  68 61 73 20 6F 74 68 65  72 77 69 73 65 20 6C 69  74 74 6C 65 20 65 66 66  65 63 74 20 6F 6E 20 69  has otherwise little effect on i
00007F60  74 73 20 70 65 72 66 6F  72 6D 61 6E 63 65 2E 0D  0A 0D 0A 54 68 65 20 66  6F 6C 6C 6F 77 69 6E 67  ts performance.The following
00007F80  20 73 75 62 73 65 63 74  69 6F 6E 73 20 61 72 65  20 50 65 6E 74 69 75 6D  20 70 72 6F 63 65 73 73   subsections are Pentium process
00007FA0  6F 72 20 73 70 65 63 69  66 69 63 20 6F 70 74 69  6D 69 7A 61 74 69 6F 6E  73 2E 20 54 68 65 73 65  or specific optimizations. These
00007FC0  20 6F 70 74 69 6D 69 7A  61 74 69 6F 6E 73 20 64  6F 20 6E 6F 74 20 61 64  76 65 72 73 65 6C 79 20   optimizations do not adversely 
00007FE0  69 6D 70 61 63 74 20 74  68 65 20 49 6E 74 65 6C  33 38 36 20 61 6E 64 20  49 6E 74 65 6C 34 38 36  impact the Intel386 and Intel486
00008000  20 70 72 6F 63 65 73 73  6F 72 73 2E 0D 0A 0D 0A  35 2E 36 2E 31 2E 20 50  61 69 72 69 6E 67 0D 0A   processors.5.6.1. Pairing
00008020  0D 0A 50 61 69 72 69 6E  67 20 63 61 6E 6E 6F 74  20 62 65 20 70 65 72 66  6F 72 6D 65 64 20 77 68  Pairing cannot be performed wh
00008040  65 6E 20 74 68 65 20 66  6F 6C 6C 6F 77 69 6E 67  20 63 6F 6E 64 69 74 69  6F 6E 73 20 6F 63 63 75  en the following conditions occu
00008060  72 3A 0D 0A 0D 0A 31 2E  20 54 68 65 20 6E 65 78  74 20 74 77 6F 20 69 6E  73 74 72 75 63 74 69 6F  r:1. The next two instructio
00008080  6E 73 20 61 72 65 20 6E  6F 74 20 70 61 69 72 61  62 6C 65 20 69 6E 73 74  72 75 63 74 69 6F 6E 73  ns are not pairable instructions
000080A0  20 28 53 65 65 20 41 70  70 65 6E 64 69 78 20 41  20 66 6F 72 20 70 61 69  72 69 6E 67 20 63 68 61   (See Appendix A for pairing cha
000080C0  72 61 63 74 65 72 69 73  74 69 63 73 20 6F 66 20  69 6E 64 69 76 69 64 75  61 6C 20 69 6E 73 74 72  racteristics of individual instr
000080E0  75 63 74 69 6F 6E 73 2E  20 20 49 6E 20 67 65 6E  65 72 61 6C 2C 20 6D 6F  73 74 20 73 69 6D 70 6C  uctions.  In general, most simpl
00008100  65 20 41 4C 55 20 69 6E  73 74 72 75 63 74 69 6F  6E 73 20 61 72 65 20 70  61 69 72 61 62 6C 65 2E  e ALU instructions are pairable.
00008120  0D 0A 0D 0A 32 2E 20 54  68 65 20 6E 65 78 74 20  74 77 6F 20 69 6E 73 74  72 75 63 74 69 6F 6E 73  2. The next two instructions
00008140  20 68 61 76 65 20 73 6F  6D 65 20 74 79 70 65 20  6F 66 20 72 65 67 69 73  74 65 72 20 63 6F 6E 74   have some type of register cont
00008160  65 6E 74 69 6F 6E 20 28  69 6D 70 6C 69 63 69 74  20 6F 72 20 65 78 70 6C  69 63 69 74 29 2E 20 54  ention (implicit or explicit). T
00008180  68 65 72 65 20 61 72 65  20 73 6F 6D 65 20 73 70  65 63 69 61 6C 20 65 78  63 65 70 74 69 6F 6E 73  here are some special exceptions
000081A0  20 74 6F 20 74 68 69 73  20 72 75 6C 65 20 77 68  65 72 65 20 72 65 67 69  73 74 65 72 20 63 6F 6E   to this rule where register con
000081C0  74 65 6E 74 69 6F 6E 20  63 61 6E 20 6F 63 63 75  72 20 77 69 74 68 20 70  61 69 72 69 6E 67 2E 20  tention can occur with pairing. 
000081E0  54 68 65 73 65 20 61 72  65 20 64 65 73 63 72 69  62 65 64 20 6C 61 74 65  72 2E 0D 0A 0D 0A 33 2E  These are described later.3.
00008200  20 54 68 65 20 69 6E 73  74 72 75 63 74 69 6F 6E  73 20 61 72 65 20 6E 6F  74 20 62 6F 74 68 20 69   The instructions are not both i
00008220  6E 20 74 68 65 20 69 6E  73 74 72 75 63 74 69 6F  6E 20 63 61 63 68 65 2E  20 20 41 6E 20 65 78 63  n the instruction cache.  An exc
00008240  65 70 74 69 6F 6E 20 74  6F 20 74 68 69 73 20 77  68 69 63 68 20 70 65 72  6D 69 74 73 20 70 61 69  eption to this which permits pai
00008260  72 69 6E 67 20 69 73 20  69 66 20 74 68 65 20 66  69 72 73 74 20 69 6E 73  74 72 75 63 74 69 6F 6E  ring is if the first instruction
00008280  20 69 73 20 61 20 6F 6E  65 20 62 79 74 65 20 69  6E 73 74 72 75 63 74 69  6F 6E 2E 0D 0A 0D 0A 35   is a one byte instruction.5
000082A0  2E 36 2E 32 2E 20 20 49  6E 73 74 72 75 63 74 69  6F 6E 20 53 65 74 20 50  61 69 72 61 62 69 6C 69  .6.2.  Instruction Set Pairabili
000082C0  74 79 0D 0A 0D 0A 35 2E  36 2E 32 2E 31 20 20 55  6E 70 61 69 72 61 62 6C  65 20 69 6E 73 74 72 75  ty5.6.2.1  Unpairable instru
000082E0  63 74 69 6F 6E 73 20 28  4E 50 29 0D 0A 0D 0A 31  2E 20 73 68 69 66 74 2F  72 6F 74 61 74 65 20 77  ctions (NP)1. shift/rotate w
00008300  69 74 68 20 74 68 65 20  73 68 69 66 74 20 63 6F  75 6E 74 20 69 6E 20 63  6C 0D 0A 0D 0A 32 2E 20  ith the shift count in cl2. 
00008320  4C 6F 6E 67 2D 41 72 69  74 68 6D 65 74 69 63 20  69 6E 73 74 72 75 63 74  69 6F 6E 73 2C 20 66 6F  Long-Arithmetic instructions, fo
00008340  72 20 65 78 61 6D 70 6C  65 2C 20 20 6D 75 6C 2C  20 64 69 76 0D 0A 0D 0A  33 2E 20 45 78 74 65 6E  r example,  mul, div3. Exten
00008360  64 65 64 20 69 6E 73 74  72 75 63 74 69 6F 6E 73  2C 20 66 6F 72 20 65 78  61 6D 70 6C 65 2C 20 72  ded instructions, for example, r
00008380  65 74 2C 20 65 6E 74 65  72 2C 20 70 75 73 68 61  2C 20 6D 6F 76 73 2C 20  72 65 70 20 73 74 6F 73  et, enter, pusha, movs, rep stos
000083A0  2C 20 6C 6F 6F 70 6E 7A  0D 0A 0D 0A 34 2E 20 53  6F 6D 65 20 46 6C 6F 61  74 69 6E 67 2D 50 6F 69  , loopnz4. Some Floating-Poi
000083C0  6E 74 20 49 6E 73 74 72  75 63 74 69 6F 6E 73 2C  20 66 6F 72 20 65 78 61  6D 70 6C 65 2C 20 66 73  nt Instructions, for example, fs
000083E0  63 61 6C 65 2C 20 66 6C  64 63 77 2C 20 66 73 74  0D 0A 0D 0A 35 2E 20 49  6E 74 65 72 2D 73 65 67  cale, fldcw, fst5. Inter-seg
00008400  6D 65 6E 74 20 69 6E 73  74 72 75 63 74 69 6F 6E  73 2C 20 66 6F 72 20 65  78 61 6D 70 6C 65 2C 20  ment instructions, for example, 
00008420  70 75 73 68 20 73 72 65  67 2C 20 63 61 6C 6C 20  66 61 72 0D 0A 0D 0A 35  2E 36 2E 32 2E 32 20 20  push sreg, call far5.6.2.2  
00008440  20 50 61 69 72 61 62 6C  65 20 69 6E 73 74 72 75  63 74 69 6F 6E 73 20 69  73 73 75 65 64 20 74 6F   Pairable instructions issued to
00008460  20 55 20 6F 72 20 56 20  20 70 69 70 65 73 20 28  55 56 29 0D 0A 0D 0A 31  2E 20 4D 6F 73 74 20 38   U or V  pipes (UV)1. Most 8
00008480  2F 33 32 2D 62 69 74 20  41 4C 55 20 6F 70 65 72  61 74 69 6F 6E 73 2C 20  66 6F 72 20 65 78 61 6D  /32-bit ALU operations, for exam
000084A0  70 6C 65 2C 20 61 64 64  2C 20 69 6E 63 2C 20 78  6F 72 2C 0D 0A 0D 0A 32  2E 20 41 6C 6C 20 38 2F  ple, add, inc, xor,2. All 8/
000084C0  33 32 2D 62 69 74 20 63  6F 6D 70 61 72 65 20 69  6E 73 74 72 75 63 74 69  6F 6E 73 2C 20 66 6F 72  32-bit compare instructions, for
000084E0  20 65 78 61 6D 70 6C 65  20 63 6D 70 2C 20 74 65  73 74 0D 0A 0D 0A 33 2E  20 41 6C 6C 20 38 2F 33   example cmp, test3. All 8/3
00008500  32 2D 62 69 74 20 73 74  61 63 6B 20 6F 70 65 72  61 74 69 6F 6E 73 20 75  73 69 6E 67 20 72 65 67  2-bit stack operations using reg
00008520  69 73 74 65 72 73 2C 20  66 6F 72 20 65 78 61 6D  70 6C 65 2C 20 70 75 73  68 20 72 65 67 2C 20 70  isters, for example, push reg, p
00008540  6F 70 20 72 65 67 0D 0A  0D 0A 20 35 2E 36 2E 32  2E 33 20 20 50 61 69 72  61 62 6C 65 20 69 6E 73  op reg 5.6.2.3  Pairable ins
00008560  74 72 75 63 74 69 6F 6E  73 20 69 73 73 75 65 64  20 74 6F 20 55 20 70 69  70 65 20 28 50 55 29 0D  tructions issued to U pipe (PU)
00008580  0A 0D 0A 54 68 65 73 65  20 69 6E 73 74 72 75 63  74 69 6F 6E 73 20 6D 75  73 74 20 62 65 20 69 73  These instructions must be is
000085A0  73 75 65 64 20 74 6F 20  74 68 65 20 55 20 70 69  70 65 20 61 6E 64 20 63  61 6E 20 70 61 69 72 20  sued to the U pipe and can pair 
000085C0  77 69 74 68 20 61 20 73  75 69 74 61 62 6C 65 20  69 6E 73 74 72 75 63 74  69 6F 6E 20 69 6E 20 74  with a suitable instruction in t
000085E0  68 65 20 56 0D 0A 50 69  70 65 2E 20 54 68 65 73  65 20 69 6E 73 74 72 75  63 74 69 6F 6E 73 20 6E  he VPipe. These instructions n
00008600  65 76 65 72 20 65 78 65  63 75 74 65 20 69 6E 20  74 68 65 20 56 20 70 69  70 65 2E 0D 0A 0D 0A 31  ever execute in the V pipe.1
00008620  2E 20 43 61 72 72 79 20  61 6E 64 20 62 6F 72 72  6F 77 20 69 6E 73 74 72  75 63 74 69 6F 6E 73 2C  . Carry and borrow instructions,
00008640  20 66 6F 72 20 65 78 61  6D 70 6C 65 2C 20 61 64  63 2C 20 73 62 62 0D 0A  0D 0A 32 2E 20 50 72 65   for example, adc, sbb2. Pre
00008660  66 69 78 65 64 20 69 6E  73 74 72 75 63 74 69 6F  6E 73 20 28 73 65 65 20  6E 65 78 74 20 73 65 63  fixed instructions (see next sec
00008680  74 69 6F 6E 29 0D 0A 0D  0A 33 2E 20 53 68 69 66  74 20 77 69 74 68 20 69  6D 6D 65 64 69 61 74 65  tion)3. Shift with immediate
000086A0  0D 0A 0D 0A 34 2E 20 53  6F 6D 65 20 46 6C 6F 61  74 69 6E 67 2D 50 6F 69  6E 74 20 4F 70 65 72 61  4. Some Floating-Point Opera
000086C0  74 69 6F 6E 73 2C 20 66  6F 72 20 65 78 61 6D 70  6C 65 2C 20 66 61 64 64  2C 20 66 6D 75 6C 2C 20  tions, for example, fadd, fmul, 
000086E0  66 6C 64 0D 0A 0D 0A 35  2E 36 2E 32 2E 34 20 20  50 61 69 72 61 62 6C 65  20 69 6E 73 74 72 75 63  fld5.6.2.4  Pairable instruc
00008700  74 69 6F 6E 73 20 69 73  73 75 65 64 20 74 6F 20  56 20 20 70 69 70 65 20  28 50 56 29 0D 0A 0D 0A  tions issued to V  pipe (PV)
00008720  54 68 65 73 65 20 69 6E  73 74 72 75 63 74 69 6F  6E 73 20 63 61 6E 20 65  78 65 63 75 74 65 20 69  These instructions can execute i
00008740  6E 20 65 69 74 68 65 72  20 74 68 65 20 55 20 70  69 70 65 20 6F 72 20 74  68 65 20 56 20 70 69 70  n either the U pipe or the V pip
00008760  65 2C 20 62 75 74 20 74  68 65 79 20 61 72 65 20  6F 6E 6C 79 20 70 61 69  72 65 64 20 77 68 65 6E  e, but they are only paired when
00008780  20 74 68 65 79 20 61 72  65 20 69 6E 20 74 68 65  20 56 20 20 70 69 70 65  2E 20 53 69 6E 63 65 20   they are in the V  pipe. Since 
000087A0  74 68 65 73 65 20 69 6E  73 74 72 75 63 74 69 6F  6E 73 20 63 68 61 6E 67  65 20 74 68 65 20 69 6E  these instructions change the in
000087C0  73 74 72 75 63 74 69 6F  6E 20 70 6F 69 6E 74 65  72 20 28 65 69 70 29 2C  20 74 68 65 79 20 63 61  struction pointer (eip), they ca
000087E0  6E 6E 6F 74 20 70 61 69  72 20 69 6E 20 74 68 65  20 55 20 70 69 70 65 20  62 65 63 61 75 73 65 20  nnot pair in the U pipe because 
00008800  74 68 65 20 6E 65 78 74  20 69 6E 73 74 72 75 63  74 69 6F 6E 20 6D 61 79  20 6E 6F 74 20 62 65 20  the next instruction may not be 
00008820  61 64 6A 61 63 65 6E 74  2E 20 45 76 65 6E 20 77  68 65 6E 20 61 20 62 72  61 6E 63 68 20 69 6E 20  adjacent. Even when a branch in 
00008840  74 68 65 20 55 20 70 69  70 65 20 69 73 20 70 72  65 64 69 63 74 65 64 20  22 6E 6F 74 20 74 61 6B  the U pipe is predicted "not tak
00008860  65 6E 22 2C 20 69 74 20  77 69 6C 6C 20 6E 6F 74  20 70 61 69 72 20 77 69  74 68 20 74 68 65 20 66  en", it will not pair with the f
00008880  6F 6C 6C 6F 77 69 6E 67  20 69 6E 73 74 72 75 63  74 69 6F 6E 2E 0D 0A 0D  0A 31 2E 20 53 69 6D 70  ollowing instruction.1. Simp
000088A0  6C 65 20 63 6F 6E 74 72  6F 6C 20 74 72 61 6E 73  66 65 72 20 69 6E 73 74  72 75 63 74 69 6F 6E 73  le control transfer instructions
000088C0  2C 20 66 6F 72 20 65 78  61 6D 70 6C 65 20 2D 20  63 61 6C 6C 20 6E 65 61  72 2C 20 6A 6D 70 20 6E  , for example - call near, jmp n
000088E0  65 61 72 2C 20 6A 63 63  2E 20 54 68 69 73 20 69  6E 63 6C 75 64 65 73 20  62 6F 74 68 20 74 68 65  ear, jcc. This includes both the
00008900  20 6A 63 63 20 73 68 6F  72 74 20 61 6E 64 20 74  68 65 20 6A 63 63 20 6E  65 61 72 20 28 77 68 69   jcc short and the jcc near (whi
00008920  63 68 20 68 61 73 20 61  20 30 66 20 70 72 65 66  69 78 29 20 76 65 72 73  69 6F 6E 73 20 6F 66 20  ch has a 0f prefix) versions of 
00008940  74 68 65 20 63 6F 6E 64  69 74 69 6F 6E 61 6C 20  6A 75 6D 70 20 69 6E 73  74 72 75 63 74 69 6F 6E  the conditional jump instruction
00008960  73 2E 0D 0A 0D 0A 32 2E  20 66 78 63 68 0D 0A 0D  0A 35 2E 36 2E 33 2E 20  20 55 6E 70 61 69 72 61  s.2. fxch5.6.3.  Unpaira
00008980  62 69 6C 69 74 79 20 44  75 65 20 74 6F 20 52 65  67 69 73 74 65 72 73 0D  0A 0D 0A 54 68 65 20 70  bility Due to RegistersThe p
000089A0  61 69 72 61 62 69 6C 69  74 79 20 6F 66 20 61 6E  20 69 6E 73 74 72 75 63  74 69 6F 6E 20 69 73 20  airability of an instruction is 
000089C0  61 6C 73 6F 20 61 66 66  65 63 74 65 64 20 62 79  20 69 74 73 20 6F 70 65  72 61 6E 64 73 2E 20 54  also affected by its operands. T
000089E0  68 65 20 66 6F 6C 6C 6F  77 69 6E 67 20 61 72 65  20 74 68 65 20 63 6F 6D  62 69 6E 61 74 69 6F 6E  he following are the combination
00008A00  73 20 74 68 61 74 20 61  72 65 20 6E 6F 74 20 70  61 69 72 61 62 6C 65 20  64 75 65 20 74 6F 20 72  s that are not pairable due to r
00008A20  65 67 69 73 74 65 72 20  63 6F 6E 74 65 6E 74 69  6F 6E 2E 20 45 78 63 65  70 74 69 6F 6E 73 20 74  egister contention. Exceptions t
00008A40  6F 20 74 68 65 73 65 20  72 75 6C 65 73 20 61 72  65 20 67 69 76 65 6E 20  69 6E 20 74 68 65 20 6E  o these rules are given in the n
00008A60  65 78 74 20 73 65 63 74  69 6F 6E 2E 0D 0A 0D 0A  31 2E 20 54 68 65 20 66  69 72 73 74 20 69 6E 73  ext section.1. The first ins
00008A80  74 72 75 63 74 69 6F 6E  20 77 72 69 74 65 73 20  74 6F 20 61 20 72 65 67  69 73 74 65 72 20 74 68  truction writes to a register th
00008AA0  61 74 20 74 68 65 20 73  65 63 6F 6E 64 20 6F 6E  65 20 72 65 61 64 73 20  66 72 6F 6D 20 28 66 6C  at the second one reads from (fl
00008AC0  6F 77 2D 64 65 70 65 6E  64 65 6E 63 65 29 2E 0D  0A 0D 0A 45 78 61 6D 70  6C 65 3A 0D 0A 0D 0A 20  ow-dependence).Example: 
00008AE0  20 20 20 20 6D 6F 76 20  20 65 61 78 2C 20 38 0D  0A 20 20 20 20 20 6D 6F  76 20 20 5B 65 62 70 5D      mov  eax, 8     mov  [ebp]
00008B00  2C 20 65 61 78 0D 0A 0D  0A 0C 32 2E 20 42 6F 74  68 20 69 6E 73 74 72 75  63 74 69 6F 6E 73 20 77  , eax2. Both instructions w
00008B20  72 69 74 65 20 74 6F 20  74 68 65 20 73 61 6D 65  20 72 65 67 69 73 74 65  72 20 28 6F 75 74 70 75  rite to the same register (outpu
00008B40  74 2D 64 65 70 65 6E 64  65 6E 63 65 29 2E 0D 0A  0D 0A 45 78 61 6D 70 6C  65 3A 0D 0A 0D 0A 20 20  t-dependence).Example:  
00008B60  20 20 20 6D 6F 76 20 20  65 61 78 2C 20 38 0D 0A  20 20 20 20 20 6D 6F 76  20 20 65 61 78 2C 20 5B     mov  eax, 8     mov  eax, [
00008B80  65 62 70 5D 0D 0A 0D 0A  54 68 69 73 20 6C 69 6D  69 74 61 74 69 6F 6E 20  64 6F 65 73 20 6E 6F 74  ebp]This limitation does not
00008BA0  20 61 70 70 6C 79 20 74  6F 20 61 20 70 61 69 72  20 6F 66 20 69 6E 73 74  72 75 63 74 69 6F 6E 73   apply to a pair of instructions
00008BC0  20 77 68 69 63 68 20 77  72 69 74 65 20 74 6F 20  74 68 65 20 65 66 6C 61  67 73 20 72 65 67 69 73   which write to the eflags regis
00008BE0  74 65 72 20 28 65 2E 67  2E 20 74 77 6F 20 41 4C  55 20 6F 70 65 72 61 74  69 6F 6E 73 20 74 68 61  ter (e.g. two ALU operations tha
00008C00  74 20 63 68 61 6E 67 65  20 74 68 65 20 63 6F 6E  64 69 74 69 6F 6E 20 63  6F 64 65 73 29 2E 20 54  t change the condition codes). T
00008C20  68 65 20 63 6F 6E 64 69  74 69 6F 6E 20 63 6F 64  65 20 61 66 74 65 72 20  74 68 65 20 70 61 69 72  he condition code after the pair
00008C40  65 64 20 69 6E 73 74 72  75 63 74 69 6F 6E 73 20  65 78 65 63 75 74 65 20  77 69 6C 6C 20 68 61 76  ed instructions execute will hav
00008C60  65 20 74 68 65 20 63 6F  6E 64 69 74 69 6F 6E 20  66 72 6F 6D 20 74 68 65  20 56 20 70 69 70 65 20  e the condition from the V pipe 
00008C80  69 6E 73 74 72 75 63 74  69 6F 6E 2E 0D 0A 0D 0A  4E 6F 74 65 20 74 68 61  74 20 61 20 70 61 69 72  instruction.Note that a pair
00008CA0  20 6F 66 20 69 6E 73 74  72 75 63 74 69 6F 6E 73  20 69 6E 20 77 68 69 63  68 20 74 68 65 20 66 69   of instructions in which the fi
00008CC0  72 73 74 20 72 65 61 64  73 20 61 20 72 65 67 69  73 74 65 72 20 61 6E 64  20 74 68 65 20 73 65 63  rst reads a register and the sec
00008CE0  6F 6E 64 20 77 72 69 74  65 73 20 74 6F 20 69 74  20 28 61 6E 74 69 2D 20  64 65 70 65 6E 64 65 6E  ond writes to it (anti- dependen
00008D00  63 65 29 20 69 73 20 70  61 69 72 61 62 6C 65 2E  0D 0A 0D 0A 45 78 61 6D  70 6C 65 3A 0D 0A 0D 0A  ce) is pairable.Example:
00008D20  20 20 20 20 20 6D 6F 76  20 20 65 61 78 2C 20 65  62 78 20 20 20 20 20 20  20 6D 6F 76 20 20 65 62       mov  eax, ebx       mov  eb
00008D40  78 2C 20 5B 65 62 70 5D  0D 0A 0D 0A 46 6F 72 20  70 75 72 70 6F 73 65 73  20 6F 66 20 64 65 74 65  x, [ebp]For purposes of dete
00008D60  72 6D 69 6E 69 6E 67 20  72 65 67 69 73 74 65 72  20 63 6F 6E 74 65 6E 74  69 6F 6E 2C 20 61 20 72  rmining register contention, a r
00008D80  65 66 65 72 65 6E 63 65  20 74 6F 20 61 20 62 79  74 65 20 6F 72 20 77 6F  72 64 20 72 65 67 69 73  eference to a byte or word regis
00008DA0  74 65 72 20 69 73 20 74  72 65 61 74 65 64 0D 0A  61 73 20 61 20 72 65 66  65 72 65 6E 63 65 20 74  ter is treatedas a reference t
00008DC0  6F 20 74 68 65 20 63 6F  6E 74 61 69 6E 69 6E 67  20 33 32 2D 62 69 74 20  72 65 67 69 73 74 65 72  o the containing 32-bit register
00008DE0  2E 20 48 65 6E 63 65 2C  0D 0A 0D 0A 20 20 20 20  20 6D 6F 76 20 20 61 6C  2C 20 31 0D 0A 20 20 20  . Hence,     mov  al, 1   
00008E00  20 20 6D 6F 76 20 20 61  68 2C 20 30 0D 0A 0D 0A  64 6F 20 6E 6F 74 20 70  61 69 72 20 64 75 65 20    mov  ah, 0do not pair due 
00008E20  74 6F 20 61 70 70 61 72  65 6E 74 20 6F 75 74 70  75 74 20 64 65 70 65 6E  64 65 6E 63 69 65 73 20  to apparent output dependencies 
00008E40  6F 6E 20 65 61 78 2E 0D  0A 0D 0A 35 2E 36 2E 34  20 53 70 65 63 69 61 6C  20 50 61 69 72 73 0D 0A  on eax.5.6.4 Special Pairs
00008E60  0D 0A 54 68 65 72 65 20  61 72 65 20 73 6F 6D 65  20 69 6E 73 74 72 75 63  74 69 6F 6E 73 20 74 68  There are some instructions th
00008E80  61 74 20 63 61 6E 20 62  65 20 70 61 69 72 65 64  20 61 6C 74 68 6F 75 67  68 20 74 68 65 20 67 65  at can be paired although the ge
00008EA0  6E 65 72 61 6C 20 72 75  6C 65 20 70 72 6F 68 69  62 69 74 73 20 74 68 69  73 2E 20 54 68 65 73 65  neral rule prohibits this. These
00008EC0  20 73 70 65 63 69 61 6C  20 70 61 69 72 73 20 6F  76 65 72 63 6F 6D 65 20  72 65 67 69 73 74 65 72   special pairs overcome register
00008EE0  20 64 65 70 65 6E 64 65  6E 63 69 65 73 2E 20 4D  6F 73 74 20 6F 66 20 74  68 65 73 65 20 65 78 63   dependencies. Most of these exc
00008F00  65 70 74 69 6F 6E 73 20  69 6E 76 6F 6C 76 65 20  69 6D 70 6C 69 63 69 74  20 72 65 61 64 73 2F 77  eptions involve implicit reads/w
00008F20  72 69 74 65 73 20 74 6F  20 74 68 65 20 65 73 70  20 72 65 67 69 73 74 65  72 20 6F 72 20 69 6D 70  rites to the esp register or imp
00008F40  6C 69 63 69 74 20 77 72  69 74 65 73 20 74 6F 20  74 68 65 20 63 6F 6E 64  69 74 69 6F 6E 20 63 6F  licit writes to the condition co
00008F60  64 65 73 3A 0D 0A 0D 0A  53 74 61 63 6B 20 50 6F  69 6E 74 65 72 3A 0D 0A  0D 0A 31 2E 20 70 75 73  des:Stack Pointer:1. pus
00008F80  68 20 72 65 67 2F 69 6D  6D 3B 20 70 75 73 68 20  72 65 67 2F 69 6D 6D 0D  0A 0D 0A 32 2E 20 70 75  h reg/imm; push reg/imm2. pu
00008FA0  73 68 20 72 65 67 2F 69  6D 6D 3B 20 63 61 6C 6C  0D 0A 0D 0A 33 2E 20 70  6F 70 20 72 65 67 20 20  sh reg/imm; call3. pop reg  
00008FC0  20 20 20 3B 20 70 6F 70  20 72 65 67 0D 0A 0D 0A  43 6F 6E 64 69 74 69 6F  6E 20 43 6F 64 65 73 3A     ; pop regCondition Codes:
00008FE0  0D 0A 0D 0A 31 2E 20 63  6D 70 20 20 20 20 20 20  20 20 20 3B 20 6A 63 63  0D 0A 0D 0A 32 2E 20 61  1. cmp         ; jcc2. a
00009000  64 64 20 20 20 20 20 20  20 20 20 3B 20 6A 6E 65  0D 0A 0D 0A 4E 6F 74 65  20 74 68 61 74 20 74 68  dd         ; jneNote that th
00009020  65 20 73 70 65 63 69 61  6C 20 70 61 69 72 73 20  74 68 61 74 20 63 6F 6E  73 69 73 74 20 6F 66 20  e special pairs that consist of 
00009040  70 75 73 68 2F 70 6F 70  20 69 6E 73 74 72 75 63  74 69 6F 6E 73 20 6D 61  79 20 68 61 76 65 20 6F  push/pop instructions may have o
00009060  6E 6C 79 20 69 6D 6D 65  64 69 61 74 65 20 6F 72  20 72 65 67 69 73 74 65  72 20 6F 70 65 72 61 6E  nly immediate or register operan
00009080  64 73 2E 0D 0A 0D 0A 0C  35 2E 36 2E 35 20 52 65  73 74 72 69 63 74 69 6F  6E 73 20 6F 6E 20 50 61  ds.5.6.5 Restrictions on Pa
000090A0  69 72 20 45 78 65 63 75  74 69 6F 6E 0D 0A 0D 0A  54 68 65 72 65 20 61 72  65 20 73 6F 6D 65 20 70  ir ExecutionThere are some p
000090C0  61 69 72 73 20 74 68 61  74 20 6D 61 79 20 62 65  20 69 73 73 75 65 64 20  73 69 6D 75 6C 74 61 6E  airs that may be issued simultan
000090E0  65 6F 75 73 6C 79 20 62  75 74 20 77 69 6C 6C 20  6E 6F 74 20 65 78 65 63  75 74 65 20 69 6E 20 70  eously but will not execute in p
00009100  61 72 61 6C 6C 65 6C 3A  0D 0A 0D 0A 31 2E 20 49  66 20 62 6F 74 68 20 69  6E 73 74 72 75 63 74 69  arallel:1. If both instructi
00009120  6F 6E 73 20 61 63 63 65  73 73 20 74 68 65 20 73  61 6D 65 20 64 61 74 61  2D 63 61 63 68 65 20 6D  ons access the same data-cache m
00009140  65 6D 6F 72 79 20 62 61  6E 6B 20 74 68 65 6E 20  74 68 65 20 73 65 63 6F  6E 64 20 72 65 71 75 65  emory bank then the second reque
00009160  73 74 20 28 56 20 20 70  69 70 65 29 20 6D 75 73  74 20 77 61 69 74 20 66  6F 72 20 74 68 65 20 66  st (V  pipe) must wait for the f
00009180  69 72 73 74 20 72 65 71  75 65 73 74 20 74 6F 20  63 6F 6D 70 6C 65 74 65  2E 20 41 20 62 61 6E 6B  irst request to complete. A bank
000091A0  20 63 6F 6E 66 6C 69 63  74 20 6F 63 63 75 72 73  20 77 68 65 6E 20 62 69  74 73 20 32 2D 34 20 61   conflict occurs when bits 2-4 a
000091C0  72 65 20 74 68 65 20 73  61 6D 65 20 69 6E 20 74  68 65 20 74 77 6F 20 70  68 79 73 69 63 61 6C 20  re the same in the two physical 
000091E0  61 64 64 72 65 73 73 65  73 2E 20 54 68 69 73 20  69 73 20 62 65 63 61 75  73 65 20 74 68 65 20 63  addresses. This is because the c
00009200  61 63 68 65 20 69 73 20  6F 72 67 61 6E 69 7A 65  64 20 61 73 20 38 20 62  61 6E 6B 73 20 6F 66 20  ache is organized as 8 banks of 
00009220  33 32 2D 62 69 74 20 77  69 64 65 20 64 61 74 61  20 65 6E 74 72 69 65 73  2E 20 41 20 62 61 6E 6B  32-bit wide data entries. A bank
00009240  20 63 6F 6E 66 6C 69 63  74 20 69 6E 63 75 72 73  20 61 20 6F 6E 65 20 63  6C 6F 63 6B 20 70 65 6E   conflict incurs a one clock pen
00009260  61 6C 74 79 20 6F 6E 20  74 68 65 20 56 20 70 69  70 65 20 69 6E 73 74 72  75 63 74 69 6F 6E 20 2E  alty on the V pipe instruction .
00009280  0D 0A 0D 0A 32 2E 20 49  6E 74 65 72 2D 70 69 70  65 20 63 6F 6E 63 75 72  72 65 6E 63 79 20 69 6E  2. Inter-pipe concurrency in
000092A0  20 65 78 65 63 75 74 69  6F 6E 20 70 72 65 73 65  72 76 65 73 20 6D 65 6D  6F 72 79 2D 61 63 63 65   execution preserves memory-acce
000092C0  73 73 20 6F 72 64 65 72  69 6E 67 2E 20 41 20 6D  75 6C 74 69 2D 63 79 63  6C 65 20 69 6E 73 74 72  ss ordering. A multi-cycle instr
000092E0  75 63 74 69 6F 6E 20 69  6E 20 74 68 65 20 55 20  70 69 70 65 20 77 69 6C  6C 20 65 78 65 63 75 74  uction in the U pipe will execut
00009300  65 20 61 6C 6F 6E 65 20  75 6E 74 69 6C 20 69 74  73 20 6C 61 73 74 20 6D  65 6D 6F 72 79 20 61 63  e alone until its last memory ac
00009320  63 65 73 73 2E 0D 0A 0D  0A 09 61 64 64 20 20 65  61 78 2C 20 6D 65 6D 6C  09 61 64 64 20 20 65 62  cess.add  eax, memladd  eb
00009340  78 2C 20 6D 65 6D 32 20  09 3B 20 31 0D 0A 09 20  20 28 61 64 64 29 09 20  20 20 28 61 64 64 29 09  x, mem2 ; 1  (add)   (add)
00009360  3B 20 32 20 20 32 2D 63  79 63 6C 65 0D 0A 0D 0A  54 68 65 20 69 6E 73 74  72 75 63 74 69 6F 6E 73  ; 2  2-cycleThe instructions
00009380  20 61 62 6F 76 65 20 61  64 64 20 74 68 65 20 63  6F 6E 74 65 6E 74 73 20  6F 66 20 74 68 65 20 72   above add the contents of the r
000093A0  65 67 69 73 74 65 72 20  61 6E 64 20 74 68 65 20  76 61 6C 75 65 20 61 74  20 74 68 65 20 6D 65 6D  egister and the value at the mem
000093C0  6F 72 79 20 6C 6F 63 61  74 69 6F 6E 2C 20 74 68  65 6E 20 70 75 74 20 74  68 65 20 72 65 73 75 6C  ory location, then put the resul
000093E0  74 20 69 6E 20 74 68 65  20 72 65 67 69 73 74 65  72 2E 20 41 6E 20 61 64  64 20 77 69 74 68 20 61  t in the register. An add with a
00009400  20 6D 65 6D 6F 72 79 20  6F 70 65 72 61 6E 64 20  74 61 6B 65 73 20 74 77  6F 20 63 6C 6F 63 6B 73   memory operand takes two clocks
00009420  20 74 6F 20 65 78 65 63  75 74 65 2E 20 54 68 65  20 66 69 72 73 74 20 63  6C 6F 63 6B 20 6C 6F 61   to execute. The first clock loa
00009440  64 73 20 74 68 65 20 76  61 6C 75 65 20 66 72 6F  6D 20 63 61 63 68 65 2C  20 61 6E 64 20 74 68 65  ds the value from cache, and the
00009460  20 73 65 63 6F 6E 64 20  63 6C 6F 63 6B 20 70 65  72 66 6F 72 6D 73 20 74  68 65 20 61 64 64 69 74   second clock performs the addit
00009480  69 6F 6E 2E 20 53 69 6E  63 65 20 74 68 65 72 65  20 69 73 20 6F 6E 6C 79  20 6F 6E 65 20 6D 65 6D  ion. Since there is only one mem
000094A0  6F 72 79 20 61 63 63 65  73 73 20 69 6E 20 74 68  65 20 55 20 70 69 70 65  20 69 6E 73 74 72 75 63  ory access in the U pipe instruc
000094C0  74 69 6F 6E 2C 20 74 68  65 20 61 64 64 20 69 6E  20 74 68 65 20 56 20 20  70 69 70 65 20 63 61 6E  tion, the add in the V  pipe can
000094E0  20 73 74 61 72 74 20 69  6E 20 74 68 65 20 73 61  6D 65 20 63 79 63 6C 65  2E 0D 0A 0D 0A 09 61 64   start in the same cycle.ad
00009500  64 20 20 6D 65 6D 6C 2C  20 65 61 78 09 09 20 3B  20 31 0D 0A 20 09 20 20  20 28 61 64 64 29 20 09  d  meml, eax ; 1    (add) 
00009520  09 3B 20 32 0D 0A 20 20  09 20 20 20 28 61 64 64  29 09 61 64 64 20 20 6D  65 6D 32 2C 20 65 62 78  ; 2     (add)add  mem2, ebx
00009540  09 3B 20 33 0D 0A 09 09  20 20 20 28 61 64 64 29  09 3B 20 34 0D 0A 09 09  20 20 20 28 61 64 64 29  ; 3   (add); 4   (add)
00009560  09 3B 20 35 0D 0A 0D 0A  54 68 65 20 61 62 6F 76  65 20 69 6E 73 74 72 75  63 74 69 6F 6E 73 20 61  ; 5The above instructions a
00009580  64 64 20 74 68 65 20 63  6F 6E 74 65 6E 74 73 20  6F 66 20 74 68 65 20 72  65 67 69 73 74 65 72 20  dd the contents of the register 
000095A0  74 6F 20 74 68 65 20 6D  65 6D 6F 72 79 20 6C 6F  63 61 74 69 6F 6E 20 61  6E 64 20 73 74 6F 72 65  to the memory location and store
000095C0  20 74 68 65 20 72 65 73  75 6C 74 20 61 74 20 74  68 65 20 6D 65 6D 6F 72  79 20 6C 6F 63 61 74 69   the result at the memory locati
000095E0  6F 6E 2E 20 41 6E 20 61  64 64 20 77 69 74 68 20  61 20 6D 65 6D 6F 72 79  20 72 65 73 75 6C 74 20  on. An add with a memory result 
00009600  74 61 6B 65 73 20 33 20  63 6C 6F 63 6B 73 20 74  6F 20 65 78 65 63 75 74  65 2E 20 20 54 68 65 20  takes 3 clocks to execute.  The 
00009620  66 69 72 73 74 20 63 6C  6F 63 6B 20 6C 6F 61 64  73 20 74 68 65 20 76 61  6C 75 65 2C 20 74 68 65  first clock loads the value, the
00009640  20 73 65 63 6F 6E 64 20  70 65 72 66 6F 72 6D 73  20 74 68 65 20 61 64 64  69 74 69 6F 6E 2C 20 61   second performs the addition, a
00009660  6E 64 20 74 68 65 20 74  68 69 72 64 20 73 74 6F  72 65 73 20 74 68 65 20  72 65 73 75 6C 74 2E 20  nd the third stores the result. 
00009680  57 68 65 6E 20 70 61 69  72 65 64 2C 20 74 68 65  20 6C 61 73 74 20 63 79  63 6C 65 20 6F 66 20 74  When paired, the last cycle of t
000096A0  68 65 20 55 20 70 69 70  65 20 69 6E 73 74 72 75  63 74 69 6F 6E 20 6F 76  65 72 6C 61 70 73 20 77  he U pipe instruction overlaps w
000096C0  69 74 68 20 74 68 65 20  66 69 72 73 74 20 63 79  63 6C 65 20 6F 66 20 74  68 65 20 56 20 70 69 70  ith the first cycle of the V pip
000096E0  65 20 69 6E 73 74 72 75  63 74 69 6F 6E 20 65 78  65 63 75 74 69 6F 6E 2E  0D 0A 0D 0A 4E 6F 20 6F  e instruction execution.No o
00009700  74 68 65 72 20 69 6E 73  74 72 75 63 74 69 6F 6E  73 20 6D 61 79 20 62 65  67 69 6E 20 65 78 65 63  ther instructions may begin exec
00009720  75 74 69 6F 6E 20 75 6E  74 69 6C 20 74 68 65 20  69 6E 73 74 72 75 63 74  69 6F 6E 73 20 61 6C 72  ution until the instructions alr
00009740  65 61 64 79 20 65 78 65  63 75 74 69 6E 67 20 68  61 76 65 0D 0A 63 6F 6D  70 6C 65 74 65 64 2E 0D  eady executing havecompleted.
00009760  0A 0D 0A 54 6F 20 65 78  70 6F 73 65 20 74 68 65  20 6F 70 70 6F 72 74 75  6E 69 74 69 65 73 20 66  To expose the opportunities f
00009780  6F 72 20 73 63 68 65 64  75 6C 69 6E 67 20 61 6E  64 20 70 61 69 72 69 6E  67 2C 20 69 74 20 69 73  or scheduling and pairing, it is
000097A0  20 62 65 74 74 65 72 20  74 6F 20 69 73 73 75 65  20 61 20 73 65 71 75 65  6E 63 65 20 6F 66 20 73   better to issue a sequence of s
000097C0  69 6D 70 6C 65 20 69 6E  73 74 72 75 63 74 69 6F  6E 73 20 72 61 74 68 65  72 20 74 68 61 6E 20 61  imple instructions rather than a
000097E0  20 63 6F 6D 70 6C 65 78  20 69 6E 73 74 72 75 63  74 69 6F 6E 20 74 68 61  74 20 74 61 6B 65 73 20   complex instruction that takes 
00009800  74 68 65 20 73 61 6D 65  20 6E 75 6D 62 65 72 20  6F 66 20 63 79 63 6C 65  73 2E 20 54 68 65 20 73  the same number of cycles. The s
00009820  69 6D 70 6C 65 20 69 6E  73 74 72 75 63 74 69 6F  6E 20 73 65 71 75 65 6E  63 65 20 63 61 6E 20 74  imple instruction sequence can t
00009840  61 6B 65 20 61 64 76 61  6E 74 61 67 65 20 6F 66  20 6D 6F 72 65 20 69 73  73 75 65 20 73 6C 6F 74  ake advantage of more issue slot
00009860  73 2E 20 20 43 6F 6D 70  69 6C 65 72 20 77 72 69  74 65 72 73 2F 70 72 6F  67 72 61 6D 6D 65 72 73  s.  Compiler writers/programmers
00009880  20 63 61 6E 20 61 6C 73  6F 20 63 68 6F 6F 73 65  20 74 6F 20 72 65 63 6F  6E 73 74 72 75 63 74 20   can also choose to reconstruct 
000098A0  74 68 65 20 63 6F 6D 70  6C 65 78 20 66 6F 72 6D  20 69 66 20 74 68 65 20  70 61 69 72 69 6E 67 20  the complex form if the pairing 
000098C0  6F 70 70 6F 72 74 75 6E  69 74 79 20 64 6F 65 73  20 6E 6F 74 20 6D 61 74  65 72 69 61 6C 69 7A 65  opportunity does not materialize
000098E0  2E 20 54 68 65 20 6C 6F  61 64 2F 73 74 6F 72 65  20 73 74 79 6C 65 20 63  6F 64 65 20 67 65 6E 65  . The load/store style code gene
00009900  72 61 74 69 6F 6E 20 72  65 71 75 69 72 65 73 20  6D 6F 72 65 20 72 65 67  69 73 74 65 72 73 20 61  ration requires more registers a
00009920  6E 64 20 69 6E 63 72 65  61 73 65 73 20 63 6F 64  65 20 73 69 7A 65 2E 20  54 68 69 73 20 69 6D 70  nd increases code size. This imp
00009940  61 63 74 73 20 49 6E 74  65 6C 34 38 36 20 70 72  6F 63 65 73 73 6F 72 20  70 65 72 66 6F 72 6D 61  acts Intel486 processor performa
00009960  6E 63 65 2C 20 61 6C 74  68 6F 75 67 68 20 6F 6E  6C 79 20 61 73 20 61 20  73 65 63 6F 6E 64 20 6F  nce, although only as a second o
00009980  72 64 65 72 20 65 66 66  65 63 74 2E 20 54 6F 20  63 6F 6D 70 65 6E 73 61  74 65 20 66 6F 72 20 74  rder effect. To compensate for t
000099A0  68 65 20 65 78 74 72 61  20 72 65 67 69 73 74 65  72 73 20 6E 65 65 64 65  64 2C 20 65 78 74 72 61  he extra registers needed, extra
000099C0  20 65 66 66 6F 72 74 20  73 68 6F 75 6C 64 20 62  65 20 70 75 74 20 69 6E  74 6F 20 74 68 65 20 72   effort should be put into the r
000099E0  65 67 69 73 74 65 72 20  61 6C 6C 6F 63 61 74 6F  72 20 61 6E 64 20 69 6E  73 74 72 75 63 74 69 6F  egister allocator and instructio
00009A00  6E 20 73 63 68 65 64 75  6C 65 72 20 73 6F 20 74  68 61 74 20 65 78 74 72  61 20 72 65 67 69 73 74  n scheduler so that extra regist
00009A20  65 72 73 20 61 72 65 20  6F 6E 6C 79 20 75 73 65  64 20 77 68 65 6E 20 70  61 72 61 6C 6C 65 6C 69  ers are only used when paralleli
00009A40  73 6D 20 69 6E 63 72 65  61 73 65 73 2E 0D 0A 0D  0A 35 2E 37 20 49 6E 74  65 67 65 72 20 49 6E 73  sm increases.5.7 Integer Ins
00009A60  74 72 75 63 74 69 6F 6E  20 53 65 6C 65 63 74 69  6F 6E 0D 0A 0D 0A 54 68  65 20 66 6F 6C 6C 6F 77  truction SelectionThe follow
00009A80  69 6E 67 20 68 69 67 68  6C 69 67 68 74 73 20 73  6F 6D 65 20 69 6E 73 74  72 75 63 74 69 6F 6E 20  ing highlights some instruction 
00009AA0  73 65 71 75 65 6E 63 65  73 20 74 6F 20 61 76 6F  69 64 20 61 6E 64 20 73  6F 6D 65 20 73 65 71 75  sequences to avoid and some sequ
00009AC0  65 6E 63 65 73 20 74 6F  20 75 73 65 20 77 68 65  6E 20 67 65 6E 65 72 61  74 69 6E 67 20 6F 70 74  ences to use when generating opt
00009AE0  69 6D 61 6C 20 61 73 73  65 6D 62 6C 79 20 63 6F  64 65 2E 0D 0A 0D 0A 54  68 65 20 6C 65 61 20 69  imal assembly code.The lea i
00009B00  6E 73 74 72 75 63 74 69  6F 6E 20 63 61 6E 20 62  65 20 61 64 76 61 6E 74  61 67 65 6F 75 73 3A 0D  nstruction can be advantageous:
00009B20  0A 0D 0A 61 2E 20 4C 65  61 20 6D 61 79 20 62 65  20 75 73 65 64 20 73 6F  6D 65 74 69 6D 65 73 20  a. Lea may be used sometimes 
00009B40  61 73 20 61 20 74 68 72  65 65 2F 66 6F 75 72 20  6F 70 65 72 61 6E 64 20  61 64 64 69 74 69 6F 6E  as a three/four operand addition
00009B60  20 69 6E 73 74 72 75 63  74 69 6F 6E 0B 20 20 20  20 20 20 20 20 20 20 20  20 65 2E 67 2E 2C 20 20   instruction            e.g.,  
00009B80  6C 65 61 20 20 65 63 78  2C 20 5B 65 61 78 2B 65  62 78 2B 34 2B 61 5D 0D  0A 0D 0A 62 2E 20 49 6E  lea  ecx, [eax+ebx+4+a]b. In
00009BA0  20 6D 61 6E 79 20 63 61  73 65 73 20 61 6E 20 6C  65 61 20 69 6E 73 74 72  75 63 74 69 6F 6E 20 6F   many cases an lea instruction o
00009BC0  72 20 61 20 73 65 71 75  65 6E 63 65 20 6F 66 20  6C 65 61 2C 20 61 64 64  2C 20 73 75 62 20 61 6E  r a sequence of lea, add, sub an
00009BE0  64 20 74 68 65 20 73 68  69 66 74 20 69 6E 73 74  72 75 63 74 69 6F 6E 73  20 6D 61 79 20 62 65 20  d the shift instructions may be 
00009C00  75 73 65 64 20 74 6F 20  72 65 70 6C 61 63 65 20  63 6F 6E 73 74 61 6E 74  20 6D 75 6C 74 69 70 6C  used to replace constant multipl
00009C20  79 20 69 6E 73 74 72 75  63 74 69 6F 6E 73 2E 0D  0A 0D 0A 63 2E 20 54 68  69 73 20 63 61 6E 20 61  y instructions.c. This can a
00009C40  6C 73 6F 20 62 65 20 75  73 65 64 20 74 6F 20 61  76 6F 69 64 20 63 6F 70  79 69 6E 67 20 61 20 72  lso be used to avoid copying a r
00009C60  65 67 69 73 74 65 72 20  77 68 65 6E 20 62 6F 74  68 20 6F 70 65 72 61 6E  64 73 20 74 6F 20 61 6E  egister when both operands to an
00009C80  20 61 64 64 20 61 72 65  20 73 74 69 6C 6C 20 6E  65 65 64 65 64 20 20 61  66 74 65 72 20 74 68 65   add are still needed  after the
00009CA0  20 61 64 64 2C 20 73 69  6E 63 65 20 6C 65 61 20  6E 65 65 64 20 6E 6F 74  20 6F 76 65 72 77 72 69   add, since lea need not overwri
00009CC0  74 65 20 69 74 73 20 6F  70 65 72 61 6E 64 73 2E  0D 0A 0D 0A 54 68 65 20  64 69 73 61 64 76 61 6E  te its operands.The disadvan
00009CE0  74 61 67 65 20 6F 66 20  74 68 65 20 6C 65 61 20  69 6E 73 74 72 75 63 74  69 6F 6E 20 69 73 20 74  tage of the lea instruction is t
00009D00  68 61 74 20 69 74 20 69  6E 63 72 65 61 73 65 73  20 74 68 65 20 70 6F 73  73 69 62 69 6C 69 74 79  hat it increases the possibility
00009D20  20 6F 66 20 61 6E 20 41  47 49 20 73 74 61 6C 6C  20 77 69 74 68 20 70 72  65 76 69 6F 75 73 20 69   of an AGI stall with previous i
00009D40  6E 73 74 72 75 63 74 69  6F 6E 73 2E 20 4C 65 61  20 69 73 20 75 73 65 66  75 6C 20 66 6F 72 20 73  nstructions. Lea is useful for s
00009D60  68 69 66 74 73 20 6F 66  20 32 2C 34 2C 38 20 62  65 63 61 75 73 65 20 74  68 65 20 73 68 69 66 74  hifts of 2,4,8 because the shift
00009D80  20 69 6E 73 74 72 75 63  74 69 6F 6E 73 20 74 61  6B 65 20 32 20 63 6C 6F  63 6B 73 20 6F 6E 20 49   instructions take 2 clocks on I
00009DA0  6E 74 65 6C 34 38 36 20  70 72 6F 63 65 73 73 6F  72 20 77 68 65 72 65 61  73 20 6C 65 61 20 6F 6E  ntel486 processor whereas lea on
00009DC0  6C 79 20 74 61 6B 65 73  20 6F 6E 65 2E 20 20 4F  6E 20 74 68 65 20 50 65  6E 74 69 75 6D 20 70 72  ly takes one.  On the Pentium pr
00009DE0  6F 63 65 73 73 6F 72 2C  20 6C 65 61 20 63 61 6E  20 65 78 65 63 75 74 65  20 69 6E 20 65 69 74 68  ocessor, lea can execute in eith
00009E00  65 72 20 55 20 6F 72 20  56 20 70 69 70 65 73 2C  20 62 75 74 20 74 68 65  20 73 68 69 66 74 20 69  er U or V pipes, but the shift i
00009E20  6E 73 74 72 75 63 74 69  6F 6E 73 20 63 61 6E 20  6F 6E 6C 79 20 65 78 65  63 75 74 65 20 69 6E 20  nstructions can only execute in 
00009E40  74 68 65 20 55 20 70 69  70 65 2E 20 0D 0A 0D 0A  43 6F 6D 70 6C 65 78 20  69 6E 73 74 72 75 63 74  the U pipe. Complex instruct
00009E60  69 6F 6E 73 0D 0A 0D 0A  41 76 6F 69 64 20 75 73  69 6E 67 20 63 6F 6D 70  6C 65 78 20 69 6E 73 74  ionsAvoid using complex inst
00009E80  72 75 63 74 69 6F 6E 73  20 28 66 6F 72 20 65 78  61 6D 70 6C 65 2C 20 65  6E 74 65 72 2C 20 6C 65  ructions (for example, enter, le
00009EA0  61 76 65 2C 20 6C 6F 6F  70 29 2E 20 20 55 73 65  20 73 65 71 75 65 6E 63  65 73 20 6F 66 20 73 69  ave, loop).  Use sequences of si
00009EC0  6D 70 6C 65 0D 0A 69 6E  73 74 72 75 63 74 69 6F  6E 73 20 69 6E 73 74 65  61 64 2E 0D 0A 0D 0A 5A  mpleinstructions instead.Z
00009EE0  65 72 6F 2D 45 78 74 65  6E 73 69 6F 6E 20 6F 66  20 53 68 6F 72 74 0D 0A  0D 0A 54 68 65 20 6D 6F  ero-Extension of ShortThe mo
00009F00  76 7A 78 20 69 6E 73 74  72 75 63 74 69 6F 6E 20  68 61 73 20 61 20 70 72  65 66 69 78 20 61 6E 64  vzx instruction has a prefix and
00009F20  20 74 61 6B 65 73 20 33  20 63 79 63 6C 65 73 20  74 6F 20 65 78 65 63 75  74 65 2C 20 74 6F 74 61   takes 3 cycles to execute, tota
00009F40  6C 69 6E 67 20 34 20 63  79 63 6C 65 73 2E 20 41  73 20 77 69 74 68 20 74  68 65 20 49 6E 74 65 6C  ling 4 cycles. As with the Intel
00009F60  34 38 36 20 70 72 6F 63  65 73 73 6F 72 2C 20 69  74 20 69 73 20 72 65 63  6F 6D 6D 65 6E 64 65 64  486 processor, it is recommended
00009F80  20 74 68 65 20 66 6F 6C  6C 6F 77 69 6E 67 20 73  65 71 75 65 6E 63 65 20  62 65 20 75 73 65 64 20   the following sequence be used 
00009FA0  69 6E 73 74 65 61 64 3A  0D 0A 0D 0A 78 6F 72 20  20 65 61 78 2C 20 65 61  78 0D 0A 6D 6F 76 20 20  instead:xor  eax, eaxmov  
00009FC0  61 6C 2C 20 6D 65 6D 0D  0A 0D 0A 49 66 20 74 68  69 73 20 6F 63 63 75 72  73 20 77 69 74 68 69 6E  al, memIf this occurs within
00009FE0  20 61 20 6C 6F 6F 70 2C  20 69 74 20 6D 61 79 20  62 65 20 70 6F 73 73 69  62 6C 65 20 74 6F 20 70   a loop, it may be possible to p
0000A000  75 6C 6C 20 74 68 65 20  78 6F 72 20 6F 75 74 20  6F 66 20 74 68 65 20 6C  6F 6F 70 20 69 66 20 74  ull the xor out of the loop if t
0000A020  68 65 20 6F 6E 6C 79 20  61 73 73 69 67 6E 6D 65  6E 74 20 74 6F 20 65 61  78 20 69 73 20 74 68 65  he only assignment to eax is the
0000A040  20 6D 6F 76 20 61 6C 2C  20 6D 65 6D 2E 20 54 68  69 73 20 68 61 73 20 67  72 65 61 74 65 72 20 69   mov al, mem. This has greater i
0000A060  6D 70 6F 72 74 61 6E 63  65 20 66 6F 72 20 74 68  65 20 50 65 6E 74 69 75  6D 20 70 72 6F 63 65 73  mportance for the Pentium proces
0000A080  73 6F 72 20 73 69 6E 63  65 20 74 68 65 20 6D 6F  76 7A 78 20 69 73 20 6E  6F 74 20 70 61 69 72 61  sor since the movzx is not paira
0000A0A0  62 6C 65 20 61 6E 64 20  74 68 65 20 6E 65 77 20  73 65 71 75 65 6E 63 65  20 6D 61 79 20 62 65 20  ble and the new sequence may be 
0000A0C0  70 61 69 72 65 64 20 77  69 74 68 20 61 64 6A 61  63 65 6E 74 20 69 6E 73  74 72 75 63 74 69 6F 6E  paired with adjacent instruction
0000A0E0  73 2E 0D 0A 0D 0A 50 75  73 68 20 6D 65 6D 0D 0A  0D 0A 54 68 65 20 70 75  73 68 20 6D 65 6D 20 69  s.Push memThe push mem i
0000A100  6E 73 74 72 75 63 74 69  6F 6E 20 74 61 6B 65 73  20 66 6F 75 72 20 63 79  63 6C 65 73 20 66 6F 72  nstruction takes four cycles for
0000A120  20 74 68 65 20 49 6E 74  65 6C 34 38 36 20 70 72  6F 63 65 73 73 6F 72 2E  20 49 74 20 69 73 20 72   the Intel486 processor. It is r
0000A140  65 63 6F 6D 6D 65 6E 64  65 64 20 74 6F 20 75 73  65 20 74 68 65 20 66 6F  6C 6C 6F 77 69 6E 67 20  ecommended to use the following 
0000A160  73 65 71 75 65 6E 63 65  20 62 65 63 61 75 73 65  20 69 74 20 74 61 6B 65  73 20 6F 6E 6C 79 20 74  sequence because it takes only t
0000A180  77 6F 20 63 79 63 6C 65  73 20 66 6F 72 20 74 68  65 20 49 6E 74 65 6C 34  38 36 20 70 72 6F 63 65  wo cycles for the Intel486 proce
0000A1A0  73 73 6F 72 20 61 6E 64  20 69 6E 63 72 65 61 73  65 73 20 70 61 69 72 69  6E 67 20 6F 70 70 6F 72  ssor and increases pairing oppor
0000A1C0  74 75 6E 69 74 79 20 66  6F 72 20 74 68 65 20 50  65 6E 74 69 75 6D 20 70  72 6F 63 65 73 73 6F 72  tunity for the Pentium processor
0000A1E0  2E 0D 0A 0D 0A 6D 6F 76  20 20 6D 65 6D 2C 20 72  65 67 0D 0A 70 75 73 68  20 72 65 67 0D 0A 0D 0A  .mov  mem, regpush reg
0000A200  53 68 6F 72 74 20 4F 70  63 6F 64 65 73 0D 0A 0D  0A 55 73 65 20 6F 6E 65  2D 62 79 74 65 20 6C 6F  Short OpcodesUse one-byte lo
0000A220  6E 67 20 69 6E 73 74 72  75 63 74 69 6F 6E 73 20  61 73 20 6D 75 63 68 20  61 73 20 70 6F 73 73 69  ng instructions as much as possi
0000A240  62 6C 65 2E 20 54 68 69  73 20 77 69 6C 6C 20 72  65 64 75 63 65 20 63 6F  64 65 20 73 69 7A 65 20  ble. This will reduce code size 
0000A260  61 6E 64 20 68 65 6C 70  20 69 6E 63 72 65 61 73  65 20 69 6E 73 74 72 75  63 74 69 6F 6E 20 64 65  and help increase instruction de
0000A280  6E 73 69 74 79 20 69 6E  20 74 68 65 20 69 6E 73  74 72 75 63 74 69 6F 6E  20 63 61 63 68 65 2E 20  nsity in the instruction cache. 
0000A2A0  54 68 65 20 6D 6F 73 74  20 63 6F 6D 6D 6F 6E 20  65 78 61 6D 70 6C 65 20  69 73 20 75 73 69 6E 67  The most common example is using
0000A2C0  20 69 6E 63 20 61 6E 64  20 64 65 63 20 72 61 74  68 65 72 20 74 68 61 6E  20 61 64 64 69 6E 67 20   inc and dec rather than adding 
0000A2E0  6F 72 20 73 75 62 74 72  61 63 74 69 6E 67 20 74  68 65 20 63 6F 6E 73 74  61 6E 74 20 31 20 77 69  or subtracting the constant 1 wi
0000A300  74 68 20 61 64 64 20 6F  72 20 73 75 62 2E 0D 0A  0D 0A 38 2F 31 36 20 62  69 74 20 6F 70 65 72 61  th add or sub.8/16 bit opera
0000A320  6E 64 73 0D 0A 0D 0A 57  69 74 68 20 38 2D 62 69  74 20 6F 70 65 72 61 6E  64 73 2C 20 74 72 79 20  ndsWith 8-bit operands, try 
0000A340  74 6F 20 75 73 65 20 74  68 65 20 62 79 74 65 20  6F 70 63 6F 64 65 73 2C  20 72 61 74 68 65 72 20  to use the byte opcodes, rather 
0000A360  74 68 61 6E 20 75 73 69  6E 67 20 33 32 2D 62 69  74 20 6F 70 65 72 61 74  69 6F 6E 73 20 6F 6E 20  than using 32-bit operations on 
0000A380  73 69 67 6E 20 61 6E 64  20 7A 65 72 6F 20 65 78  74 65 6E 64 65 64 20 62  79 74 65 73 2E 20 50 72  sign and zero extended bytes. Pr
0000A3A0  65 66 69 78 65 73 20 66  6F 72 20 6F 70 65 72 61  6E 64 20 73 69 7A 65 20  6F 76 65 72 72 69 64 65  efixes for operand size override
0000A3C0  20 61 70 70 6C 79 20 74  6F 20 31 36 2D 62 69 74  20 6F 70 65 72 61 6E 64  73 2C 20 6E 6F 74 20 74   apply to 16-bit operands, not t
0000A3E0  6F 20 38 2D 62 69 74 20  6F 70 65 72 61 6E 64 73  2E 0D 0A 0D 0A 53 69 67  6E 20 45 78 74 65 6E 73  o 8-bit operands.Sign Extens
0000A400  69 6F 6E 20 69 73 20 75  73 75 61 6C 6C 79 20 71  75 69 74 65 20 65 78 70  65 6E 73 69 76 65 2E 20  ion is usually quite expensive. 
0000A420  4F 66 74 65 6E 2C 20 74  68 65 20 73 65 6D 61 6E  74 69 63 73 20 63 61 6E  20 62 65 20 6D 61 69 6E  Often, the semantics can be main
0000A440  74 61 69 6E 65 64 20 62  79 20 7A 65 72 6F 20 65  78 74 65 6E 64 69 6E 67  20 31 36 2D 62 69 74 20  tained by zero extending 16-bit 
0000A460  6F 70 65 72 61 6E 64 73  2E 20 53 70 65 63 69 66  69 63 61 6C 6C 79 2C 20  74 68 65 20 43 20 63 6F  operands. Specifically, the C co
0000A480  64 65 20 69 6E 20 74 68  65 20 66 6F 6C 6C 6F 77  69 6E 67 20 65 78 61 6D  70 6C 65 20 64 6F 65 73  de in the following example does
0000A4A0  20 6E 6F 74 20 6E 65 65  64 20 73 69 67 6E 20 65  78 74 65 6E 73 69 6F 6E  20 6E 6F 72 20 64 6F 65   not need sign extension nor doe
0000A4C0  73 20 69 74 20 6E 65 65  64 20 70 72 65 66 69 78  65 73 20 66 6F 72 20 6F  70 65 72 61 6E 64 20 73  s it need prefixes for operand s
0000A4E0  69 7A 65 20 6F 76 65 72  72 69 64 65 73 2E 0D 0A  0D 0A 73 74 61 74 69 63  20 73 68 6F 72 74 20 69  ize overrides.static short i
0000A500  6E 74 20 61 2C 20 62 3B  0D 0A 69 66 20 28 61 3D  3D 62 29 20 7B 0D 0A 20  20 20 2E 20 2E 20 2E 0D  nt a, b;if (a==b) {   . . .
0000A520  0A 7D 0D 0A 0D 0A 43 6F  64 65 20 66 6F 72 20 63  6F 6D 70 61 72 69 6E 67  20 74 68 65 73 65 20 31  }Code for comparing these 1
0000A540  36 2D 62 69 74 20 6F 70  65 72 61 6E 64 73 20 6D  69 67 68 74 20 62 65 3A  0D 0A 0D 0A 20 20 20 20  6-bit operands might be:    
0000A560  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 09  20 20 20 55 20 70 69 70  65 20 20 20 09 20 20 20                    U pipe      
0000A580  20 20 09 56 20 20 70 69  70 65 09 09 0D 0A 0D 0A  09 09 78 6F 72 20 20 65  61 78 2C 20 65 61 78 20    V  pipexor  eax, eax 
0000A5A0  09 78 6F 72 20 20 65 62  78 2C 20 65 62 78 20 20  20 20 20 20 09 3B 20 31  0D 0A 09 09 6D 6F 76 77  xor  ebx, ebx      ; 1movw
0000A5C0  09 61 78 2C 20 5B 61 5D  09 09 09 09 09 3B 20 32  20 28 70 72 65 66 69 78  29 20 2B 20 31 0D 0A 09  ax, [a]; 2 (prefix) + 1
0000A5E0  09 6D 6F 76 77 09 62 78  2C 20 5B 62 5D 09 09 09  09 09 3B 20 34 20 28 70  72 65 66 69 78 29 20 2B  movwbx, [b]; 4 (prefix) +
0000A600  31 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 09  09 63 6D 70 20 20 65 61  1                      cmp  ea
0000A620  78 2C 20 65 62 78 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 09 3B  x, ebx                        ;
0000A640  20 36 0D 0A 0D 0A 54 68  65 20 73 74 72 61 69 67  68 74 2D 66 6F 72 77 61  72 64 20 6D 65 74 68 6F   6The straight-forward metho
0000A660  64 20 6D 61 79 20 62 65  20 73 6C 6F 77 65 72 3A  0D 0A 0D 0A 6D 6F 76 73  77 20 09 65 61 78 2C 20  d may be slower:movsw eax, 
0000A680  61 09 3B 20 31 20 20 31  20 70 72 65 66 69 78 20  2B 20 33 0D 0A 6D 6F 76  73 77 20 09 65 62 78 2C  a; 1  1 prefix + 3movsw ebx,
0000A6A0  20 62 09 3B 20 35 0D 0A  63 6D 70 20 20 20 20 09  65 62 78 2C 20 65 61 78  20 09 3B 20 39 0D 0A 0D   b; 5cmp    ebx, eax ; 9
0000A6C0  0A 4F 66 20 63 6F 75 72  73 65 2C 20 74 68 69 73  20 63 61 6E 20 6F 6E 6C  79 20 62 65 20 64 6F 6E  Of course, this can only be don
0000A6E0  65 20 75 6E 64 65 72 20  63 65 72 74 61 69 6E 20  63 69 72 63 75 6D 73 74  61 6E 63 65 73 2C 20 62  e under certain circumstances, b
0000A700  75 74 20 74 68 65 20 63  69 72 63 75 6D 73 74 61  6E 63 65 73 20 74 65 6E  64 20 74 6F 20 62 65 20  ut the circumstances tend to be 
0000A720  71 75 69 74 65 20 63 6F  6D 6D 6F 6E 2E 20 54 68  69 73 20 77 6F 75 6C 64  20 6E 6F 74 20 77 6F 72  quite common. This would not wor
0000A740  6B 20 69 66 20 74 68 65  20 63 6F 6D 70 61 72 65  20 77 61 73 20 66 6F 72  20 67 72 65 61 74 65 72  k if the compare was for greater
0000A760  20 74 68 61 6E 2C 20 6C  65 73 73 20 74 68 61 6E  2C 20 67 72 65 61 74 65  72 20 74 68 61 6E 20 6F   than, less than, greater than o
0000A780  72 20 65 71 75 61 6C 2C  20 61 6E 64 20 73 6F 20  6F 6E 2C 20 6F 72 20 69  66 20 74 68 65 20 76 61  r equal, and so on, or if the va
0000A7A0  6C 75 65 73 20 69 6E 20  65 61 78 20 6F 72 20 65  62 78 20 77 65 72 65 20  74 6F 20 62 65 20 75 73  lues in eax or ebx were to be us
0000A7C0  65 64 20 69 6E 20 61 6E  6F 74 68 65 72 20 6F 70  65 72 61 74 69 6F 6E 20  77 68 65 72 65 20 73 69  ed in another operation where si
0000A7E0  67 6E 20 65 78 74 65 6E  73 69 6F 6E 20 77 61 73  20 72 65 71 75 69 72 65  64 2E 0D 0A 0D 0A 43 6F  gn extension was required.Co
0000A800  6D 70 61 72 65 73 0D 0A  0D 0A 55 73 65 20 74 65  73 74 20 77 68 65 6E 20  63 6F 6D 70 61 72 69 6E  mparesUse test when comparin
0000A820  67 20 61 20 76 61 6C 75  65 20 69 6E 20 61 20 72  65 67 69 73 74 65 72 20  77 69 74 68 20 30 2E 20  g a value in a register with 0. 
0000A840  54 65 73 74 20 65 73 73  65 6E 74 69 61 6C 6C 79  20 22 61 6E 64 73 22 20  74 68 65 20 6F 70 65 72  Test essentially "ands" the oper
0000A860  61 6E 64 73 20 74 6F 67  65 74 68 65 72 20 77 69  74 68 6F 75 74 20 77 72  69 74 69 6E 67 20 74 6F  ands together without writing to
0000A880  20 61 20 64 65 73 74 69  6E 61 74 69 6F 6E 20 72  65 67 69 73 74 65 72 2E  20 49 66 20 79 6F 75 20   a destination register. If you 
0000A8A0  22 61 6E 64 22 20 61 20  76 61 6C 75 65 20 77 69  74 68 20 69 74 73 65 6C  66 20 61 6E 64 20 74 68  "and" a value with itself and th
0000A8C0  65 20 72 65 73 75 6C 74  20 73 65 74 73 20 74 68  65 20 7A 65 72 6F 20 63  6F 6E 64 69 74 69 6F 6E  e result sets the zero condition
0000A8E0  20 66 6C 61 67 2C 20 74  68 65 20 76 61 6C 75 65  20 77 61 73 20 7A 65 72  6F 2E 20 54 65 73 74 20   flag, the value was zero. Test 
0000A900  69 73 20 70 72 65 66 65  72 72 65 64 20 6F 76 65  72 20 61 6E 64 20 62 65  63 61 75 73 65 20 74 68  is preferred over and because th
0000A920  65 20 61 6E 64 20 77 72  69 74 65 73 20 74 68 65  20 72 65 73 75 6C 74 20  72 65 67 69 73 74 65 72  e and writes the result register
0000A940  20 77 68 69 63 68 20 6D  61 79 20 73 75 62 73 65  71 75 65 6E 74 6C 79 20  63 61 75 73 65 20 61 6E   which may subsequently cause an
0000A960  20 41 47 49 2E 20 20 54  65 73 74 20 69 73 20 62  65 74 74 65 72 20 74 68  61 6E 20 63 6D 70 20 20   AGI.  Test is better than cmp  
0000A980  2E 2E 2C 20 30 20 62 65  63 61 75 73 65 20 74 68  65 20 69 6E 73 74 72 75  63 74 69 6F 6E 20 73 69  .., 0 because the instruction si
0000A9A0  7A 65 20 69 73 20 73 6D  61 6C 6C 65 72 2E 0D 0A  0D 0A 55 73 65 20 74 65  73 74 20 77 68 65 6E 20  ze is smaller.Use test when 
0000A9C0  63 6F 6D 70 61 72 69 6E  67 20 74 68 65 20 72 65  73 75 6C 74 20 6F 66 20  61 20 42 6F 6F 6C 65 61  comparing the result of a Boolea
0000A9E0  6E 20 22 61 6E 64 22 20  77 69 74 68 20 61 6E 20  69 6D 6D 65 64 69 61 74  65 20 63 6F 6E 73 74 61  n "and" with an immediate consta
0000AA00  6E 74 20 66 6F 72 0D 0A  65 71 75 61 6C 69 74 79  20 6F 72 20 69 6E 65 71  75 61 6C 69 74 79 20 69  nt forequality or inequality i
0000AA20  66 20 74 68 65 20 72 65  67 69 73 74 65 72 20 69  73 20 65 61 78 2E 20 28  69 66 20 28 61 76 61 72  f the register is eax. (if (avar
0000AA40  20 26 20 38 29 20 7B 20  7D 29 2E 0D 0A 0D 0A 54  65 73 74 20 69 73 20 61  20 6F 6E 65 2D 63 79 63   & 8) { }).Test is a one-cyc
0000AA60  6C 65 20 70 61 69 72 61  62 6C 65 20 69 6E 73 74  72 75 63 74 69 6F 6E 20  77 68 65 6E 20 74 68 65  le pairable instruction when the
0000AA80  20 66 6F 72 6D 20 69 73  20 65 61 78 2C 20 69 6D  6D 20 6F 72 20 72 65 67  2C 20 72 65 67 2E 20 4F   form is eax, imm or reg, reg. O
0000AAA0  74 68 65 72 0D 0A 66 6F  72 6D 73 20 6F 66 20 74  65 73 74 20 74 61 6B 65  20 74 77 6F 20 63 79 63  therforms of test take two cyc
0000AAC0  6C 65 73 20 61 6E 64 20  64 6F 20 6E 6F 74 20 70  61 69 72 2E 0D 0A 0D 0A  41 64 64 72 65 73 73 20  les and do not pair.Address 
0000AAE0  43 61 6C 63 75 6C 61 74  69 6F 6E 73 0D 0A 0D 0A  50 75 6C 6C 20 61 64 64  72 65 73 73 20 63 61 6C  CalculationsPull address cal
0000AB00  63 75 6C 61 74 69 6F 6E  73 20 69 6E 74 6F 20 6C  6F 61 64 20 61 6E 64 20  73 74 6F 72 65 20 69 6E  culations into load and store in
0000AB20  73 74 72 75 63 74 69 6F  6E 73 2E 20 49 6E 74 65  72 6E 61 6C 6C 79 2C 20  6D 65 6D 6F 72 79 20 72  structions. Internally, memory r
0000AB40  65 66 65 72 65 6E 63 65  20 69 6E 73 74 72 75 63  74 69 6F 6E 73 20 63 61  6E 20 68 61 76 65 20 34  eference instructions can have 4
0000AB60  20 6F 70 65 72 61 6E 64  73 3A 20 61 20 72 65 6C  6F 63 61 74 61 62 6C 65  20 6C 6F 61 64 2D 74 69   operands: a relocatable load-ti
0000AB80  6D 65 20 63 6F 6E 73 74  61 6E 74 2C 20 61 6E 20  69 6D 6D 65 64 69 61 74  65 20 63 6F 6E 73 74 61  me constant, an immediate consta
0000ABA0  6E 74 2C 20 61 20 62 61  73 65 20 72 65 67 69 73  74 65 72 2C 20 61 6E 64  20 61 20 73 63 61 6C 65  nt, a base register, and a scale
0000ABC0  64 20 69 6E 64 65 78 20  72 65 67 69 73 74 65 72  2E 20 28 49 6E 20 74 68  65 20 73 65 67 6D 65 6E  d index register. (In the segmen
0000ABE0  74 65 64 20 6D 6F 64 65  6C 2C 20 61 20 73 65 67  6D 65 6E 74 20 72 65 67  69 73 74 65 72 20 6D 61  ted model, a segment register ma
0000AC00  79 20 63 6F 6E 73 74 69  74 75 74 65 20 61 6E 20  61 64 64 69 74 69 6F 6E  61 6C 20 6F 70 65 72 61  y constitute an additional opera
0000AC20  6E 64 20 69 6E 20 74 68  65 20 6C 69 6E 65 61 72  20 61 64 64 72 65 73 73  20 63 61 6C 63 75 6C 61  nd in the linear address calcula
0000AC40  74 69 6F 6E 2E 29 20 49  6E 20 6D 61 6E 79 20 63  61 73 65 73 2C 20 73 65  76 65 72 61 6C 20 69 6E  tion.) In many cases, several in
0000AC60  74 65 67 65 72 20 69 6E  73 74 72 75 63 74 69 6F  6E 73 20 63 61 6E 20 62  65 20 65 6C 69 6D 69 6E  teger instructions can be elimin
0000AC80  61 74 65 64 20 62 79 20  66 75 6C 6C 79 20 75 73  69 6E 67 20 74 68 65 20  6F 70 65 72 61 6E 64 73  ated by fully using the operands
0000ACA0  20 6F 66 20 6D 65 6D 6F  72 79 20 72 65 66 65 72  65 6E 63 65 73 2E 0D 0A  0D 0A 57 68 65 6E 20 74   of memory references.When t
0000ACC0  68 65 72 65 20 69 73 20  61 20 63 68 6F 69 63 65  20 74 6F 20 75 73 65 20  65 69 74 68 65 72 20 61  here is a choice to use either a
0000ACE0  20 62 61 73 65 20 6F 72  20 69 6E 64 65 78 20 72  65 67 69 73 74 65 72 2C  20 61 6C 77 61 79 73 20   base or index register, always 
0000AD00  63 68 6F 6F 73 65 20 74  68 65 20 62 61 73 65 20  62 65 63 61 75 73 65 20  74 68 65 72 65 20 69 73  choose the base because there is
0000AD20  20 61 20 31 2D 63 6C 6F  63 6B 20 70 65 6E 61 6C  74 79 20 6F 6E 20 74 68  65 20 49 6E 74 65 6C 34   a 1-clock penalty on the Intel4
0000AD40  38 36 20 70 72 6F 63 65  73 73 6F 72 20 66 6F 72  20 75 73 69 6E 67 20 61  6E 20 69 6E 64 65 78 2E  86 processor for using an index.
0000AD60  0D 0A 0D 0A 43 6C 65 61  72 69 6E 67 20 61 20 52  65 67 69 73 74 65 72 0D  0A 0D 0A 54 68 65 20 70  Clearing a RegisterThe p
0000AD80  72 65 66 65 72 72 65 64  20 73 65 71 75 65 6E 63  65 20 74 6F 20 6D 6F 76  65 20 7A 65 72 6F 20 74  referred sequence to move zero t
0000ADA0  6F 20 61 20 72 65 67 69  73 74 65 72 20 69 73 20  78 6F 72 20 72 65 67 2C  20 72 65 67 2E 20 54 68  o a register is xor reg, reg. Th
0000ADC0  69 73 20 73 61 76 65 73  20 63 6F 64 65 20 73 70  61 63 65 20 62 75 74 20  73 65 74 73 20 74 68 65  is saves code space but sets the
0000ADE0  20 63 6F 6E 64 69 74 69  6F 6E 20 63 6F 64 65 73  2E 20 49 6E 20 63 6F 6E  74 65 78 74 73 20 77 68   condition codes. In contexts wh
0000AE00  65 72 65 20 74 68 65 20  63 6F 6E 64 69 74 69 6F  6E 20 63 6F 64 65 73 20  6D 75 73 74 20 62 65 20  ere the condition codes must be 
0000AE20  70 72 65 73 65 72 76 65  64 2C 20 75 73 65 20 6D  6F 76 20 72 65 67 2C 20  30 2E 0D 0A 0D 0A 49 6E  preserved, use mov reg, 0.In
0000AE40  74 65 67 65 72 20 44 69  76 69 64 65 0D 0A 0D 0A  54 79 70 69 63 61 6C 6C  79 2C 20 61 6E 20 69 6E  teger DivideTypically, an in
0000AE60  74 65 67 65 72 20 64 69  76 69 64 65 20 69 73 20  70 72 65 63 65 64 65 64  20 62 79 20 61 20 63 64  teger divide is preceded by a cd
0000AE80  71 20 69 6E 73 74 72 75  63 74 69 6F 6E 20 28 44  69 76 69 64 65 20 69 6E  73 74 72 75 63 74 69 6F  q instruction (Divide instructio
0000AEA0  6E 73 20 75 73 65 20 65  64 78 3A 20 65 61 78 20  61 73 20 74 68 65 20 64  69 76 69 64 65 6E 64 20  ns use edx: eax as the dividend 
0000AEC0  61 6E 64 20 63 64 71 20  73 65 74 73 20 75 70 20  65 64 78 29 2E 20 49 74  20 69 73 20 62 65 74 74  and cdq sets up edx). It is bett
0000AEE0  65 72 20 74 6F 20 63 6F  70 79 20 65 61 78 20 69  6E 74 6F 20 65 64 78 2C  20 74 68 65 6E 20 72 69  er to copy eax into edx, then ri
0000AF00  67 68 74 20 73 68 69 66  74 20 65 64 78 20 33 31  20 70 6C 61 63 65 73 20  74 6F 20 73 69 67 6E 20  ght shift edx 31 places to sign 
0000AF20  65 78 74 65 6E 64 2E 20  54 68 65 20 63 6F 70 79  2F 73 68 69 66 74 20 74  61 6B 65 73 20 74 68 65  extend. The copy/shift takes the
0000AF40  20 73 61 6D 65 20 6E 75  6D 62 65 72 20 6F 66 20  63 6C 6F 63 6B 73 20 61  73 20 63 64 71 20 6F 6E   same number of clocks as cdq on
0000AF60  20 62 6F 74 68 20 74 68  65 20 50 65 6E 74 69 75  6D 20 61 6E 64 20 49 6E  74 65 6C 34 38 36 20 70   both the Pentium and Intel486 p
0000AF80  72 6F 63 65 73 73 6F 72  73 2C 20 62 75 74 20 74  68 65 20 63 6F 70 79 2F  73 68 69 66 74 20 20 73  rocessors, but the copy/shift  s
0000AFA0  63 68 65 6D 65 20 61 6C  6C 6F 77 73 20 74 77 6F  20 6F 74 68 65 72 20 69  6E 73 74 72 75 63 74 69  cheme allows two other instructi
0000AFC0  6F 6E 73 20 74 6F 20 65  78 65 63 75 74 65 20 61  74 20 74 68 65 20 73 61  6D 65 20 74 69 6D 65 20  ons to execute at the same time 
0000AFE0  6F 6E 20 74 68 65 20 50  65 6E 74 69 75 6D 20 70  72 6F 63 65 73 73 6F 72  2E 20 20 49 66 20 79 6F  on the Pentium processor.  If yo
0000B000  75 20 6B 6E 6F 77 20 74  68 65 20 76 61 6C 75 65  20 69 73 20 70 6F 73 69  74 69 76 65 2C 20 75 73  u know the value is positive, us
0000B020  65 20 78 6F 72 20 65 64  78 2C 20 65 64 78 2E 0D  0A 0D 0A 50 72 6F 6C 6F  67 20 53 65 71 75 65 6E  e xor edx, edx.Prolog Sequen
0000B040  63 65 73 0D 0A 0D 0A 42  65 20 63 61 72 65 66 75  6C 20 74 6F 20 61 76 6F  69 64 20 41 47 6C 27 73  cesBe careful to avoid AGl's
0000B060  20 69 6E 20 74 68 65 20  70 72 6F 6C 6F 67 20 64  75 65 20 74 6F 20 72 65  67 69 73 74 65 72 20 65   in the prolog due to register e
0000B080  73 70 2E 20 53 69 6E 63  65 20 70 75 73 68 20 63  61 6E 20 70 61 69 72 20  77 69 74 68 20 6F 74 68  sp. Since push can pair with oth
0000B0A0  65 72 20 70 75 73 68 20  69 6E 73 74 72 75 63 74  69 6F 6E 73 2C 20 73 61  76 69 6E 67 20 63 61 6C  er push instructions, saving cal
0000B0C0  6C 65 65 2D 73 61 76 65  64 20 72 65 67 69 73 74  65 72 73 20 6F 6E 20 65  6E 74 72 79 20 74 6F 20  lee-saved registers on entry to 
0000B0E0  66 75 6E 63 74 69 6F 6E  73 20 73 68 6F 75 6C 64  20 75 73 65 20 74 68 65  73 65 20 69 6E 73 74 72  functions should use these instr
0000B100  75 63 74 69 6F 6E 73 2E  20 49 66 20 70 6F 73 73  69 62 6C 65 2C 20 6C 6F  61 64 20 70 61 72 61 6D  uctions. If possible, load param
0000B120  65 74 65 72 73 20 62 65  66 6F 72 65 20 64 65 63  72 65 6D 65 6E 74 69 6E  67 20 65 73 70 2E 0D 0A  eters before decrementing esp.
0000B140  0D 0A 49 6E 20 20 72 6F  75 74 69 6E 65 73 20 74  68 61 74 20 64 6F 20 6E  6F 74 20 63 61 6C 6C 20  In  routines that do not call 
0000B160  6F 74 68 65 72 20 72 6F  75 74 69 6E 65 73 20 28  6C 65 61 66 20 72 6F 75  74 69 6E 65 73 29 2C 20  other routines (leaf routines), 
0000B180  75 73 65 20 65 73 70 20  61 73 20 74 68 65 20 62  61 73 65 20 72 65 67 69  73 74 65 72 20 74 6F 20  use esp as the base register to 
0000B1A0  66 72 65 65 20 75 70 20  65 62 70 2E 20 49 66 20  79 6F 75 20 61 72 65 20  6E 6F 74 20 75 73 69 6E  free up ebp. If you are not usin
0000B1C0  67 20 74 68 65 20 33 32  2D 62 69 74 20 66 6C 61  74 20 6D 6F 64 65 6C 2C  20 20 72 65 6D 65 6D 62  g the 32-bit flat model,  rememb
0000B1E0  65 72 20 74 68 61 74 20  65 62 70 20 63 61 6E 6E  6F 74 20 62 65 20 75 73  65 64 20 61 73 20 61 20  er that ebp cannot be used as a 
0000B200  67 65 6E 65 72 61 6C 20  70 75 72 70 6F 73 65 20  62 61 73 65 20 72 65 67  69 73 74 65 72 20 62 65  general purpose base register be
0000B220  63 61 75 73 65 20 69 74  20 72 65 66 65 72 65 6E  63 65 73 20 74 68 65 20  73 74 61 63 6B 20 73 65  cause it references the stack se
0000B240  67 6D 65 6E 74 2E 0D 0A  0D 0A 41 76 6F 69 64 20  43 6F 6D 70 61 72 65 73  20 77 69 74 68 20 49 6D  gment.Avoid Compares with Im
0000B260  6D 65 64 69 61 74 65 20  5A 65 72 6F 0D 0A 0D 0A  4F 66 74 65 6E 20 77 68  65 6E 20 61 20 76 61 6C  mediate ZeroOften when a val
0000B280  75 65 20 69 73 20 63 6F  6D 70 61 72 65 64 20 77  69 74 68 20 7A 65 72 6F  2C 20 74 68 65 20 6F 70  ue is compared with zero, the op
0000B2A0  65 72 61 74 69 6F 6E 20  70 72 6F 64 75 63 69 6E  67 20 74 68 65 20 76 61  6C 75 65 20 73 65 74 73  eration producing the value sets
0000B2C0  20 63 6F 6E 64 69 74 69  6F 6E 20 63 6F 64 65 73  20 77 68 69 63 68 20 63  61 6E 20 62 65 20 74 65   condition codes which can be te
0000B2E0  73 74 65 64 20 64 69 72  65 63 74 6C 79 20 62 79  20 61 20 6A 63 63 20 69  6E 73 74 72 75 63 74 69  sted directly by a jcc instructi
0000B300  6F 6E 2E 20 54 68 65 20  6D 6F 73 74 20 6E 6F 74  61 62 6C 65 20 65 78 63  65 70 74 69 6F 6E 73 20  on. The most notable exceptions 
0000B320  61 72 65 20 6D 6F 76 20  61 6E 64 20 6C 65 61 2E  20 49 6E 20 74 68 65 73  65 20 63 61 73 65 73 2C  are mov and lea. In these cases,
0000B340  20 75 73 65 20 74 65 73  74 2E 0D 0A 0D 0A 45 70  69 6C 6F 67 20 53 65 71  75 65 6E 63 65 0D 0A 0D   use test.Epilog Sequence
0000B360  0A 49 66 20 6F 6E 6C 79  20 34 20 62 79 74 65 73  20 77 65 72 65 20 61 6C  6C 6F 63 61 74 65 64 20  If only 4 bytes were allocated 
0000B380  69 6E 20 74 68 65 20 73  74 61 63 6B 20 66 72 61  6D 65 20 66 6F 72 20 74  68 65 20 63 75 72 72 65  in the stack frame for the curre
0000B3A0  6E 74 20 66 75 6E 63 74  69 6F 6E 2C 20 69 6E 73  74 65 61 64 20 6F 66 20  69 6E 63 72 65 6D 65 6E  nt function, instead of incremen
0000B3C0  74 69 6E 67 20 74 68 65  20 73 74 61 63 6B 20 70  6F 69 6E 74 65 72 20 62  79 20 34 2C 20 75 73 65  ting the stack pointer by 4, use
0000B3E0  20 70 6F 70 20 69 6E 73  74 72 75 63 74 69 6F 6E  73 2E 20 54 68 69 73 20  61 76 6F 69 64 73 20 41   pop instructions. This avoids A
0000B400  47 6C 73 20 61 6E 64 20  68 65 6C 70 73 20 62 6F  74 68 20 49 6E 74 65 6C  34 38 36 20 61 6E 64 20  Gls and helps both Intel486 and 
0000B420  50 65 6E 74 69 75 6D 20  70 72 6F 63 65 73 73 6F  72 2E 20 20 46 6F 72 20  50 65 6E 74 69 75 6D 20  Pentium processor.  For Pentium 
0000B440  70 72 6F 63 65 73 73 6F  72 20 75 73 65 20 32 20  70 6F 70 73 20 66 6F 72  20 65 69 67 68 74 20 62  processor use 2 pops for eight b
0000B460  79 74 65 73 2E 0D 0A 0D  0A 49 6E 74 65 67 65 72  20 4D 75 6C 74 69 70 6C  79 20 62 79 20 43 6F 6E  ytes.Integer Multiply by Con
0000B480  73 74 61 6E 74 20 0D 0A  0D 0A 54 68 65 20 69 6E  74 65 67 65 72 20 6D 75  6C 74 69 70 6C 79 20 62  stant The integer multiply b
0000B4A0  79 20 61 6E 20 69 6D 6D  65 64 69 61 74 65 20 63  61 6E 20 75 73 75 61 6C  6C 79 20 62 65 20 72 65  y an immediate can usually be re
0000B4C0  70 6C 61 63 65 64 20 62  79 20 61 20 66 61 73 74  65 72 20 73 65 72 69 65  73 20 6F 66 20 73 68 69  placed by a faster series of shi
0000B4E0  66 74 73 2C 20 61 64 64  73 2C 20 73 75 62 73 2C  20 61 6E 64 20 6C 65 61  73 2E 0D 0A 0D 0A 61 2E  fts, adds, subs, and leas.a.
0000B500  20 42 69 6E 61 72 79 20  4D 65 74 68 6F 64 0D 0A  0D 0A 49 6E 20 67 65 6E  65 72 61 6C 2C 20 69 66   Binary MethodIn general, if
0000B520  20 74 68 65 72 65 20 61  72 65 20 38 20 6F 72 20  66 65 77 65 72 20 62 69  74 73 20 73 65 74 20 69   there are 8 or fewer bits set i
0000B540  6E 20 74 68 65 20 62 69  6E 61 72 79 20 72 65 70  72 65 73 65 6E 74 61 74  69 6F 6E 20 6F 66 20 74  n the binary representation of t
0000B560  68 65 20 63 6F 6E 73 74  61 6E 74 2C 20 69 74 20  69 73 20 62 65 74 74 65  72 20 6E 6F 74 20 74 6F  he constant, it is better not to
0000B580  20 64 6F 20 74 68 65 20  69 6E 74 65 67 65 72 20  6D 75 6C 74 69 70 6C 79  2E 20 4F 6E 20 61 6E 20   do the integer multiply. On an 
0000B5A0  49 6E 74 65 6C 34 38 36  20 70 72 6F 63 65 73 73  6F 72 2C 20 74 68 65 20  62 72 65 61 6B 20 65 76  Intel486 processor, the break ev
0000B5C0  65 6E 20 70 6F 69 6E 74  20 69 73 20 6C 6F 77 65  72 3A 20 69 74 20 69 73  20 70 72 6F 66 69 74 61  en point is lower: it is profita
0000B5E0  62 6C 65 20 69 66 20 36  20 62 69 74 73 20 6F 72  20 6C 65 73 73 20 61 72  65 20 69 6E 20 74 68 65  ble if 6 bits or less are in the
0000B600  20 63 6F 6E 73 74 61 6E  74 2E 20 42 61 73 69 63  61 6C 6C 79 2C 20 73 68  69 66 74 20 61 6E 64 20   constant. Basically, shift and 
0000B620  61 64 64 20 66 6F 72 20  65 61 63 68 20 62 69 74  20 73 65 74 2E 0D 0A 0D  0A 62 2E 20 46 61 63 74  add for each bit set.b. Fact
0000B640  6F 72 69 7A 61 74 69 6F  6E 20 4D 65 74 68 6F 64  0D 0A 0D 0A 54 68 69 73  20 69 73 20 64 6F 6E 65  orization MethodThis is done
0000B660  20 62 79 20 66 61 63 74  6F 72 69 6E 67 20 74 68  65 20 63 6F 6E 73 74 61  6E 74 20 62 79 20 70 6F   by factoring the constant by po
0000B680  77 65 72 73 20 6F 66 20  74 77 6F 20 70 6C 75 73  20 6F 72 20 6D 69 6E 75  73 20 6F 6E 65 2C 20 61  wers of two plus or minus one, a
0000B6A0  6E 64 20 74 68 65 20 63  6F 6E 73 74 61 6E 74 20  70 6C 75 73 20 6F 72 20  6D 69 6E 75 73 20 6F 6E  nd the constant plus or minus on
0000B6C0  65 20 62 79 20 70 6F 77  65 72 73 20 6F 66 20 74  77 6F 2E 20 49 66 20 74  68 65 20 6E 75 6D 62 65  e by powers of two. If the numbe
0000B6E0  72 20 63 61 6E 20 62 65  20 66 61 63 74 6F 72 65  64 20 62 79 20 70 6F 77  65 72 73 20 6F 66 20 74  r can be factored by powers of t
0000B700  77 6F 2C 20 74 68 65 6E  20 74 68 65 20 6D 75 6C  74 69 70 6C 69 63 61 74  69 6F 6E 20 63 61 6E 20  wo, then the multiplication can 
0000B720  62 65 20 70 65 72 66 6F  72 6D 65 64 20 62 79 20  61 20 73 65 72 69 65 73  20 6F 66 20 73 68 69 66  be performed by a series of shif
0000B740  74 73 2E 20 49 66 20 70  6F 77 65 72 73 20 6F 66  20 74 77 6F 20 70 6C 75  73 20 6F 72 20 6D 69 6E  ts. If powers of two plus or min
0000B760  75 73 20 6F 6E 65 20 61  72 65 20 69 6E 63 6C 75  64 65 64 2C 20 61 20 73  68 69 66 74 20 6F 66 20  us one are included, a shift of 
0000B780  74 68 65 20 70 72 65 76  69 6F 75 73 0D 0A 72 65  73 75 6C 74 20 61 6E 64  20 61 6E 20 61 64 64 20  the previousresult and an add 
0000B7A0  6F 72 20 73 75 62 74 72  61 63 74 20 6F 66 20 74  68 65 20 70 72 65 76 69  6F 75 73 20 72 65 73 75  or subtract of the previous resu
0000B7C0  6C 74 20 63 61 6E 20 62  65 20 67 65 6E 65 72 61  74 65 64 2E 20 20 49 66  20 74 68 65 20 67 69 76  lt can be generated.  If the giv
0000B7E0  65 6E 20 6E 75 6D 62 65  72 20 70 6C 75 73 20 6F  72 20 6D 69 6E 75 73 20  6F 6E 65 20 63 61 6E 20  en number plus or minus one can 
0000B800  62 65 20 66 61 63 74 6F  72 65 64 20 62 79 20 61  20 70 6F 77 65 72 20 6F  66 20 74 77 6F 2C 20 61  be factored by a power of two, a
0000B820  20 73 68 69 66 74 20 6F  66 20 74 68 65 20 70 72  65 76 69 6F 75 73 20 72  65 73 75 6C 74 20 61 6E   shift of the previous result an
0000B840  64 20 61 6E 20 61 64 64  20 6F 72 20 73 75 62 74  72 61 63 74 20 6F 66 20  74 68 65 20 6F 72 69 67  d an add or subtract of the orig
0000B860  69 6E 61 6C 20 6F 70 65  72 61 6E 64 20 63 61 6E  20 62 65 20 67 65 6E 65  72 61 74 65 64 2E 20 20  inal operand can be generated.  
0000B880  20 41 6E 20 69 74 65 72  61 74 69 76 65 20 66 6F  72 20 63 68 65 63 6B 69  6E 67 20 70 6F 77 65 72   An iterative for checking power
0000B8A0  73 20 6F 66 20 74 77 6F  20 66 72 6F 6D 20 33 31  20 74 6F 20 31 20 63 61  6E 20 62 65 20 64 6F 6E  s of two from 31 to 1 can be don
0000B8C0  65 2E 20 20 54 68 65 20  73 68 69 66 74 20 61 6D  6F 75 6E 74 20 6E 65 65  64 65 64 20 61 6E 64 20  e.  The shift amount needed and 
0000B8E0  61 6E 20 6F 72 64 69 6E  61 6C 20 74 6F 20 73 70  65 63 69 66 79 20 61 6E  20 61 64 64 20 6F 72 20  an ordinal to specify an add or 
0000B900  73 75 62 74 72 61 63 74  20 69 73 20 73 61 76 65  64 20 66 6F 72 20 65 61  63 68 20 66 61 63 74 6F  subtract is saved for each facto
0000B920  72 2E 20 54 68 69 73 20  69 6E 66 6F 72 6D 61 74  69 6F 6E 20 63 61 6E 20  62 65 20 75 73 65 64 20  r. This information can be used 
0000B940  69 6E 20 72 65 76 65 72  73 65 20 6F 72 64 65 72  20 74 6F 20 67 65 6E 65  72 61 74 65 20 74 68 65  in reverse order to generate the
0000B960  20 6E 65 65 64 65 64 20  69 6E 73 74 72 75 63 74  69 6F 6E 73 2E 0D 0A 0D  0A 46 6F 72 20 65 78 61   needed instructions.For exa
0000B980  6D 70 6C 65 3A 0D 0A 0D  0A 69 6D 75 6C 20 20 65  61 78 2C 20 32 31 37 20  20 20 20 20 20 3B 20 31  mple:imul  eax, 217      ; 1
0000B9A0  30 20 63 6C 6F 63 6B 73  2C 20 6E 6F 20 70 61 69  72 69 6E 67 0D 0A 0D 0A  49 6E 20 63 68 65 63 6B  0 clocks, no pairingIn check
0000B9C0  69 6E 67 20 70 6F 77 65  72 73 20 6F 66 20 74 77  6F 20 69 6E 20 64 65 63  72 65 61 73 69 6E 67 20  ing powers of two in decreasing 
0000B9E0  6F 72 64 65 72 20 20 69  74 20 69 73 20 66 6F 75  6E 64 20 74 68 61 74 20  32 31 37 20 77 69 6C 6C  order  it is found that 217 will
0000BA00  20 64 69 76 69 64 65 20  62 79 20 33 31 2E 0D 0A  20 20 20 20 20 20 32 31  37 2F 33 31 20 3D 20 37   divide by 31.      217/31 = 7
0000BA20  2E 20 20 20 20 20 20 20  33 31 20 3D 20 28 32 5E  5E 35 29 2D 31 0D 0A 0D  0A 73 61 76 65 20 73 68  .       31 = (2^^5)-1save sh
0000BA40  69 66 74 20 3D 20 35 20  61 6E 64 20 6F 72 64 69  6E 61 6C 20 3D 20 73 75  62 5F 70 72 65 76 69 6F  ift = 5 and ordinal = sub_previo
0000BA60  75 73 5F 72 65 73 75 6C  74 0D 0A 0D 0A 41 66 74  65 72 20 61 20 63 68 65  63 6B 20 6F 66 20 32 31  us_resultAfter a check of 21
0000BA80  37 2F 33 31 20 6F 72 20  37 2C 20 69 74 20 69 73  20 66 6F 75 6E 64 20 74  68 61 74 20 37 2B 31 20  7/31 or 7, it is found that 7+1 
0000BAA0  69 73 20 64 69 76 69 73  69 62 6C 65 20 62 79 20  38 2E 0D 0A 0D 0A 73 61  76 65 20 73 68 69 66 74  is divisible by 8.save shift
0000BAC0  20 3D 20 33 20 61 6E 64  20 6F 72 64 69 6E 61 6C  20 3D 20 73 75 62 5F 6F  70 65 72 61 6E 64 0D 0A   = 3 and ordinal = sub_operand
0000BAE0  0D 0A 41 66 74 65 72 20  66 61 63 74 6F 72 69 6E  67 2C 20 74 68 65 20 69  6E 73 74 72 75 63 74 69  After factoring, the instructi
0000BB00  6F 6E 73 20 63 61 6E 20  62 65 20 67 65 6E 65 72  61 74 65 64 20 69 6E 20  72 65 76 65 72 73 65 2E  ons can be generated in reverse.
0000BB20  0D 0A 0D 0A 20 20 20 20  20 20 20 20 20 20 20 20  20 20 6D 6F 76 20 20 65  63 78 2C 20 65 61 78 20                mov  ecx, eax 
0000BB40  20 20 20 20 20 20 3B 20  31 0D 0A 20 20 20 20 20  20 20 73 68 6C 20 20 65  61 78 2C 20 33 20 20 20        ; 1       shl  eax, 3   
0000BB60  20 20 20 20 20 20 3B 20  32 20 20 20 20 20 20 20  20 20 20 20 0D 0A 20 20  20 20 20 20 20 73 75 62        ; 2                  sub
0000BB80  20 20 65 61 78 2C 20 65  63 78 20 20 20 20 20 20  20 3B 20 33 0D 0A 20 20  20 20 20 20 20 6D 6F 76    eax, ecx       ; 3       mov
0000BBA0  20 20 65 63 78 2C 20 65  61 78 20 20 20 20 20 20  20 3B 20 34 0D 0A 20 20  20 20 20 20 20 73 68 6C    ecx, eax       ; 4       shl
0000BBC0  20 20 65 61 78 2C 20 35  20 20 20 20 20 20 20 20  20 3B 20 35 0D 0A 20 20  20 20 20 20 20 73 75 62    eax, 5         ; 5       sub
0000BBE0  20 20 65 61 78 2C 20 65  63 78 20 20 20 20 20 20  20 3B 20 36 20 20 20 20  20 20 20 20 20 20 20 20    eax, ecx       ; 6            
0000BC00  20 20 20 20 20 20 20 20  0D 0A 0D 0A 54 68 69 73  20 63 6F 64 65 20 73 65  71 75 65 6E 63 65 20 61          This code sequence a
0000BC20  6C 6C 6F 77 73 20 73 63  68 65 64 75 6C 69 6E 67  20 6F 66 20 6F 74 68 65  72 20 69 6E 73 74 72 75  llows scheduling of other instru
0000BC40  63 74 69 6F 6E 73 20 69  6E 20 74 68 65 20 50 65  6E 74 69 75 6D 20 70 72  6F 63 65 73 73 6F 72 27  ctions in the Pentium processor'
0000BC60  73 20 56 20 20 70 69 70  65 2E 0D 0A 0D 0A 36 2E  20 50 72 6F 63 65 73 73  6F 72 20 53 70 65 63 69  s V  pipe.6. Processor Speci
0000BC80  66 69 63 20 4F 70 74 69  6D 69 7A 61 74 69 6F 6E  73 0D 0A 0D 0A 36 2E 31  20 50 65 6E 74 69 75 6D  fic Optimizations6.1 Pentium
0000BCA0  20 50 72 6F 63 65 73 73  6F 72 20 46 6C 6F 61 74  69 6E 67 2D 50 6F 69 6E  74 20 4F 70 74 69 6D 69   Processor Floating-Point Optimi
0000BCC0  7A 61 74 69 6F 6E 73 0D  0A 0D 0A 54 68 65 20 50  65 6E 74 69 75 6D 20 70  72 6F 63 65 73 73 6F 72  zationsThe Pentium processor
0000BCE0  20 69 73 20 74 68 65 20  66 69 72 73 74 20 67 65  6E 65 72 61 74 69 6F 6E  20 6F 66 20 74 68 65 20   is the first generation of the 
0000BD00  49 6E 74 65 6C 33 38 36  20 66 61 6D 69 6C 79 20  74 68 61 74 20 69 6D 70  6C 65 6D 65 6E 74 73 20  Intel386 family that implements 
0000BD20  61 20 70 69 70 65 6C 69  6E 65 64 20 66 6C 6F 61  74 69 6E 67 2D 70 6F 69  6E 74 20 75 6E 69 74 2E  a pipelined floating-point unit.
0000BD40  20 20 48 6F 77 65 76 65  72 2C 20 69 6E 20 6F 72  64 65 72 20 74 6F 20 61  63 68 69 65 76 65 20 6D    However, in order to achieve m
0000BD60  61 78 69 6D 75 6D 20 74  68 72 6F 75 67 68 70 75  74 20 66 72 6F 6D 20 74  68 65 20 50 65 6E 74 69  aximum throughput from the Penti
0000BD80  75 6D 20 70 72 6F 63 65  73 73 6F 72 20 66 6C 6F  61 74 69 6E 67 2D 70 6F  69 6E 74 20 75 6E 69 74  um processor floating-point unit
0000BDA0  2C 20 73 70 65 63 69 66  69 63 20 6F 70 74 69 6D  69 7A 61 74 69 6F 6E 73  20 6D 75 73 74 20 62 65  , specific optimizations must be
0000BDC0  20 64 6F 6E 65 2E 0D 0A  0D 0A 36 2E 31 2E 31 20  46 6C 6F 61 74 69 6E 67  2D 50 6F 69 6E 74 20 45   done.6.1.1 Floating-Point E
0000BDE0  78 61 6D 70 6C 65 0D 0A  0D 0A 46 4F 52 54 52 41  4E 20 73 6F 75 72 63 65  3A 0D 0A 0D 0A 09 73 75  xampleFORTRAN source:su
0000BE00  62 72 6F 75 74 69 6E 65  20 64 61 28 78 2C 79 2C  7A 2C 6E 29 0D 0A 09 64  69 6D 65 6E 73 69 6F 6E  broutine da(x,y,z,n)dimension
0000BE20  20 78 28 6E 29 2C 79 28  6E 29 0D 0A 0D 0A 09 64  6F 20 31 30 20 69 3D 6C  2C 6E 0D 0A 31 30 20 20   x(n),y(n)do 10 i=l,n10  
0000BE40  20 09 20 78 28 69 29 20  3D 20 78 28 69 29 20 2B  20 79 28 69 29 20 2A 20  7A 0D 0A 0D 0A 09 72 65    x(i) = x(i) + y(i) * zre
0000BE60  74 75 72 6E 0D 0A 09 65  6E 64 0D 0A 0D 0A 0D 0A  41 73 73 65 6D 62 6C 79  20 63 6F 64 65 3A 20 20  turnendAssembly code:  
0000BE80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 0D 0A 0D 0A 20 20                              
0000BEA0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20                                  
0000BEC0  20 20 20 20 50 65 6E 74  69 75 6D 2F 49 6E 74 65  6C 34 38 36 20 70 72 6F  63 65 73 73 6F 72 0D 0A      Pentium/Intel486 processor
0000BEE0  20 20 20 20 54 6F 70 4F  66 4C 6F 6F 70 3A 0D 0A  20 20 20 20 20 20 20 20  66 6C 64 20 20 20 64 77      TopOfLoop:        fld   dw
0000BF00  6F 72 64 20 70 74 72 20  5B 65 73 70 2B 38 5D 20  09 09 3B 20 31 20 20 20  20 2F 20 20 20 20 31 0D  ord ptr [esp+8] ; 1    /    1
0000BF20  0A 20 20 20 20 20 20 20  20 66 6D 75 6C 20 20 64  77 6F 72 64 20 70 74 72  20 5B 65 62 78 2B 65 61          fmul  dword ptr [ebx+ea
0000BF40  78 2A 34 5D 20 09 3B 20  32 20 20 20 20 2F 20 20  20 20 35 0D 0A 20 20 20  20 20 20 20 20 66 61 64  x*4] ; 2    /    5        fad
0000BF60  64 20 20 64 77 6F 72 64  20 70 74 72 20 5B 65 63  78 2B 65 61 78 2A 34 5D  20 09 3B 20 35 20 20 20  d  dword ptr [ecx+eax*4] ; 5   
0000BF80  20 2F 20 20 20 31 36 0D  0A 20 20 20 20 20 20 20  20 66 73 74 70 20 20 64  77 6F 72 64 20 70 74 72   /   16        fstp  dword ptr
0000BFA0  20 5B 65 63 78 2B 65 61  78 2A 34 5D 09 09 3B 20  39 20 20 20 20 2F 20 20  20 32 36 0D 0A 20 20 20   [ecx+eax*4]; 9    /   26   
0000BFC0  20 20 20 20 20 69 6E 63  20 20 20 65 61 78 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20       inc   eax                  
0000BFE0  20 20 20 09 3B 20 31 31  20 20 20 2F 20 20 20 33  33 0D 0A 20 20 20 20 20  20 20 20 63 6D 70 20 20     ; 11   /   33        cmp  
0000C000  20 65 61 78 2C 20 65 62  70 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 09 3B 20 31 32 20 20   eax, ebp                ; 12  
0000C020  20 2F 20 20 20 33 34 0D  0A 20 20 20 20 20 20 20  20 6A 6C 65 20 20 20 20  20 20 54 6F 70 4F 66 4C   /   34        jle      TopOfL
0000C040  6F 6F 70 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 09 3B 20 31 32 20  20 20 2F 20 20 20 33 36  oop               ; 12   /   36
0000C060  2B 32 20 66 6F 72 20 62  72 61 6E 63 68 0D 0A 0D  0A 54 6F 74 61 6C 20 3A  31 32 20 63 79 63 6C 65  +2 for branchTotal :12 cycle
0000C080  73 20 70 65 72 20 69 74  65 72 61 74 69 6F 6E 0D  0A 0D 0A 4F 6E 20 74 68  65 20 49 6E 74 65 6C 34  s per iterationOn the Intel4
0000C0A0  38 36 20 70 72 6F 63 65  73 73 6F 72 2C 20 74 68  65 20 74 69 6D 65 20 69  74 20 74 61 6B 65 73 20  86 processor, the time it takes 
0000C0C0  74 6F 20 61 64 64 20 61  6E 64 20 6D 75 6C 74 69  70 6C 79 20 76 61 72 69  65 73 20 64 65 70 65 6E  to add and multiply varies depen
0000C0E0  64 69 6E 67 20 6F 6E 20  74 68 65 20 76 61 6C 75  65 73 2E 20 49 6E 20 74  68 69 73 20 65 78 61 6D  ding on the values. In this exam
0000C100  70 6C 65 2C 20 31 31 20  77 61 73 20 75 73 65 64  20 66 6F 72 20 6D 75 6C  74 69 70 6C 79 20 61 6E  ple, 11 was used for multiply an
0000C120  64 20 31 30 20 66 6F 72  20 61 64 64 2E 20 54 68  65 20 6C 6F 61 64 20 74  61 6B 65 73 20 33 20 63  d 10 for add. The load takes 3 c
0000C140  6C 6F 63 6B 73 3B 20 74  68 65 20 73 74 6F 72 65  20 72 65 71 75 69 72 65  73 20 37 20 63 6C 6F 63  locks; the store requires 7 cloc
0000C160  6B 73 2E 20 54 68 65 20  65 78 74 72 61 20 63 79  63 6C 65 20 62 65 66 6F  72 65 20 74 68 65 20 66  ks. The extra cycle before the f
0000C180  6D 75 6C 20 69 73 20 61  6E 20 69 6E 64 65 78 20  70 65 6E 61 6C 74 79 20  66 6F 72 20 74 68 65 20  mul is an index penalty for the 
0000C1A0  66 6D 75 6C 2E 20 54 68  65 20 66 61 64 64 20 61  6E 64 20 66 73 74 70 20  64 6F 20 6E 6F 74 20 73  fmul. The fadd and fstp do not s
0000C1C0  68 6F 77 20 61 6E 20 69  6E 64 65 78 20 70 65 6E  61 6C 74 79 20 62 65 63  61 75 73 65 20 74 68 65  how an index penalty because the
0000C1E0  20 70 65 6E 61 6C 74 79  20 6F 76 65 72 6C 61 70  70 65 64 20 77 69 74 68  20 74 68 65 20 65 78 65   penalty overlapped with the exe
0000C200  63 75 74 69 6F 6E 20 6F  66 20 74 68 65 20 70 72  65 76 69 6F 75 73 20 66  6C 6F 61 74 69 6E 67 2D  cution of the previous floating-
0000C220  70 6F 69 6E 74 20 69 6E  73 74 72 75 63 74 69 6F  6E 2E 20 54 68 65 73 65  20 6F 76 65 72 6C 61 70  point instruction. These overlap
0000C240  73 20 64 6F 20 6E 6F 74  20 6F 63 63 75 72 20 77  69 74 68 20 66 6C 64 20  6F 72 20 66 78 63 68 2E  s do not occur with fld or fxch.
0000C260  0D 0A 0D 0A 4F 6E 20 74  68 65 20 50 65 6E 74 69  75 6D 20 70 72 6F 63 65  73 73 6F 72 2C 20 74 68  On the Pentium processor, th
0000C280  65 20 72 65 73 75 6C 74  73 20 6F 66 20 66 61 64  64 20 61 6E 64 20 66 6D  75 6C 20 63 61 6E 20 62  e results of fadd and fmul can b
0000C2A0  65 20 75 73 65 64 20 74  68 72 65 65 20 63 79 63  6C 65 73 20 61 66 74 65  72 20 74 68 65 79 20 73  e used three cycles after they s
0000C2C0  74 61 72 74 2C 20 65 78  63 65 70 74 20 77 68 65  6E 20 74 68 65 20 75 73  65 20 69 73 20 66 73 74  tart, except when the use is fst
0000C2E0  2E 20 57 68 65 6E 20 61  6E 20 66 73 74 20 69 6E  73 74 72 75 63 74 69 6F  6E 20 75 73 65 73 20 74  . When an fst instruction uses t
0000C300  68 65 20 72 65 73 75 6C  74 20 6F 66 20 61 6E 6F  74 68 65 72 20 66 6C 6F  61 74 69 6E 67 2D 70 6F  he result of another floating-po
0000C320  69 6E 74 20 6F 70 65 72  61 74 69 6F 6E 2C 20 61  6E 20 65 78 74 72 61 20  63 79 63 6C 65 20 69 73  int operation, an extra cycle is
0000C340  20 6E 65 65 64 65 64 2E  20 54 68 65 20 66 73 74  20 69 6E 73 74 72 75 63  74 69 6F 6E 20 65 78 65   needed. The fst instruction exe
0000C360  63 75 74 65 73 20 66 6F  72 20 74 77 6F 20 63 79  63 6C 65 73 20 61 6E 64  20 6E 6F 74 68 69 6E 67  cutes for two cycles and nothing
0000C380  20 63 61 6E 20 65 78 65  63 75 74 65 20 69 6E 20  70 61 72 61 6C 6C 65 6C  2E 0D 0A 0D 0A 54 68 65   can execute in parallel.The
0000C3A0  72 65 20 69 73 20 61 6E  20 65 6E 6F 72 6D 6F 75  73 20 69 6D 70 72 6F 76  65 6D 65 6E 74 20 64 75  re is an enormous improvement du
0000C3C0  65 20 74 6F 20 64 65 63  72 65 61 73 69 6E 67 20  74 68 65 20 63 6C 6F 63  6B 20 63 6F 75 6E 74 73  e to decreasing the clock counts
0000C3E0  20 66 6F 72 20 74 68 65  20 63 6F 6D 6D 6F 6E 20  66 6C 6F 61 74 69 6E 67  2D 70 6F 69 6E 74 20 69   for the common floating-point i
0000C400  6E 73 74 72 75 63 74 69  6F 6E 73 3B 20 68 6F 77  65 76 65 72 2C 20 74 68  69 73 20 65 78 61 6D 70  nstructions; however, this examp
0000C420  6C 65 20 64 6F 65 73 20  6E 6F 74 20 6F 76 65 72  6C 61 70 20 61 6E 79 20  66 6C 6F 61 74 69 6E 67  le does not overlap any floating
0000C440  2D 70 6F 69 6E 74 20 69  6E 73 74 72 75 63 74 69  6F 6E 73 2E 20 41 20 66  75 72 74 68 65 72 20 69  -point instructions. A further i
0000C460  6D 70 72 6F 76 65 6D 65  6E 74 20 63 61 6E 20 62  65 20 61 63 68 69 65 76  65 64 20 62 79 20 6F 76  mprovement can be achieved by ov
0000C480  65 72 6C 61 70 70 69 6E  67 20 74 68 65 20 65 78  65 63 75 74 69 6F 6E 20  6F 66 20 74 68 65 20 66  erlapping the execution of the f
0000C4A0  6C 6F 61 74 69 6E 67 2D  70 6F 69 6E 74 20 69 6E  73 74 72 75 63 74 69 6F  6E 73 20 61 73 20 65 78  loating-point instructions as ex
0000C4C0  70 6C 61 69 6E 65 64 20  69 6E 20 74 68 65 20 6E  65 78 74 20 73 65 63 74  69 6F 6E 2E 0D 0A 0D 0A  plained in the next section.
0000C4E0  54 6F 20 65 78 70 6F 73  65 20 6D 6F 72 65 20 70  61 72 61 6C 6C 65 6C 69  73 6D 2C 20 6C 6F 6F 70  To expose more parallelism, loop
0000C500  20 75 6E 72 6F 6C 6C 69  6E 67 20 63 61 6E 20 62  65 20 75 73 65 64 20 69  66 20 74 68 65 20 69 74   unrolling can be used if the it
0000C520  65 72 61 74 69 6F 6E 73  20 61 72 65 20 69 6E 64  65 70 65 6E 64 65 6E 74  2E 0D 0A 46 6F 6C 6C 6F  erations are independent.Follo
0000C540  77 69 6E 67 20 69 73 20  74 68 65 20 61 73 73 65  6D 62 6C 79 20 63 6F 64  65 20 61 66 74 65 72 20  wing is the assembly code after 
0000C560  75 6E 72 6F 6C 6C 69 6E  67 3A 0D 0A 0D 0A 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  unrolling:                  
0000C580  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 50 65 6E 74 69  75 6D 20 70 72 6F 63 65                     Pentium proce
0000C5A0  73 73 6F 72 20 20 20 20  20 49 6E 74 65 6C 34 38  36 20 43 50 55 0D 0A 20  20 20 54 6F 70 4F 66 4C  ssor     Intel486 CPU   TopOfL
0000C5C0  6F 6F 70 3A 0D 0A 20 20  20 20 20 20 20 20 66 6C  64 20 20 20 64 77 6F 72  64 20 70 74 72 20 5B 65  oop:        fld   dword ptr [e
0000C5E0  73 70 2B 38 5D 20 09 3B  20 20 31 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 31 0D  sp+8] ;  1                   1
0000C600  0A 20 20 20 20 20 20 20  20 66 6D 75 6C 20 20 64  77 6F 72 64 20 70 74 72  20 5B 65 62 78 2B 65 61          fmul  dword ptr [ebx+ea
0000C620  78 2A 34 5D 09 3B 20 20  32 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 35 0D 0A 20  x*4];  2                   5 
0000C640  20 20 20 20 20 20 20 66  61 64 64 20 20 64 77 6F  72 64 20 70 74 72 20 5B  65 63 78 2B 65 61 78 2A         fadd  dword ptr [ecx+eax*
0000C660  34 5D 09 3B 20 20 35 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 31 36 0D 0A 20 20 20  4];  5                  16   
0000C680  20 20 20 20 20 66 73 74  70 20 20 64 77 6F 72 64  20 70 74 72 20 5B 65 63  78 2B 65 61 78 2A 34 5D       fstp  dword ptr [ecx+eax*4]
0000C6A0  20 09 3B 20 20 39 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  32 36 0D 0A 20 20 20 20   ;  9                  26    
0000C6C0  20 20 20 20 66 6C 64 20  20 20 64 77 6F 72 64 20  70 74 72 20 5B 65 73 70  2B 38 5D 09 3B 20 20 31      fld   dword ptr [esp+8];  1
0000C6E0  31 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 33 33 0D 0A 20 20  20 20 20 20 20 20 66 6D  1                 33        fm
0000C700  75 6C 20 20 64 77 6F 72  64 20 70 74 72 20 5B 65  62 78 2B 65 61 78 2A 34  2B 34 5D 09 3B 20 20 31  ul  dword ptr [ebx+eax*4+4];  1
0000C720  32 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 33 37 0D 0A 20 20  20 20 20 20 20 20 66 61  2                 37        fa
0000C740  64 64 20 20 64 77 6F 72  64 20 70 74 72 20 5B 65  63 78 2B 65 61 78 2A 34  2B 34 5D 09 3B 20 20 31  dd  dword ptr [ecx+eax*4+4];  1
0000C760  35 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 34 38 0D 0A 20 20  20 20 20 20 20 20 66 73  5                 48        fs
0000C780  74 70 20 20 64 77 6F 72  64 20 70 74 72 20 5B 65  63 78 2B 65 61 78 2A 34  2B 34 5D 09 3B 20 20 31  tp  dword ptr [ecx+eax*4+4];  1
0000C7A0  39 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 35 38 0D 0A 20 20  20 20 20 20 20 20 66 6C  9                 58        fl
0000C7C0  64 20 20 20 64 77 6F 72  64 20 70 74 72 20 5B 65  73 70 2B 38 5D 09 3B 20  20 32 31 20 20 20 20 20  d   dword ptr [esp+8];  21     
0000C7E0  20 20 20 20 20 20 20 20  20 20 20 20 36 35 0D 0A  20 20 20 20 20 20 20 20  66 6D 75 6C 20 20 64 77              65        fmul  dw
0000C800  6F 72 64 20 70 74 72 20  5B 65 62 78 2B 65 61 78  2A 34 2B 38 5D 09 3B 20  20 32 32 20 20 20 20 20  ord ptr [ebx+eax*4+8];  22     
0000C820  20 20 20 20 20 20 20 20  20 20 20 20 36 39 0D 0A  20 20 20 20 20 20 20 20  66 61 64 64 20 20 64 77              69        fadd  dw
0000C840  6F 72 64 20 70 74 72 20  5B 65 63 78 2B 65 61 78  2A 34 2B 38 5D 09 3B 20  20 32 35 20 20 20 20 20  ord ptr [ecx+eax*4+8];  25     
0000C860  20 20 20 20 20 20 20 20  20 20 20 20 38 30 0D 0A  20 20 20 20 20 20 20 20  66 73 74 70 20 20 64 77              80        fstp  dw
0000C880  6F 72 64 20 70 74 72 20  5B 65 63 78 2B 65 61 78  2A 34 2B 38 5D 09 3B 20  20 32 39 20 20 20 20 20  ord ptr [ecx+eax*4+8];  29     
0000C8A0  20 20 20 20 20 20 20 20  20 20 20 20 39 30 0D 0A  20 20 20 20 20 20 20 20  61 64 64 20 20 20 65 61              90        add   ea
0000C8C0  78 2C 20 33 09 3B 20 20  33 31 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 39 37 0D 0A 20  x, 3;  31                 97 
0000C8E0  20 20 20 20 20 20 20 63  6D 70 20 20 20 65 61 78  2C 20 65 62 70 09 3B 20  20 33 32 20 20 20 20 20         cmp   eax, ebp;  32     
0000C900  20 20 20 20 20 20 20 20  20 20 20 20 39 38 0D 0A  20 20 20 20 20 20 20 20  6A 6C 65 20 20 20 54 6F              98        jle   To
0000C920  70 4F 66 4C 6F 6F 70 09  3B 20 20 33 32 20 20 20  20 20 20 20 20 20 20 20  20 31 30 30 2B 32 20 28  pOfLoop;  32            100+2 (
0000C940  62 72 20 74 61 6B 65 6E  29 0D 0A 0D 0A 54 6F 74  61 6C 3A 20 33 32 20 63  79 63 6C 65 73 20 28 31  br taken)Total: 32 cycles (1
0000C960  30 2E 37 2F 20 69 74 65  72 61 74 69 6F 6E 29 0D  0A 0D 0A 54 68 65 20 63  6C 6F 63 6B 20 63 6F 75  0.7/ iteration)The clock cou
0000C980  6E 74 20 69 6D 70 72 6F  76 65 6D 65 6E 74 73 20  67 61 69 6E 65 64 20 74  68 72 6F 75 67 68 20 6C  nt improvements gained through l
0000C9A0  6F 6F 70 20 75 6E 72 6F  6C 6C 69 6E 67 20 77 61  73 20 64 75 65 20 74 6F  20 65 6C 69 6D 69 6E 61  oop unrolling was due to elimina
0000C9C0  74 69 6E 67 20 73 6F 6D  65 20 6F 66 20 74 68 65  20 6C 6F 6F 70 20 63 6F  6E 74 72 6F 6C 20 6F 76  ting some of the loop control ov
0000C9E0  65 72 68 65 61 64 2E 20  20 54 6F 20 67 65 74 20  6D 6F 72 65 20 69 6D 70  72 6F 76 65 6D 65 6E 74  erhead.  To get more improvement
0000CA00  2C 20 77 65 20 6E 65 65  64 20 74 6F 20 67 65 74  20 74 68 65 20 66 6C 6F  61 74 69 6E 67 2D 70 6F  , we need to get the floating-po
0000CA20  69 6E 74 20 6F 70 65 72  61 74 69 6F 6E 73 20 6F  76 65 72 6C 61 70 70 65  64 20 69 6E 20 6F 72 64  int operations overlapped in ord
0000CA40  65 72 20 74 6F 20 68 69  64 65 20 74 68 65 69 72  20 6C 61 74 65 6E 63 69  65 73 2E 0D 0A 0D 0A 4D  er to hide their latencies.M
0000CA60  6F 73 74 20 66 6C 6F 61  74 69 6E 67 2D 70 6F 69  6E 74 20 6F 70 65 72 61  74 69 6F 6E 73 20 72 65  ost floating-point operations re
0000CA80  71 75 69 72 65 20 74 68  61 74 20 6F 6E 65 20 6F  70 65 72 61 6E 64 20 61  6E 64 20 74 68 65 20 72  quire that one operand and the r
0000CAA0  65 73 75 6C 74 20 75 73  65 20 74 68 65 20 74 6F  70 20 6F 66 20 73 74 61  63 6B 2E 20 54 68 69 73  esult use the top of stack. This
0000CAC0  20 6D 61 6B 65 73 20 65  61 63 68 20 69 6E 73 74  72 75 63 74 69 6F 6E 20  64 65 70 65 6E 64 65 6E   makes each instruction dependen
0000CAE0  74 20 6F 6E 20 74 68 65  20 70 72 65 76 69 6F 75  73 20 69 6E 73 74 72 75  63 74 69 6F 6E 20 61 6E  t on the previous instruction an
0000CB00  64 20 69 6E 68 69 62 69  74 73 20 6F 76 65 72 6C  61 70 70 69 6E 67 20 74  68 65 20 69 6E 73 74 72  d inhibits overlapping the instr
0000CB20  75 63 74 69 6F 6E 73 20  2E 0D 0A 0D 0A 4F 6E 65  20 6F 62 76 69 6F 75 73  20 77 61 79 20 74 6F 20  uctions .One obvious way to 
0000CB40  67 65 74 20 61 72 6F 75  6E 64 20 74 68 69 73 20  69 73 20 74 6F 20 63 68  61 6E 67 65 20 74 68 65  get around this is to change the
0000CB60  20 61 72 63 68 69 74 65  63 74 75 72 65 20 61 6E  64 20 68 61 76 65 20 66  6C 6F 61 74 69 6E 67 2D   architecture and have floating-
0000CB80  70 6F 69 6E 74 20 72 65  67 69 73 74 65 72 73 2C  20 72 61 74 68 65 72 20  74 68 61 6E 20 61 20 73  point registers, rather than a s
0000CBA0  74 61 63 6B 2E 20 55 6E  66 6F 72 74 75 6E 61 74  65 6C 79 2C 20 75 70 77  61 72 64 20 61 6E 64 20  tack. Unfortunately, upward and 
0000CBC0  64 6F 77 6E 77 61 72 64  20 63 6F 6D 70 61 74 69  62 69 6C 69 74 79 20 77  6F 75 6C 64 20 62 65 20  downward compatibility would be 
0000CBE0  6C 6F 73 74 2E 20 20 20  49 6E 73 74 65 61 64 2C  20 74 68 65 20 66 78 63  68 20 69 6E 73 74 72 75  lost.   Instead, the fxch instru
0000CC00  63 74 69 6F 6E 20 77 61  73 20 6D 61 64 65 20 22  66 61 73 74 22 2E 20 54  68 69 73 20 70 72 6F 76  ction was made "fast". This prov
0000CC20  69 64 65 73 20 75 73 20  61 6E 6F 74 68 65 72 20  77 61 79 20 74 6F 20 61  76 6F 69 64 20 74 68 65  ides us another way to avoid the
0000CC40  20 74 6F 70 20 6F 66 20  73 74 61 63 6B 20 64 65  70 65 6E 64 65 6E 63 69  65 73 2E 20 20 54 68 65   top of stack dependencies.  The
0000CC60  20 66 78 63 68 20 69 6E  73 74 72 75 63 74 69 6F  6E 73 20 63 61 6E 20 62  65 20 70 61 69 72 65 64   fxch instructions can be paired
0000CC80  20 77 69 74 68 20 74 68  65 20 63 6F 6D 6D 6F 6E  20 66 6C 6F 61 74 69 6E  67 2D 70 6F 69 6E 74 20   with the common floating-point 
0000CCA0  6F 70 65 72 61 74 69 6F  6E 73 2C 20 73 6F 20 74  68 65 72 65 20 69 73 20  6E 6F 20 70 65 6E 61 6C  operations, so there is no penal
0000CCC0  74 79 20 6F 6E 20 74 68  65 20 50 65 6E 74 69 75  6D 20 70 72 6F 63 65 73  73 6F 72 2E 20 20 4F 6E  ty on the Pentium processor.  On
0000CCE0  20 74 68 65 20 49 6E 74  65 6C 34 38 36 20 70 72  6F 63 65 73 73 6F 72 2C  20 65 61 63 68 20 66 78   the Intel486 processor, each fx
0000CD00  63 68 20 74 61 6B 65 73  20 34 20 63 6C 6F 63 6B  73 2E 0D 0A 0D 0A 54 6F  20 74 61 6B 65 20 61 64  ch takes 4 clocks.To take ad
0000CD20  76 61 6E 74 61 67 65 20  6F 66 20 74 68 65 20 65  78 70 6F 73 65 64 20 70  61 72 61 6C 6C 65 6C 69  vantage of the exposed paralleli
0000CD40  73 6D 20 66 72 6F 6D 20  6C 6F 6F 70 20 75 6E 72  6F 6C 6C 69 6E 67 2C 20  74 68 65 20 69 6E 73 74  sm from loop unrolling, the inst
0000CD60  72 75 63 74 69 6F 6E 73  20 73 68 6F 75 6C 64 20  62 65 20 73 63 68 65 64  75 6C 65 64 2E 0D 0A 0D  ructions should be scheduled.
0000CD80  0A 0C 41 73 73 65 6D 62  6C 79 20 63 6F 64 65 20  61 66 74 65 72 20 75 6E  72 6F 6C 6C 69 6E 67 20  Assembly code after unrolling 
0000CDA0  61 6E 64 20 73 63 68 65  64 75 6C 69 6E 67 3A 0D  0A 0D 0A 20 20 20 20 20  20 20 20 20 20 20 20 20  and scheduling:             
0000CDC0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20                                  
0000CDE0  20 20 20 20 20 20 20 20  20 20 20 41 66 74 65 72  20 49 6E 73 74 72 75 63  74 69 6F 6E 0D 0A 20 20             After Instruction  
0000CE00  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20                                  
0000CE20  20 20 49 6E 74 65 6C 34  38 36 20 20 50 65 6E 74  69 75 6D 20 20 20 53 54  28 4F 29 20 20 20 20 20    Intel486  Pentium   ST(O)     
0000CE40  53 54 28 6C 29 20 20 20  20 53 54 28 32 29 0D 0A  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  ST(l)    ST(2)                
0000CE60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 43  50 55 20 20 20 20 20 20                         CPU      
0000CE80  43 50 55 20 20 20 20 20  2D 2D 2D 2D 2D 2D 2D 2D  20 20 2D 2D 2D 2D 2D 2D  2D 2D 20 2D 2D 2D 2D 2D  CPU     --------  -------- -----
0000CEA0  0D 0A 54 6F 70 4F 66 4C  6F 6F 70 3A 20 0D 0A 20  20 20 20 66 6C 64 20 20  20 20 20 20 20 64 77 6F  TopOfLoop:     fld       dwo
0000CEC0  72 64 20 70 74 72 20 5B  65 73 70 2B 38 5D 20 20  20 20 20 20 20 20 20 20  31 20 20 20 20 20 20 20  rd ptr [esp+8]          1       
0000CEE0  31 20 20 20 20 20 20 7A  0D 0A 20 20 20 20 66 6D  75 6C 20 20 20 20 20 20  64 77 6F 72 64 20 70 74  1      z    fmul      dword pt
0000CF00  72 20 5B 65 62 78 2B 65  61 78 2A 34 5D 20 20 20  20 20 20 35 20 20 20 20  20 20 20 32 20 20 20 20  r [ebx+eax*4]      5       2    
0000CF20  20 20 79 30 2A 7A 0D 0A  20 20 20 20 66 6C 64 20  20 20 20 20 20 20 64 77  6F 72 64 20 70 74 72 20    y0*z    fld       dword ptr 
0000CF40  5B 65 73 70 2B 38 5D 20  20 20 20 20 20 20 20 20  31 36 20 20 20 20 20 20  20 33 20 20 20 20 20 20  [esp+8]         16       3      
0000CF60  7A 20 20 20 20 20 20 20  20 20 79 30 2A 7A 0D 0A  20 20 20 20 66 6D 75 6C  20 20 20 20 20 20 64 77  z         y0*z    fmul      dw
0000CF80  6F 72 64 20 70 74 72 20  5B 65 62 78 2B 65 61 78  2A 34 2B 34 5D 20 20 20  32 30 20 20 20 20 20 20  ord ptr [ebx+eax*4+4]   20      
0000CFA0  20 34 20 20 20 20 20 20  79 6C 2A 7A 20 20 20 20  20 20 79 30 2A 7A 0D 0A  20 20 20 20 66 78 63 68   4      yl*z      y0*z    fxch
0000CFC0  20 20 20 20 20 20 73 74  28 6C 29 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20        st(l)                     
0000CFE0  33 31 20 20 20 20 20 20  20 34 20 20 20 20 20 20  79 30 2A 7A 20 20 20 20  20 20 79 6C 2A 7A 0D 0A  31       4      y0*z      yl*z
0000D000  20 20 20 20 66 61 64 64  20 20 20 20 20 20 64 77  6F 72 64 20 70 74 72 20  5B 65 63 78 2B 65 61 78      fadd      dword ptr [ecx+eax
0000D020  2A 34 5D 20 20 20 20 20  33 36 20 20 20 20 20 20  20 35 20 20 20 20 20 20  78 30 2B 79 30 2A 7A 20  *4]     36       5      x0+y0*z 
0000D040  20 20 79 6C 2A 7A 0D 0A  20 20 20 20 66 6C 64 20  20 20 20 20 20 20 64 77  6F 72 64 20 70 74 72 20    yl*z    fld       dword ptr 
0000D060  5B 65 73 70 2B 38 5D 20  20 20 20 20 20 20 20 20  34 36 20 20 20 20 20 20  20 36 20 20 20 20 20 20  [esp+8]         46       6      
0000D080  7A 20 20 20 20 20 20 20  20 20 78 30 2B 79 30 2A  7A 20 20 20 79 6C 2A 7A  0D 0A 20 20 20 20 66 6D  z         x0+y0*z   yl*z    fm
0000D0A0  75 6C 20 20 20 20 20 20  64 77 6F 72 64 20 70 74  72 20 5B 65 62 78 2B 65  61 78 2A 34 2B 38 5D 20  ul      dword ptr [ebx+eax*4+8] 
0000D0C0  20 20 35 30 20 20 20 20  20 20 20 37 20 20 20 20  20 20 79 32 2A 7A 20 20  20 20 20 20 78 30 2B 79    50       7      y2*z      x0+y
0000D0E0  30 2A 7A 20 20 20 79 6C  2A 7A 0D 0A 20 20 20 20  66 78 63 68 20 20 20 20  20 20 73 74 28 32 29 20  0*z   yl*z    fxch      st(2) 
0000D100  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 36 31 20 20  20 20 20 20 20 37 20 20                      61       7  
0000D120  20 20 20 20 79 6C 2A 7A  20 20 20 20 20 20 78 30  2B 79 30 2A 7A 20 20 20  79 32 2A 7A 0D 0A 20 20      yl*z      x0+y0*z   y2*z  
0000D140  20 20 66 61 64 64 20 20  20 20 20 20 64 77 6F 72  64 20 70 74 72 20 5B 65  63 78 2B 65 61 78 2A 34    fadd      dword ptr [ecx+eax*4
0000D160  2B 34 5D 20 20 20 36 36  20 20 20 20 20 20 20 38  20 20 20 20 20 20 78 6C  2B 79 6C 2A 7A 20 20 20  +4]   66       8      xl+yl*z   
0000D180  78 30 2B 79 30 2A 7A 20  20 20 79 32 2A 7A 0D 0A  20 20 20 20 66 78 63 68  20 20 20 20 20 20 73 74  x0+y0*z   y2*z    fxch      st
0000D1A0  28 6C 29 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  37 36 20 20 20 20 20 20  (l)                     76      
0000D1C0  20 38 20 20 20 20 20 20  78 30 2B 79 30 2A 7A 20  20 20 78 6C 2B 79 6C 2A  7A 20 20 20 79 32 2A 7A   8      x0+y0*z   xl+yl*z   y2*z
0000D1E0  0D 0A 20 20 20 20 66 73  74 70 20 20 20 20 20 20  64 77 6F 72 64 20 70 74  72 20 5B 65 63 78 2B 65      fstp      dword ptr [ecx+e
0000D200  61 78 2A 34 5D 20 20 20  20 20 38 31 20 20 20 20  20 20 20 39 20 20 20 20  20 20 78 6C 2B 79 6C 2A  ax*4]     81       9      xl+yl*
0000D220  7A 20 20 20 79 32 2A 7A  0D 0A 20 20 20 20 66 78  63 68 20 20 20 20 20 20  73 74 28 6C 29 20 20 20  z   y2*z    fxch      st(l)   
0000D240  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 38 38 20 20 20 20  20 20 31 31 20 20 20 20                    88      11    
0000D260  20 20 79 32 2A 7A 20 20  20 20 20 20 78 6C 2B 79  6C 2A 7A 0D 0A 20 20 20  20 66 61 64 64 20 20 20    y2*z      xl+yl*z    fadd   
0000D280  20 20 20 64 77 6F 72 64  20 70 74 72 20 5B 65 63  78 2B 65 61 78 2A 34 2B  38 5D 20 20 20 39 33 20     dword ptr [ecx+eax*4+8]   93 
0000D2A0  20 20 20 20 20 31 32 20  20 20 20 20 20 78 32 2B  79 32 2A 7A 20 20 20 78  6C 2B 79 6C 2A 7A 0D 0A       12      x2+y2*z   xl+yl*z
0000D2C0  20 20 20 20 66 78 63 68  20 20 20 20 20 20 73 74  28 6C 29 20 20 20 20 20  20 20 20 20 20 20 20 20      fxch      st(l)             
0000D2E0  20 20 20 20 20 20 20 31  30 33 20 20 20 20 20 20  31 32 20 20 20 20 20 20  78 6C 2B 79 6C 2A 7A 20         103      12      xl+yl*z 
0000D300  20 20 78 32 2B 79 32 2A  7A 0D 0A 20 20 20 20 66  73 74 70 20 20 20 20 20  20 64 77 6F 72 64 20 70    x2+y2*z    fstp      dword p
0000D320  74 72 20 5B 65 63 78 2B  65 61 78 2A 34 2B 34 5D  20 20 31 30 38 20 20 20  20 20 20 31 33 20 20 20  tr [ecx+eax*4+4]  108      13   
0000D340  20 20 20 78 32 2B 79 32  2A 7A 0D 0A 20 20 20 20  66 73 74 70 20 20 20 20  20 20 64 77 6F 72 64 20     x2+y2*z    fstp      dword 
0000D360  70 74 72 20 5B 65 63 78  2B 65 61 78 2A 34 2B 38  5D 20 20 31 31 36 20 20  20 20 20 20 31 36 0D 0A  ptr [ecx+eax*4+8]  116      16
0000D380  20 20 20 20 61 64 64 20  20 20 20 20 20 20 65 61  78 2C 20 33 20 20 20 20  20 20 20 20 20 20 20 20      add       eax, 3            
0000D3A0  20 20 20 20 20 20 20 31  32 33 20 20 20 20 20 20  31 38 0D 0A 20 20 20 20  63 6D 70 20 20 20 20 20         123      18    cmp     
0000D3C0  20 20 65 61 78 2C 20 65  62 70 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 31 32 34 20 20    eax, ebp                 124  
0000D3E0  20 20 20 20 31 39 0D 0A  20 20 20 20 6A 6C 65 20  20 20 20 20 20 20 54 6F  70 4F 66 4C 6F 6F 70 20      19    jle       TopOfLoop 
0000D400  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 31  32 36 2B 32 20 20 20 20  31 39 0D 0A 0D 0A 20 20                 126+2    19  
0000D420  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20                                  
0000D440  20 20 20 20 20 20 20 20  20 7C 0D 0A 0D 0A 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20           |                  
0000D460  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 28 6A 6C  65 20 74 61 6B 65 6E 29                       (jle taken)
0000D480  0D 0A 0D 0A 54 6F 74 61  6C 20 3A 31 20 39 20 63  79 63 6C 65 73 20 28 36  2E 33 2F 69 74 65 72 61  Total :1 9 cycles (6.3/itera
0000D4A0  74 69 6F 6E 29 0D 0A 0D  0A 4F 6E 20 74 68 65 20  49 6E 74 65 6C 34 38 36  20 70 72 6F 63 65 73 73  tion)On the Intel486 process
0000D4C0  6F 72 2C 20 74 68 65 20  69 6E 64 65 78 20 70 65  6E 61 6C 74 79 20 61 6E  64 20 74 68 65 20 61 64  or, the index penalty and the ad
0000D4E0  64 65 64 20 63 6F 73 74  20 6F 66 20 66 78 63 68  20 61 72 65 20 61 70 70  61 72 65 6E 74 2E 20 54  ded cost of fxch are apparent. T
0000D500  68 65 20 69 6E 64 65 78  20 70 65 6E 61 6C 74 79  20 64 6F 65 73 20 6E 6F  74 20 6F 76 65 72 6C 61  he index penalty does not overla
0000D520  70 20 77 69 74 68 20 74  68 65 20 66 78 63 68 20  69 6E 73 74 72 75 63 74  69 6F 6E 2E 0D 0A 0D 0A  p with the fxch instruction.
0000D540  4F 6E 20 74 68 65 20 50  65 6E 74 69 75 6D 20 70  72 6F 63 65 73 73 6F 72  2C 20 74 68 65 20 66 78  On the Pentium processor, the fx
0000D560  63 68 20 69 6E 73 74 72  75 63 74 69 6F 6E 73 20  70 61 69 72 20 77 69 74  68 20 70 72 65 63 65 64  ch instructions pair with preced
0000D580  69 6E 67 20 66 61 64 64  20 61 6E 64 20 66 6D 75  6C 20 69 6E 73 74 72 75  63 74 69 6F 6E 73 20 61  ing fadd and fmul instructions a
0000D5A0  6E 64 20 65 78 65 63 75  74 65 20 69 6E 20 70 61  72 61 6C 6C 65 6C 20 77  69 74 68 20 74 68 65 6D  nd execute in parallel with them
0000D5C0  20 28 63 79 63 6C 65 73  20 37 2C 38 2C 31 32 29  2E 20 54 68 65 20 66 78  63 68 20 69 6E 73 74 72   (cycles 7,8,12). The fxch instr
0000D5E0  75 63 74 69 6F 6E 73 20  6D 6F 76 65 20 61 6E 20  6F 70 65 72 61 6E 64 20  69 6E 74 6F 20 70 6F 73  uctions move an operand into pos
0000D600  69 74 69 6F 6E 20 66 6F  72 20 74 68 65 20 6E 65  78 74 20 66 6C 6F 61 74  69 6E 67 20 70 6F 69 6E  ition for the next floating poin
0000D620  74 20 69 6E 73 74 72 75  63 74 69 6F 6E 2E 20 54  68 65 72 65 20 69 73 20  61 20 63 79 63 6C 65 20  t instruction. There is a cycle 
0000D640  6C 6F 73 74 20 61 74 20  63 6C 6F 63 6B 20 31 35  20 64 75 65 20 74 6F 20  74 68 65 20 73 74 6F 72  lost at clock 15 due to the stor
0000D660  65 20 77 61 69 74 69 6E  67 20 33 20 63 6C 6F 63  6B 73 20 61 66 74 65 72  20 74 68 65 20 69 6E 73  e waiting 3 clocks after the ins
0000D680  74 72 75 63 74 69 6F 6E  20 64 65 66 69 6E 69 6E  67 20 69 74 73 20 6F 70  65 72 61 6E 64 2E 20 20  truction defining its operand.  
0000D6A0  54 68 65 20 66 78 63 68  20 69 6E 73 74 72 75 63  74 69 6F 6E 20 64 6F 65  73 20 6E 6F 74 20 70 61  The fxch instruction does not pa
0000D6C0  69 72 20 77 69 74 68 20  66 73 74 20 61 6E 64 20  74 61 6B 65 73 20 6F 6E  65 20 63 6C 6F 63 6B 20  ir with fst and takes one clock 
0000D6E0  61 73 20 61 20 73 65 70  61 72 61 74 65 20 69 6E  73 74 72 75 63 74 69 6F  6E 20 28 63 79 63 6C 65  as a separate instruction (cycle
0000D700  73 20 39 2D 31 31 29 0D  0A 0D 0A 36 2E 31 2E 32  20 46 58 43 48 20 52 75  6C 65 73 20 61 6E 64 20  s 9-11)6.1.2 FXCH Rules and 
0000D720  52 65 67 75 6C 61 74 69  6F 6E 73 0D 0A 0D 0A 54  68 65 20 66 78 63 68 20  69 6E 73 74 72 75 63 74  RegulationsThe fxch instruct
0000D740  69 6F 6E 20 63 61 6E 20  62 65 20 65 78 65 63 75  74 65 64 20 66 6F 72 20  22 66 72 65 65 22 20 77  ion can be executed for "free" w
0000D760  68 65 6E 20 61 6C 6C 20  6F 66 20 74 68 65 20 66  6F 6C 6C 6F 77 69 6E 67  20 63 6F 6E 64 69 74 69  hen all of the following conditi
0000D780  6F 6E 73 20 6F 63 63 75  72 3A 0D 0A 0D 0A 20 41  6E 20 46 50 20 69 6E 73  74 72 75 63 74 69 6F 6E  ons occur: An FP instruction
0000D7A0  20 66 6F 6C 6C 6F 77 73  20 74 68 65 20 66 78 63  68 20 69 6E 73 74 72 75  63 74 69 6F 6E 2E 0D 0A   follows the fxch instruction.
0000D7C0  0D 0A 41 6E 20 46 50 20  69 6E 73 74 72 75 63 74  69 6F 6E 20 62 65 6C 6F  6E 67 69 6E 67 20 74 6F  An FP instruction belonging to
0000D7E0  20 74 68 65 20 66 6F 6C  6C 6F 77 69 6E 67 20 6C  69 73 74 20 69 6D 6D 65  64 69 61 74 65 6C 79 20   the following list immediately 
0000D800  70 72 65 63 65 64 65 73  20 74 68 65 20 66 78 63  68 20 69 6E 73 74 72 75  63 74 69 6F 6E 3A 20 66  precedes the fxch instruction: f
0000D820  61 64 64 2C 20 66 73 75  62 2C 20 66 6D 75 6C 2C  20 66 6C 64 2C 20 66 63  6F 6D 2C 20 66 75 63 6F  add, fsub, fmul, fld, fcom, fuco
0000D840  6D 2C 20 66 63 68 73 2C  20 66 74 73 74 2C 20 66  61 62 73 2C 20 66 64 69  76 2E 0D 0A 0D 0A 54 68  m, fchs, ftst, fabs, fdiv.Th
0000D860  69 73 20 66 78 63 68 20  69 6E 73 74 72 75 63 74  69 6F 6E 20 68 61 73 20  61 6C 72 65 61 64 79 20  is fxch instruction has already 
0000D880  62 65 65 6E 20 65 78 65  63 75 74 65 64 2E 20 54  68 69 73 20 69 73 20 62  65 63 61 75 73 65 20 74  been executed. This is because t
0000D8A0  68 65 20 69 6E 73 74 72  75 63 74 69 6F 6E 20 62  6F 75 6E 64 61 72 69 65  73 20 69 6E 20 74 68 65  he instruction boundaries in the
0000D8C0  20 63 61 63 68 65 20 61  72 65 20 6D 61 72 6B 65  64 20 74 68 65 20 66 69  72 73 74 20 74 69 6D 65   cache are marked the first time
0000D8E0  20 74 68 65 20 69 6E 73  74 72 75 63 74 69 6F 6E  20 69 73 20 65 78 65 63  75 74 65 64 2C 20 73 6F   the instruction is executed, so
0000D900  20 70 61 69 72 69 6E 67  20 6F 6E 6C 79 20 68 61  70 70 65 6E 73 20 74 68  65 20 73 65 63 6F 6E 64   pairing only happens the second
0000D920  20 74 69 6D 65 20 74 68  69 73 20 69 6E 73 74 72  75 63 74 69 6F 6E 20 69  73 20 65 78 65 63 75 74   time this instruction is execut
0000D940  65 64 20 66 72 6F 6D 20  74 68 65 20 63 61 63 68  65 2E 0D 0A 0D 0A 54 68  69 73 20 6D 65 61 6E 73  ed from the cache.This means
0000D960  20 74 68 61 74 20 74 68  69 73 20 69 6E 73 74 72  75 63 74 69 6F 6E 20 69  73 20 61 6C 6D 6F 73 74   that this instruction is almost
0000D980  20 22 66 72 65 65 22 20  61 6E 64 20 63 61 6E 20  62 65 20 75 73 65 64 20  74 6F 20 61 63 63 65 73   "free" and can be used to acces
0000D9A0  73 20 65 6C 65 6D 65 6E  74 73 20 69 6E 20 74 68  65 20 64 65 65 70 65 72  20 6C 65 76 65 6C 73 20  s elements in the deeper levels 
0000D9C0  6F 66 20 74 68 65 20 46  50 20 73 74 61 63 6B 20  69 6E 73 74 65 61 64 20  6F 66 20 73 74 6F 72 69  of the FP stack instead of stori
0000D9E0  6E 67 20 74 68 65 6D 20  61 6E 64 20 74 68 65 6E  20 6C 6F 61 64 69 6E 67  20 74 68 65 6D 20 61 67  ng them and then loading them ag
0000DA00  61 69 6E 2E 0D 0A 0D 0A  0C 36 2E 31 2E 33 20 4D  65 6D 6F 72 79 20 4F 70  65 72 61 6E 64 73 0D 0A  ain.6.1.3 Memory Operands
0000DA20  0D 0A 50 65 72 66 6F 72  6D 69 6E 67 20 61 20 66  6C 6F 61 74 69 6E 67 2D  70 6F 69 6E 74 20 6F 70  Performing a floating-point op
0000DA40  65 72 61 74 69 6F 6E 20  6F 6E 20 61 20 6D 65 6D  6F 72 79 20 6F 70 65 72  61 6E 64 20 69 6E 73 74  eration on a memory operand inst
0000DA60  65 61 64 20 6F 66 20 6F  6E 20 61 20 73 74 61 63  6B 20 72 65 67 69 73 74  65 72 20 63 6F 73 74 73  ead of on a stack register costs
0000DA80  20 6E 6F 20 63 79 63 6C  65 73 2E 20 49 6E 20 74  68 65 20 69 6E 74 65 67  65 72 20 70 61 72 74 20   no cycles. In the integer part 
0000DAA0  6F 66 20 74 68 65 20 50  65 6E 74 69 75 6D 20 70  72 6F 63 65 73 73 6F 72  2C 20 69 74 20 77 61 73  of the Pentium processor, it was
0000DAC0  20 62 65 74 74 65 72 20  74 6F 20 61 76 6F 69 64  20 6D 65 6D 6F 72 79 20  6F 70 65 72 61 6E 64 73   better to avoid memory operands
0000DAE0  2E 20 49 6E 20 74 68 65  20 66 6C 6F 61 74 69 6E  67 2D 70 6F 69 6E 74 20  70 61 72 74 2C 20 79 6F  . In the floating-point part, yo
0000DB00  75 20 61 72 65 20 65 6E  63 6F 75 72 61 67 65 64  20 74 6F 20 75 73 65 20  6D 65 6D 6F 72 79 20 6F  u are encouraged to use memory o
0000DB20  70 65 72 61 6E 64 73 2E  0D 0A 0D 0A 36 2E 31 2E  34 20 46 6C 6F 61 74 69  6E 67 2D 50 6F 69 6E 74  perands.6.1.4 Floating-Point
0000DB40  20 53 74 61 6C 6C 73 0D  0A 0D 0A 54 68 65 72 65  20 61 72 65 20 63 61 73  65 73 20 77 68 65 72 65   StallsThere are cases where
0000DB60  20 61 20 64 65 6C 61 79  20 6F 63 63 75 72 73 20  62 65 74 77 65 65 6E 20  74 77 6F 20 6F 70 65 72   a delay occurs between two oper
0000DB80  61 74 69 6F 6E 73 2E 20  49 6E 73 74 72 75 63 74  69 6F 6E 73 20 73 68 6F  75 6C 64 20 62 65 20 69  ations. Instructions should be i
0000DBA0  6E 73 65 72 74 65 64 20  62 65 74 77 65 65 6E 20  74 68 65 20 70 61 69 72  20 74 68 61 74 20 63 61  nserted between the pair that ca
0000DBC0  75 73 65 20 74 68 65 20  70 69 70 65 20 73 74 61  6C 6C 2E 20 54 68 65 73  65 20 69 6E 73 74 72 75  use the pipe stall. These instru
0000DBE0  63 74 69 6F 6E 73 20 63  6F 75 6C 64 20 62 65 20  69 6E 74 65 67 65 72 20  69 6E 73 74 72 75 63 74  ctions could be integer instruct
0000DC00  69 6F 6E 73 20 6F 72 20  66 6C 6F 61 74 69 6E 67  2D 70 6F 69 6E 74 20 69  6E 73 74 72 75 63 74 69  ions or floating-point instructi
0000DC20  6F 6E 73 20 74 68 61 74  20 77 69 6C 6C 20 6E 6F  74 20 63 61 75 73 65 20  61 20 6E 65 77 20 73 74  ons that will not cause a new st
0000DC40  61 6C 6C 20 74 68 65 6D  73 65 6C 76 65 73 2E 20  54 68 65 20 6E 75 6D 62  65 72 20 6F 66 20 69 6E  all themselves. The number of in
0000DC60  73 74 72 75 63 74 69 6F  6E 73 20 74 68 61 74 20  73 68 6F 75 6C 64 20 62  65 20 69 6E 73 65 72 74  structions that should be insert
0000DC80  65 64 20 64 65 70 65 6E  64 73 20 6F 6E 20 74 68  65 20 64 65 6C 61 79 20  6C 65 6E 67 74 68 2E 0D  ed depends on the delay length.
0000DCA0  0A 0D 0A 4F 6E 65 20 65  78 61 6D 70 6C 65 20 6F  66 20 74 68 69 73 20 69  73 20 77 68 65 6E 20 61  One example of this is when a
0000DCC0  20 66 6C 6F 61 74 69 6E  67 2D 70 6F 69 6E 74 20  69 6E 73 74 72 75 63 74  69 6F 6E 20 64 65 70 65   floating-point instruction depe
0000DCE0  6E 64 73 20 6F 6E 20 74  68 65 20 72 65 73 75 6C  74 20 6F 66 20 74 68 65  20 69 6D 6D 65 64 69 61  nds on the result of the immedia
0000DD00  74 65 6C 79 20 70 72 65  63 65 64 69 6E 67 20 69  6E 73 74 72 75 63 74 69  6F 6E 20 77 68 69 63 68  tely preceding instruction which
0000DD20  20 69 73 20 61 6C 73 6F  20 61 20 66 6C 6F 61 74  69 6E 67 2D 70 6F 69 6E  74 20 69 6E 73 74 72 75   is also a floating-point instru
0000DD40  63 74 69 6F 6E 2E 20 49  6E 20 74 68 69 73 20 63  61 73 65 2C 20 69 74 20  77 6F 75 6C 64 20 62 65  ction. In this case, it would be
0000DD60  20 61 64 76 61 6E 74 61  67 65 6F 75 73 20 74 6F  20 6D 6F 76 65 20 69 6E  74 65 67 65 72 20 69 6E   advantageous to move integer in
0000DD80  73 74 72 75 63 74 69 6F  6E 73 20 62 65 74 77 65  65 6E 20 74 68 65 20 74  77 6F 20 66 70 20 69 6E  structions between the two fp in
0000DDA0  73 74 72 75 63 74 69 6F  6E 73 2C 20 65 76 65 6E  20 69 66 20 74 68 65 20  69 6E 74 65 67 65 72 20  structions, even if the integer 
0000DDC0  69 6E 73 74 72 75 63 74  69 6F 6E 73 20 70 65 72  66 6F 72 6D 20 6C 6F 6F  70 20 63 6F 6E 74 72 6F  instructions perform loop contro
0000DDE0  6C 2E 20 54 68 65 20 66  6F 6C 6C 6F 77 69 6E 67  20 65 78 61 6D 70 6C 65  20 72 65 73 74 72 75 63  l. The following example restruc
0000DE00  74 75 72 65 73 20 61 20  6C 6F 6F 70 20 69 6E 20  74 68 69 73 20 6D 61 6E  6E 65 72 3A 0D 0A 0D 0A  tures a loop in this manner:
0000DE20  66 6F 72 20 28 69 3D 30  3B 20 69 3C 53 69 7A 65  3B 20 69 2B 2B 29 0D 0A  09 61 72 72 61 79 31 20  for (i=0; i<Size; i++)array1 
0000DE40  5B 69 5D 20 2B 3D 20 61  72 72 61 79 32 20 5B 69  5D 3B 0D 0A 0D 0A 0D 0A  09 20 20 20 20 20 20 20  [i] += array2 [i];       
0000DE60  50 65 6E 74 69 75 6D 20  50 72 6F 63 65 73 73 6F  72 20 20 09 20 20 20 49  6E 74 65 6C 34 38 36 20  Pentium Processor     Intel486 
0000DE80  50 72 6F 63 65 73 73 6F  72 0D 0A 20 20 20 20 20  20 20 09 43 6C 6F 63 6B  73 20 20 20 20 20 20 20  Processor       Clocks       
0000DEA0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 43 6C  6F 63 6B 73 0D 0A 54 6F  70 4F 66 4C 6F 6F 70 3A                ClocksTopOfLoop:
0000DEC0  0D 0A 20 20 66 6C 64 73  20 20 20 5B 65 61 78 20  2B 20 61 72 72 61 79 32  5D 09 32 20 2D 20 41 47    flds   [eax + array2]2 - AG
0000DEE0  49 09 09 33 0D 0A 20 20  66 61 64 64 73 20 20 5B  65 61 78 20 2B 20 61 72  72 61 79 31 5D 09 31 09  I3  fadds  [eax + array1]1
0000DF00  09 33 0D 0A 20 20 66 73  74 70 73 20 20 5B 65 61  78 20 2B 20 61 72 72 61  79 31 5D 09 09 35 20 2D  3  fstps  [eax + array1]5 -
0000DF20  20 57 61 69 74 20 66 6F  72 20 66 61 64 64 73 09  31 34 20 2D 20 57 61 69  74 20 66 6F 72 20 66 61   Wait for fadds14 - Wait for fa
0000DF40  64 64 73 0D 0A 20 20 61  64 64 20 20 20 20 65 61  78 2C 20 34 09 09 31 09  09 31 0D 0A 20 20 6A 6E  dds  add    eax, 411  jn
0000DF60  7A 20 20 20 20 54 6F 70  4F 66 4C 6F 6F 70 09 09  30 20 2D 20 50 61 69 72  73 20 77 69 74 68 20 61  z    TopOfLoop0 - Pairs with a
0000DF80  64 64 09 33 0D 0A 20 20  09 20 20 20 20 20 20 20  20 20 20 2D 2D 2D 2D 2D  2D 20 20 20 20 20 20 20  dd3            ------       
0000DFA0  20 20 20 20 20 20 20 20  20 20 20 20 20 2D 2D 2D  2D 2D 2D 0D 0A 09 09 39  09 09 09 32 34 0D 0A 0D               ------924
0000DFC0  0A 0D 0A 0D 0A 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 50 65                           Pe
0000DFE0  6E 74 69 75 6D 20 50 72  6F 63 65 73 73 6F 72 20  20 20 20 20 20 20 20 20  49 6E 74 65 6C 34 38 36  ntium Processor         Intel486
0000E000  20 50 72 6F 63 65 73 73  6F 72 0D 0A 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20   Processor                    
0000E020  20 20 20 20 20 20 20 20  20 20 43 6C 6F 63 6B 73  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20            Clocks                
0000E040  20 20 20 20 20 43 6C 6F  63 6B 73 0D 0A 54 6F 70  4F 66 4C 6F 6F 70 3A 0D  0A 20 20 66 73 74 70 73       ClocksTopOfLoop:  fstps
0000E060  20 5B 65 61 78 20 2B 20  61 72 72 61 79 31 5D 09  34 20 2D 20 57 61 69 74  20 66 6F 72 20 66 61 64   [eax + array1]4 - Wait for fad
0000E080  64 73 2C 41 47 49 09 31  30 20 2D 20 57 61 69 74  20 66 6F 72 20 66 61 64  64 73 0D 0A 4C 6F 6F 70  ds,AGI10 - Wait for faddsLoop
0000E0A0  45 6E 74 72 79 50 6F 69  6E 74 3A 0D 0A 20 20 66  6C 64 73 20 20 5B 65 61  78 20 2B 20 61 72 72 61  EntryPoint:  flds  [eax + arra
0000E0C0  79 32 5D 09 31 09 09 33  0D 0A 20 20 66 61 64 64  73 20 5B 65 61 78 20 2B  20 61 72 72 61 79 31 5D  y2]13  fadds [eax + array1]
0000E0E0  09 31 09 09 33 0D 0A 20  20 61 64 64 20 65 61 78  2C 20 34 09 09 31 09 09  31 0D 0A 20 20 6A 6E 7A  13  add eax, 411  jnz
0000E100  20 54 6F 70 4F 66 4C 6F  6F 70 09 09 30 20 2D 20  50 61 69 72 73 20 77 69  74 68 20 61 64 64 09 33   TopOfLoop0 - Pairs with add3
0000E120  0D 0A 09 09 2D 2D 2D 2D  2D 2D 2D 09 2D 2D 2D 2D  2D 2D 2D 0D 0A 09 09 37  09 09 32 30 0D 0A 0D 0A  --------------720
0000E140  0D 0A 42 79 20 6D 6F 76  69 6E 67 20 74 68 65 20  69 6E 74 65 67 65 72 20  69 6E 73 74 72 75 63 74  By moving the integer instruct
0000E160  69 6F 6E 73 20 62 65 74  77 65 65 6E 20 74 68 65  20 66 61 64 64 73 20 61  6E 64 20 66 73 74 70 73  ions between the fadds and fstps
0000E180  2C 20 62 6F 74 68 20 70  72 6F 63 65 73 73 6F 72  73 20 63 61 6E 20 65 78  65 63 75 74 65 20 74 68  , both processors can execute th
0000E1A0  65 20 69 6E 74 65 67 65  72 20 69 6E 73 74 72 75  63 74 69 6F 6E 73 20 77  68 69 6C 65 20 74 68 65  e integer instructions while the
0000E1C0  20 66 61 64 64 73 20 69  73 20 63 6F 6D 70 6C 65  74 69 6E 67 20 69 6E 20  74 68 65 20 66 6C 6F 61   fadds is completing in the floa
0000E1E0  74 69 6E 67 2D 70 6F 69  6E 74 20 75 6E 69 74 20  61 6E 64 20 62 65 66 6F  72 65 20 74 68 65 20 66  ting-point unit and before the f
0000E200  73 74 70 73 20 62 65 67  69 6E 73 20 65 78 65 63  75 74 69 6F 6E 2E 20 4E  6F 74 65 20 74 68 61 74  stps begins execution. Note that
0000E220  20 74 68 69 73 20 6E 65  77 20 6C 6F 6F 70 20 73  74 72 75 63 74 75 72 65  20 72 65 71 75 69 72 65   this new loop structure require
0000E240  73 20 61 20 73 65 70 61  72 61 74 65 20 65 6E 74  72 79 20 70 6F 69 6E 74  20 66 6F 72 20 74 68 65  s a separate entry point for the
0000E260  20 66 69 72 73 74 20 69  74 65 72 61 74 69 6F 6E  20 62 65 63 61 75 73 65  20 74 68 65 20 6C 6F 6F   first iteration because the loo
0000E280  70 20 6E 65 65 64 73 20  74 6F 20 62 65 67 69 6E  20 77 69 74 68 20 74 68  65 20 66 6C 64 73 2E 20  p needs to begin with the flds. 
0000E2A0  41 6C 73 6F 2C 20 74 68  65 72 65 20 6E 65 65 64  73 20 74 6F 20 62 65 20  61 6E 20 61 64 64 69 74  Also, there needs to be an addit
0000E2C0  69 6F 6E 61 6C 20 66 73  74 70 73 20 61 66 74 65  72 20 74 68 65 20 63 6F  6E 64 69 74 69 6F 6E 61  ional fstps after the conditiona
0000E2E0  6C 20 6A 75 6D 70 20 74  6F 20 66 69 6E 69 73 68  20 74 68 65 20 66 69 6E  61 6C 20 6C 6F 6F 70 20  l jump to finish the final loop 
0000E300  69 74 65 72 61 74 69 6F  6E 2E 0D 0A 0D 0A 0D 0A  0D 0A 0D 0A 0D 0A 31 2E  20 46 6C 6F 61 74 69 6E  iteration.1. Floatin
0000E320  67 2D 50 6F 69 6E 74 20  53 74 6F 72 65 73 0D 0A  0D 0A 41 20 66 6C 6F 61  74 69 6E 67 2D 70 6F 69  g-Point StoresA floating-poi
0000E340  6E 74 20 73 74 6F 72 65  20 6D 75 73 74 20 77 61  69 74 20 61 6E 20 65 78  74 72 61 20 63 79 63 6C  nt store must wait an extra cycl
0000E360  65 20 66 6F 72 20 69 74  73 20 66 6C 6F 61 74 69  6E 67 2D 70 6F 69 6E 74  20 6F 70 65 72 61 6E 64  e for its floating-point operand
0000E380  2E 20 41 66 74 65 72 20  61 6E 20 66 6C 64 2C 20  61 6E 20 66 73 74 20 6D  75 73 74 20 77 61 69 74  . After an fld, an fst must wait
0000E3A0  20 6F 6E 65 20 63 6C 6F  63 6B 2E 20 41 66 74 65  72 20 74 68 65 20 63 6F  6D 6D 6F 6E 20 61 72 69   one clock. After the common ari
0000E3C0  74 68 6D 65 74 69 63 20  6F 70 65 72 61 74 69 6F  6E 73 2C 20 66 6D 75 6C  20 61 6E 64 20 66 61 64  thmetic operations, fmul and fad
0000E3E0  64 2C 20 77 68 69 63 68  20 6E 6F 72 6D 61 6C 6C  79 20 68 61 76 65 20 61  20 6C 61 74 65 6E 63 79  d, which normally have a latency
0000E400  20 6F 66 20 74 77 6F 2C  20 66 73 74 20 77 61 69  74 73 20 61 6E 20 65 78  74 72 61 20 63 79 63 6C   of two, fst waits an extra cycl
0000E420  65 20 66 6F 72 20 61 20  74 6F 74 61 6C 20 6F 66  20 74 68 72 65 65 02 2E  0D 0A 0D 0A 09 66 6C 64  e for a total of three.fld
0000E440  20 20 20 6D 65 6D 6C 09  3B 20 31 20 66 6C 64 20  74 61 6B 65 73 20 31 20  63 6C 6F 63 6B 0D 0A 09     meml; 1 fld takes 1 clock
0000E460  09 3B 20 32 20 66 73 74  20 77 61 69 74 73 2C 20  73 63 68 65 64 75 6C 65  20 73 6F 6D 65 74 68 69  ; 2 fst waits, schedule somethi
0000E480  6E 67 20 68 65 72 65 0D  0A 09 66 73 74 20 20 20  6D 65 6D 32 09 3B 20 33  2C 34 20 66 73 74 20 74  ng herefst   mem2; 3,4 fst t
0000E4A0  61 6B 65 73 20 32 20 63  6C 6F 63 6B 73 0D 0A 0D  0A 09 66 61 64 64 20 20  6D 65 6D 6C 09 3B 20 31  akes 2 clocksfadd  meml; 1
0000E4C0  20 61 64 64 20 74 61 6B  65 73 20 33 20 63 6C 6F  63 6B 73 0D 0A 09 09 3B  20 32 20 61 64 64 2C 20   add takes 3 clocks; 2 add, 
0000E4E0  73 63 68 65 64 75 6C 65  20 73 6F 6D 65 74 68 69  6E 67 20 68 65 72 65 0D  0A 09 09 3B 20 33 20 61  schedule something here; 3 a
0000E500  64 64 2C 20 73 63 68 65  64 75 6C 65 20 73 6F 6D  65 74 68 69 6E 67 20 68  65 72 65 0D 0A 09 09 3B  dd, schedule something here;
0000E520  20 34 20 66 73 74 20 77  61 69 74 73 2C 20 73 63  68 65 64 75 6C 65 20 73  6F 6D 65 74 68 69 6E 67   4 fst waits, schedule something
0000E540  20 68 65 72 65 0D 0A 09  66 73 74 20 20 20 6D 65  6D 32 09 3B 20 35 2C 32  20 66 73 74 20 74 61 6B   herefst   mem2; 5,2 fst tak
0000E560  65 73 20 32 20 63 6C 6F  63 6B 73 0D 0A 0D 0A 49  6E 20 74 68 65 20 6E 65  78 74 20 65 78 61 6D 70  es 2 clocksIn the next examp
0000E580  6C 65 2C 20 74 68 65 20  73 74 6F 72 65 20 69 73  20 6E 6F 74 20 64 65 70  65 6E 64 65 6E 74 20 6F  le, the store is not dependent o
0000E5A0  6E 20 74 68 65 20 70 72  65 76 69 6F 75 73 20 6C  6F 61 64 3A 0D 0A 0D 0A  09 66 6C 64 20 20 20 6D  n the previous load:fld   m
0000E5C0  65 6D 6C 20 20 20 20 20  20 20 20 20 20 3A 20 31  0D 0A 09 66 6C 64 20 20  20 6D 65 6D 32 20 20 20  eml          : 1fld   mem2   
0000E5E0  20 20 20 20 20 20 20 3B  20 32 0D 0A 09 66 78 63  68 20 20 73 74 28 6C 29  20 20 20 20 20 20 20 20         ; 2fxch  st(l)        
0000E600  20 3B 20 32 0D 0A 09 66  73 74 20 20 20 6D 65 6D  33 20 20 20 20 20 20 20  20 20 20 3B 20 33 20 73   ; 2fst   mem3          ; 3 s
0000E620  74 6F 72 65 73 20 76 61  6C 75 65 73 20 6C 6F 61  64 65 64 20 66 72 6F 6D  20 6D 65 6D 6C 0D 0A 0D  tores values loaded from meml
0000E640  0A 32 2E 20 41 20 72 65  67 69 73 74 65 72 20 6D  61 79 20 62 65 20 75 73  65 64 20 69 6D 6D 65 64  2. A register may be used immed
0000E660  69 61 74 65 6C 79 20 61  66 74 65 72 20 69 74 20  68 61 73 20 62 65 65 6E  20 6C 6F 61 64 65 64 20  iately after it has been loaded 
0000E680  28 77 69 74 68 20 66 6C  64 29 2E 0D 0A 0D 0A 09  66 6C 64 20 20 20 6D 65  6D 31 20 20 20 20 20 20  (with fld).fld   mem1      
0000E6A0  20 20 20 20 3B 20 6C 0D  0A 09 66 61 64 64 20 20  6D 65 6D 32 20 20 20 20  20 20 20 20 20 20 3B 20      ; lfadd  mem2          ; 
0000E6C0  32 2C 33 2C 34 0D 0A 0D  0A 33 2E 20 55 73 65 20  6F 66 20 61 20 72 65 67  69 73 74 65 72 20 62 79  2,3,43. Use of a register by
0000E6E0  20 61 20 66 6C 6F 61 74  69 6E 67 2D 70 6F 69 6E  74 20 6F 70 65 72 61 74  69 6F 6E 20 69 6D 6D 65   a floating-point operation imme
0000E700  64 69 61 74 65 6C 79 20  61 66 74 65 72 20 69 74  20 68 61 73 20 62 65 65  6E 20 77 72 69 74 74 65  diately after it has been writte
0000E720  6E 20 62 79 20 61 6E 6F  74 68 65 72 20 66 61 64  64 2C 20 66 73 75 62 2C  20 6F 72 20 66 6D 75 6C  n by another fadd, fsub, or fmul
0000E740  20 63 61 75 73 65 73 20  61 20 32 20 63 79 63 6C  65 20 64 65 6C 61 79 2E  20 49 66 20 69 6E 73 74   causes a 2 cycle delay. If inst
0000E760  72 75 63 74 69 6F 6E 73  20 61 72 65 20 69 6E 73  65 72 74 65 64 20 62 65  74 77 65 65 6E 20 74 68  ructions are inserted between th
0000E780  65 73 65 20 74 77 6F 2C  20 74 68 65 6E 20 6C 61  74 65 6E 63 79 20 61 6E  64 20 61 20 70 6F 74 65  ese two, then latency and a pote
0000E7A0  6E 74 69 61 6C 20 73 74  61 6C 6C 20 63 61 6E 20  62 65 20 68 69 64 64 65  6E 2E 0D 0A 0D 0A 34 2E  ntial stall can be hidden.4.
0000E7C0  20 54 68 65 72 65 20 61  72 65 20 6D 75 6C 74 69  2D 63 79 63 6C 65 20 66  6C 6F 61 74 69 6E 67 2D   There are multi-cycle floating-
0000E7E0  70 6F 69 6E 74 20 69 6E  73 74 72 75 63 74 69 6F  6E 73 20 28 66 64 69 76  20 61 6E 64 20 66 73 71  point instructions (fdiv and fsq
0000E800  72 74 29 20 74 68 61 74  20 65 78 65 63 75 74 65  20 69 6E 20 74 68 65 20  66 6C 6F 61 74 69 6E 67  rt) that execute in the floating
0000E820  2D 70 6F 69 6E 74 20 75  6E 69 74 20 70 69 70 65  2E 20 57 68 69 6C 65 20  65 78 65 63 75 74 69 6E  -point unit pipe. While executin
0000E840  67 20 74 68 65 73 65 20  69 6E 73 74 72 75 63 74  69 6F 6E 73 20 69 6E 20  74 68 65 20 66 6C 6F 61  g these instructions in the floa
0000E860  74 69 6E 67 2D 70 6F 69  6E 74 20 75 6E 69 74 20  70 69 70 65 2C 20 69 6E  74 65 67 65 72 20 69 6E  ting-point unit pipe, integer in
0000E880  73 74 72 75 63 74 69 6F  6E 73 20 63 61 6E 20 62  65 20 65 78 65 63 75 74  65 64 20 69 6E 20 70 61  structions can be executed in pa
0000E8A0  72 61 6C 6C 65 6C 2E 20  45 6D 69 74 74 69 6E 67  20 61 20 6E 75 6D 62 65  72 20 6F 66 20 69 6E 74  rallel. Emitting a number of int
0000E8C0  65 67 65 72 20 69 6E 73  74 72 75 63 74 69 6F 6E  73 20 61 66 74 65 72 20  73 75 63 68 20 61 6E 20  eger instructions after such an 
0000E8E0  69 6E 73 74 72 75 63 74  69 6F 6E 20 77 69 6C 6C  20 6B 65 65 70 20 74 68  65 20 69 6E 74 65 67 65  instruction will keep the intege
0000E900  72 20 65 78 65 63 75 74  69 6F 6E 20 75 6E 69 74  73 20 62 75 73 79 20 28  74 68 65 20 65 78 61 63  r execution units busy (the exac
0000E920  74 20 6E 75 6D 62 65 72  20 6F 66 20 69 6E 73 74  72 75 63 74 69 6F 6E 73  20 64 65 70 65 6E 64 73  t number of instructions depends
0000E940  20 6F 6E 20 74 68 65 20  66 6C 6F 61 74 69 6E 67  2D 70 6F 69 6E 74 20 69  6E 73 74 72 75 63 74 69   on the floating-point instructi
0000E960  6F 6E 27 73 20 63 79 63  6C 65 20 63 6F 75 6E 74  29 2E 0D 0A 0D 0A 35 2E  20 54 68 65 20 69 6E 74  on's cycle count).5. The int
0000E980  65 67 65 72 20 6D 75 6C  74 69 70 6C 79 20 6F 70  65 72 61 74 69 6F 6E 73  2C 20 6D 75 6C 20 61 6E  eger multiply operations, mul an
0000E9A0  64 20 69 6D 75 6C 2C 20  61 72 65 20 65 78 65 63  75 74 65 64 20 69 6E 20  74 68 65 20 66 6C 6F 61  d imul, are executed in the floa
0000E9C0  74 69 6E 67 2D 70 6F 69  6E 74 20 75 6E 69 74 20  73 6F 20 74 68 65 73 65  20 69 6E 73 74 72 75 63  ting-point unit so these instruc
0000E9E0  74 69 6F 6E 73 20 63 61  6E 6E 6F 74 20 62 65 20  65 78 65 63 75 74 65 64  20 69 6E 20 70 61 72 61  tions cannot be executed in para
0000EA00  6C 6C 65 6C 20 77 69 74  68 20 61 20 66 6C 6F 61  74 69 6E 67 2D 70 6F 69  6E 74 20 69 6E 73 74 72  llel with a floating-point instr
0000EA20  75 63 74 69 6F 6E 2E 0D  0A 0D 0A 36 2E 20 41 20  66 6C 6F 61 74 69 6E 67  2D 70 6F 69 6E 74 20 6D  uction.6. A floating-point m
0000EA40  75 6C 74 69 70 6C 79 20  69 6E 73 74 72 75 63 74  69 6F 6E 20 28 66 6D 75  6C 29 20 64 65 6C 61 79  ultiply instruction (fmul) delay
0000EA60  73 20 66 6F 72 20 6F 6E  65 20 63 79 63 6C 65 20  69 66 20 74 68 65 20 69  6D 6D 65 64 69 61 74 65  s for one cycle if the immediate
0000EA80  6C 79 20 70 72 65 63 65  64 69 6E 67 20 63 79 63  6C 65 20 65 78 65 63 75  74 65 64 20 61 6E 20 66  ly preceding cycle executed an f
0000EAA0  6D 75 6C 20 6F 72 20 61  6E 20 66 6D 75 6C 20 2F  20 66 78 63 68 20 70 61  69 72 2E 20 54 68 65 20  mul or an fmul / fxch pair. The 
0000EAC0  6D 75 6C 74 69 70 6C 69  65 72 20 63 61 6E 20 6F  6E 6C 79 20 61 63 63 65  70 74 20 61 20 6E 65 77  multiplier can only accept a new
0000EAE0  20 70 61 69 72 20 6F 66  20 6F 70 65 72 61 6E 64  73 20 65 76 65 72 79 20  6F 74 68 65 72 20 63 79   pair of operands every other cy
0000EB00  63 6C 65 2E 0D 0A 0D 0A  37 2E 20 54 72 61 6E 73  63 65 6E 64 65 6E 74 61  6C 20 6F 70 65 72 61 74  cle.7. Transcendental operat
0000EB20  69 6F 6E 73 20 65 78 65  63 75 74 65 20 69 6E 20  74 68 65 20 55 20 70 69  70 65 20 61 6E 64 20 6E  ions execute in the U pipe and n
0000EB40  6F 74 68 69 6E 67 20 63  61 6E 20 62 65 20 6F 76  65 72 6C 61 70 70 65 64  20 77 69 74 68 20 74 68  othing can be overlapped with th
0000EB60  65 6D 2C 20 73 6F 20 61  6E 20 69 6E 74 65 67 65  72 20 69 6E 73 74 72 75  63 74 69 6F 6E 20 66 6F  em, so an integer instruction fo
0000EB80  6C 6C 6F 77 69 6E 67 20  73 75 63 68 20 61 6E 20  69 6E 73 74 72 75 63 74  69 6F 6E 20 77 69 6C 6C  llowing such an instruction will
0000EBA0  20 77 61 69 74 20 75 6E  74 69 6C 20 74 68 61 74  20 69 6E 73 74 72 75 63  74 69 6F 6E 20 63 6F 6D   wait until that instruction com
0000EBC0  70 6C 65 74 65 73 2E 0D  0A 0D 0A 38 2E 20 46 6C  6F 61 74 69 6E 67 2D 70  6F 69 6E 74 20 6F 70 65  pletes.8. Floating-point ope
0000EBE0  72 61 74 69 6F 6E 73 20  74 68 61 74 20 74 61 6B  65 20 69 6E 74 65 67 65  72 20 6F 70 65 72 61 6E  rations that take integer operan
0000EC00  64 73 20 28 66 69 61 64  64 20 6F 72 20 66 69 73  75 62 20 2E 2E 29 20 73  68 6F 75 6C 64 20 62 65  ds (fiadd or fisub ..) should be
0000EC20  20 61 76 6F 69 64 65 64  2E 20 54 68 65 73 65 20  69 6E 73 74 72 75 63 74  69 6F 6E 73 20 73 68 6F   avoided. These instructions sho
0000EC40  75 6C 64 20 62 65 20 73  70 6C 69 74 20 69 6E 74  6F 20 74 77 6F 20 69 6E  73 74 72 75 63 74 69 6F  uld be split into two instructio
0000EC60  6E 73 3A 20 66 69 6C 64  20 61 6E 64 20 61 20 66  6C 6F 61 74 69 6E 67 2D  70 6F 69 6E 74 20 6F 70  ns: fild and a floating-point op
0000EC80  65 72 61 74 69 6F 6E 2E  20 54 68 65 20 6E 75 6D  62 65 72 20 6F 66 20 63  79 63 6C 65 73 20 62 65  eration. The number of cycles be
0000ECA0  66 6F 72 65 20 61 6E 6F  74 68 65 72 20 69 6E 73  74 72 75 63 74 69 6F 6E  20 63 61 6E 20 62 65 20  fore another instruction can be 
0000ECC0  69 73 73 75 65 64 20 28  74 68 72 6F 75 67 68 70  75 74 29 20 66 6F 72 20  66 69 61 64 64 20 69 73  issued (throughput) for fiadd is
0000ECE0  20 34 2C 20 77 68 69 6C  65 20 66 6F 72 20 66 69  6C 64 20 61 6E 64 20 73  69 6D 70 6C 65 20 66 6C   4, while for fild and simple fl
0000ED00  6F 61 74 69 6E 67 2D 70  6F 69 6E 74 20 6F 70 20  69 74 20 69 73 20 31 2E  0D 0A 0D 0A 0D 0A 45 78  oating-point op it is 1.Ex
0000ED20  61 6D 70 6C 65 3A 0D 0A  0D 0A 43 6F 6D 70 6C 65  78 20 49 6E 73 74 72 75  63 74 69 6F 6E 73 20 20  ample:Complex Instructions  
0000ED40  20 20 20 20 20 20 20 20  42 65 74 74 65 72 20 66  6F 72 20 50 6F 74 65 6E  74 69 61 6C 20 4F 76 65          Better for Potential Ove
0000ED60  72 6C 61 70 0D 0A 0D 0A  66 69 61 64 64 20 20 5B  65 62 70 5D 20 3B 20 34  20 20 20 20 20 20 20 20  rlapfiadd  [ebp] ; 4        
0000ED80  20 20 20 20 20 20 66 69  6C 64 20 20 20 5B 65 62  70 5D 20 20 3B 20 31 0D  0A 20 20 20 20 20 20 20        fild   [ebp]  ; 1       
0000EDA0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 66  61 64 64 70 20 20 73 74                         faddp  st
0000EDC0  28 6C 29 20 20 3B 20 32  0D 0A 0D 0A 55 73 69 6E  67 20 74 68 65 20 66 69  6C 64 20 2D 20 66 61 64  (l)  ; 2Using the fild - fad
0000EDE0  64 70 20 69 6E 73 74 72  75 63 74 69 6F 6E 73 20  79 69 65 6C 64 73 20 32  20 66 72 65 65 20 63 79  dp instructions yields 2 free cy
0000EE00  63 6C 65 73 20 66 6F 72  20 65 78 65 63 75 74 69  6E 67 20 6F 74 68 65 72  20 69 6E 73 74 72 75 63  cles for executing other instruc
0000EE20  74 69 6F 6E 73 2E 0D 0A  0D 0A 39 2E 20 54 68 65  20 66 73 74 73 77 20 69  6E 73 74 72 75 63 74 69  tions.9. The fstsw instructi
0000EE40  6F 6E 20 74 68 61 74 20  75 73 75 61 6C 6C 79 20  61 70 70 65 61 72 73 20  61 66 74 65 72 20 61 20  on that usually appears after a 
0000EE60  66 6C 6F 61 74 69 6E 67  2D 70 6F 69 6E 74 20 63  6F 6D 70 61 72 69 73 6F  6E 20 69 6E 73 74 72 75  floating-point comparison instru
0000EE80  63 74 69 6F 6E 20 28 66  63 6F 6D 2C 20 66 63 6F  6D 70 2C 20 66 63 6F 6D  70 70 29 20 64 65 6C 61  ction (fcom, fcomp, fcompp) dela
0000EEA0  79 73 20 66 6F 72 20 33  20 63 79 63 6C 65 73 2E  20 4F 74 68 65 72 20 69  6E 73 74 72 75 63 74 69  ys for 3 cycles. Other instructi
0000EEC0  6F 6E 73 20 6D 61 79 20  62 65 20 69 6E 73 65 72  74 65 64 20 61 66 74 65  72 20 74 68 65 20 63 6F  ons may be inserted after the co
0000EEE0  6D 70 61 72 69 73 6F 6E  20 69 6E 73 74 72 75 63  74 69 6F 6E 20 69 6E 20  6F 72 64 65 72 20 74 6F  mparison instruction in order to
0000EF00  20 68 69 64 65 20 74 68  65 20 6C 61 74 65 6E 63  79 2E 0D 0A 0D 0A 31 30  2E 20 4D 6F 76 69 6E 67   hide the latency.10. Moving
0000EF20  20 61 20 66 6C 6F 61 74  69 6E 67 2D 70 6F 69 6E  74 20 6D 65 6D 6F 72 79  2F 69 6D 6D 65 64 69 61   a floating-point memory/immedia
0000EF40  74 65 20 74 6F 20 6D 65  6D 6F 72 79 20 73 68 6F  75 6C 64 20 62 65 20 64  6F 6E 65 20 62 79 20 69  te to memory should be done by i
0000EF60  6E 74 65 67 65 72 20 6D  6F 76 65 73 20 28 69 66  20 70 72 65 63 69 73 69  6F 6E 20 63 6F 6E 76 65  nteger moves (if precision conve
0000EF80  72 73 69 6F 6E 20 69 73  20 6E 6F 74 20 6E 65 65  64 65 64 29 20 69 6E 73  74 65 61 64 20 6F 66 20  rsion is not needed) instead of 
0000EFA0  64 6F 69 6E 67 20 66 6C  64 20 2D 20 66 73 74 70  2E 0D 0A 0D 0A 45 78 61  6D 70 6C 65 73 20 66 6F  doing fld - fstp.Examples fo
0000EFC0  72 20 66 6C 6F 61 74 69  6E 67 2D 70 6F 69 6E 74  20 6D 6F 76 65 73 3A 0D  0A 0D 0A 64 6F 75 62 6C  r floating-point moves:doubl
0000EFE0  65 20 70 72 65 63 69 73  69 6F 6E 3A 20 34 20 76  73 2E 20 32 20 63 79 63  6C 65 73 0D 0A 0D 0A 20  e precision: 4 vs. 2 cycles 
0000F000  20 20 20 20 20 20 20 66  6C 64 20 20 5B 65 62 70  5D 20 20 20 20 20 3B 20  31 20 20 20 20 20 20 20         fld  [ebp]     ; 1       
0000F020  20 20 20 20 6D 6F 76 20  20 65 61 78 2C 20 5B 65  62 70 5D 20 20 20 20 20  20 20 20 3B 20 31 0D 0A      mov  eax, [ebp]        ; 1
0000F040  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3B  20 32 20 20 20 20 20 20                         ; 2      
0000F060  20 20 20 20 20 6D 6F 76  20 20 65 64 78 2C 20 5B  65 62 70 2B 34 5D 20 20  20 20 20 20 3B 20 31 0D       mov  edx, [ebp+4]      ; 1
0000F080  0A 20 20 20 20 20 20 20  20 66 73 74 70 20 5B 65  64 69 5D 20 20 20 20 20  3B 20 33 2C 34 20 20 20          fstp [edi]     ; 3,4   
0000F0A0  20 20 20 20 20 20 6D 6F  76 20 20 5B 65 64 69 5D  2C 20 65 61 78 20 20 20  20 20 20 20 20 3B 20 32        mov  [edi], eax        ; 2
0000F0C0  0D 0A 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20                                
0000F0E0  20 20 20 20 20 20 20 6D  6F 76 20 20 5B 65 64 69  2B 34 5D 2C 20 65 64 78  20 20 20 20 20 20 3B 20         mov  [edi+4], edx      ; 
0000F100  32 0D 0A 0D 0A 20 20 20  20 73 69 6E 67 6C 65 20  70 72 65 63 69 73 69 6F  6E 3A 20 34 20 76 73 2E  2    single precision: 4 vs.
0000F120  20 32 20 63 79 63 6C 65  73 0D 0A 0D 0A 20 20 20  20 20 20 20 20 20 20 20  20 66 6C 64 20 20 5B 65   2 cycles            fld  [e
0000F140  62 70 5D 20 20 20 20 20  3B 20 31 20 20 20 20 20  20 20 20 20 20 20 6D 6F  76 20 20 65 61 78 2C 20  bp]     ; 1           mov  eax, 
0000F160  5B 65 62 70 5D 20 20 20  20 20 20 20 20 3B 20 31  0D 0A 20 20 20 20 20 20  20 20 20 20 20 20 20 20  [ebp]        ; 1              
0000F180  20 20 20 20 20 20 20 20  20 3B 20 32 20 20 20 20  20 20 20 20 20 20 20 6D  6F 76 20 20 5B 65 64 69           ; 2           mov  [edi
0000F1A0  5D 2C 20 65 61 78 20 20  20 20 20 20 20 20 3B 20  32 0D 0A 20 20 20 20 20  20 20 20 66 73 74 70 20  ], eax        ; 2        fstp 
0000F1C0  5B 65 64 69 5D 20 20 20  20 20 3B 20 33 2C 34 0D  0A 0D 0A 54 68 69 73 20  6F 70 74 69 6D 69 7A 61  [edi]     ; 3,4This optimiza
0000F1E0  74 69 6F 6E 20 61 6C 73  6F 20 61 70 70 6C 69 65  73 20 74 6F 20 74 68 65  20 49 6E 74 65 6C 34 38  tion also applies to the Intel48
0000F200  36 20 70 72 6F 63 65 73  73 6F 72 2E 0D 0A 0D 0A  31 31 2E 20 54 72 61 6E  73 63 65 6E 64 65 6E 74  6 processor.11. Transcendent
0000F220  61 6C 20 6F 70 65 72 61  74 69 6F 6E 73 20 65 78  65 63 75 74 65 20 6F 6E  20 74 68 65 20 50 65 6E  al operations execute on the Pen
0000F240  74 69 75 6D 20 70 72 6F  63 65 73 73 6F 72 20 6D  75 63 68 20 66 61 73 74  65 72 20 74 68 61 6E 20  tium processor much faster than 
0000F260  6F 6E 20 74 68 65 20 49  6E 74 65 6C 34 38 36 20  70 72 6F 63 65 73 73 6F  72 2E 20 20 49 74 20 6D  on the Intel486 processor.  It m
0000F280  61 79 20 62 65 20 77 6F  72 74 68 77 68 69 6C 65  20 69 6E 6C 69 6E 69 6E  67 20 73 6F 6D 65 20 6F  ay be worthwhile inlining some o
0000F2A0  66 20 74 68 65 73 65 20  6D 61 74 68 20 6C 69 62  72 61 72 79 20 63 61 6C  6C 73 20 62 65 63 61 75  f these math library calls becau
0000F2C0  73 65 20 6F 66 20 74 68  65 20 66 61 63 74 20 74  68 61 74 20 74 68 65 20  63 61 6C 6C 20 61 6E 64  se of the fact that the call and
0000F2E0  20 70 72 6F 6C 6F 67 75  65 2F 65 70 69 6C 6F 67  75 65 20 6F 76 65 72 68  65 61 64 20 69 6E 76 6F   prologue/epilogue overhead invo
0000F300  6C 76 65 64 20 77 69 74  68 20 74 68 65 20 6C 69  62 72 61 72 79 20 63 61  6C 6C 73 20 69 73 20 6E  lved with the library calls is n
0000F320  6F 20 6C 6F 6E 67 65 72  20 6E 65 67 6C 69 67 69  62 6C 65 2E 20 20 45 6D  75 6C 61 74 69 6E 67 20  o longer negligible.  Emulating 
0000F340  74 68 65 73 65 20 6F 70  65 72 61 74 69 6F 6E 73  20 69 6E 20 73 6F 66 74  77 61 72 65 20 77 69 6C  these operations in software wil
0000F360  6C 20 6E 6F 74 20 62 65  20 66 61 73 74 65 72 20  74 68 61 6E 20 74 68 65  20 68 61 72 64 77 61 72  l not be faster than the hardwar
0000F380  65 20 75 6E 6C 65 73 73  20 61 63 63 75 72 61 63  79 20 69 73 20 73 61 63  72 69 66 69 63 65 64 2E  e unless accuracy is sacrificed.
0000F3A0  0D 0A 0D 0A 31 32 2E 20  49 6E 74 65 67 65 72 20  69 6E 73 74 72 75 63 74  69 6F 6E 73 20 67 65 6E  12. Integer instructions gen
0000F3C0  65 72 61 6C 6C 79 20 6F  76 65 72 6C 61 70 20 77  69 74 68 20 74 68 65 20  66 6C 6F 61 74 69 6E 67  erally overlap with the floating
0000F3E0  2D 70 6F 69 6E 74 20 6F  70 65 72 61 74 69 6F 6E  73 20 65 78 63 65 70 74  20 77 68 65 6E 20 74 68  -point operations except when th
0000F400  65 20 6C 61 73 74 0D 0A  66 6C 6F 61 74 69 6E 67  2D 70 6F 69 6E 74 20 6F  70 65 72 61 74 69 6F 6E  e lastfloating-point operation
0000F420  20 77 61 73 20 66 78 63  68 2E 20 49 6E 20 74 68  69 73 20 63 61 73 65 20  74 68 65 72 65 20 69 73   was fxch. In this case there is
0000F440  20 61 20 6F 6E 65 20 63  79 63 6C 65 20 64 65 6C  61 79 2E 0D 0A 0D 0A 09  55 20 70 69 70 65 20 20   a one cycle delay.U pipe  
0000F460  20 09 20 20 20 20 20 20  20 20 09 56 20 20 70 69  70 65 09 09 0D 0A 0D 0A  09 66 61 64 64 20 20 20           V  pipefadd   
0000F480  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 66  78 63 68 20 20 20 20 20  20 20 20 20 20 20 20 20                 fxch             
0000F4A0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 3B 20  31 0D 0A 20 20 20 20 20  20 20 20 20 20 20 20 20                ; 1             
0000F4C0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20                                  
0000F4E0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 3B  20 32 20 66 78 63 68 20  64 65 6C 61 79 0D 0A 09                 ; 2 fxch delay
0000F500  6D 6F 76 20 20 20 65 61  78 2C 20 31 20 20 20 20  20 20 20 20 20 20 69 6E  63 20 20 20 20 20 20 20  mov   eax, 1          inc       
0000F520  65 64 78 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 3B 20 33  0D 0A 20 0D 0A 0C 37 2E  edx                  ; 3 7.
0000F540  20 53 75 6D 6D 61 72 79  0D 0A 0D 0A 54 68 65 20  66 6F 6C 6C 6F 77 69 6E  67 20 74 61 62 6C 65 73   SummaryThe following tables
0000F560  20 73 75 6D 6D 61 72 69  7A 65 20 74 68 65 20 6D  69 63 72 6F 20 61 72 63  68 69 74 65 63 74 75 72   summarize the micro architectur
0000F580  65 20 64 69 66 66 65 72  65 6E 63 65 73 20 61 6D  6F 6E 67 20 49 6E 74 65  6C 33 38 36 2C 20 49 6E  e differences among Intel386, In
0000F5A0  74 65 6C 34 38 36 20 61  6E 64 20 50 65 6E 74 69  75 6D 20 70 72 6F 63 65  73 73 6F 72 73 20 61 6E  tel486 and Pentium processors an
0000F5C0  64 20 74 68 65 20 63 6F  72 72 65 73 70 6F 6E 64  69 6E 67 20 63 6F 64 65  20 67 65 6E 65 72 61 74  d the corresponding code generat
0000F5E0  69 6F 6E 20 63 6F 6E 73  69 64 65 72 61 74 69 6F  6E 2E 20 49 74 20 69 73  20 70 6F 73 73 69 62 6C  ion consideration. It is possibl
0000F600  65 20 74 6F 20 64 65 72  69 76 65 20 61 20 73 65  74 20 6F 66 20 63 6F 64  65 20 67 65 6E 65 72 61  e to derive a set of code genera
0000F620  74 69 6F 6E 20 73 74 72  61 74 65 67 69 65 73 20  74 68 61 74 20 70 72 6F  76 69 64 65 20 74 68 65  tion strategies that provide the
0000F640  20 6F 70 74 69 6D 61 6C  20 70 65 72 66 6F 72 6D  61 6E 63 65 20 61 63 72  6F 73 73 20 74 68 65 20   optimal performance across the 
0000F660  76 61 72 69 6F 75 73 20  6D 65 6D 62 65 72 73 20  6F 66 20 74 68 65 20 49  6E 74 65 6C 33 38 36 20  various members of the Intel386 
0000F680  70 72 6F 63 65 73 73 6F  72 20 66 61 6D 69 6C 79  20 65 78 63 65 70 74 20  66 6F 72 20 74 68 65 20  processor family except for the 
0000F6A0  75 73 65 20 6F 66 20 46  58 43 48 20 74 6F 20 6D  61 78 69 6D 69 7A 65 20  74 68 65 20 50 65 6E 74  use of FXCH to maximize the Pent
0000F6C0  69 75 6D 20 70 72 6F 63  65 73 73 6F 72 20 66 6C  6F 61 74 69 6E 67 2D 70  6F 69 6E 74 20 74 68 72  ium processor floating-point thr
0000F6E0  6F 75 67 68 70 75 74 20  20 77 68 69 63 68 20 63  61 6E 20 62 65 20 69 6D  70 6C 65 6D 65 6E 74 65  oughput  which can be implemente
0000F700  64 20 75 6E 64 65 72 20  61 20 75 73 65 72 2D 64  69 72 65 63 74 65 64 20  6F 70 74 69 6F 6E 2E 0D  d under a user-directed option.
0000F720  0A 0D 0A 0D 07 49 6E 74  65 6C 33 38 36 54 4D 20  50 72 6F 63 65 73 73 6F  72 0D 07 49 6E 74 65 6C  Intel386TM ProcessorIntel
0000F740  34 38 36 54 4D 20 20 50  72 6F 63 65 73 73 6F 72  0D 07 50 65 6E 74 69 75  6D 54 4D 20 20 50 72 6F  486TM  ProcessorPentiumTM  Pro
0000F760  63 65 73 73 6F 72 0D 07  0D 07 43 61 63 68 65 0D  07 4E 6F 6E 65 0D 07 38  4B 20 43 6F 6D 62 69 6E  cessorCacheNone8K Combin
0000F780  65 64 0D 07 38 4B 20 43  6F 64 65 2C 20 38 4B 20  44 61 74 61 0D 07 0D 07  50 72 65 66 65 74 63 68  ed8K Code, 8K DataPrefetch
0000F7A0  0D 07 34 78 34 62 20 66  69 6C 6C 65 64 20 62 79  20 65 78 74 65 72 6E 61  6C 20 6D 65 6D 6F 72 79  4x4b filled by external memory
0000F7C0  20 61 63 63 65 73 73 0D  07 32 78 36 62 20 73 68  61 72 65 64 20 62 75 73  20 74 6F 20 63 61 63 68   access2x6b shared bus to cach
0000F7E0  65 0D 07 34 78 33 32 62  20 70 72 69 76 61 74 65  20 62 75 73 20 74 6F 20  63 61 63 68 65 0D 07 0D  e4x32b private bus to cache
0000F800  07 44 65 63 6F 64 65 72  0D 07 33 20 64 65 65 70  20 64 65 63 6F 64 65 64  20 46 49 46 4F 0D 07 70  Decoder3 deep decoded FIFOp
0000F820  61 72 74 20 6F 66 20 63  6F 72 65 20 70 69 70 65  6C 69 6E 65 0D 07 70 61  72 74 20 6F 66 20 63 6F  art of core pipelinepart of co
0000F840  72 65 20 70 69 70 65 6C  69 6E 65 0D 07 0D 07 43  6F 72 65 0D 07 73 6F 6D  65 20 69 6E 73 74 72 75  re pipelineCoresome instru
0000F860  63 74 69 6F 6E 20 6F 76  65 72 6C 61 70 0D 07 35  20 73 74 61 67 65 73 20  70 69 70 65 6C 69 6E 65  ction overlap5 stages pipeline
0000F880  0D 07 35 20 73 74 61 67  65 73 20 70 69 70 65 6C  69 6E 65 20 26 20 73 75  70 65 72 73 63 61 6C 61  5 stages pipeline & superscala
0000F8A0  72 0D 07 0D 07 4D 61 74  68 0D 07 43 6F 2D 70 72  6F 63 65 73 73 6F 72 0D  07 4F 6E 2D 43 68 69 70  rMathCo-processorOn-Chip
0000F8C0  0D 07 4F 6E 2D 43 68 69  70 20 26 20 70 69 70 65  6C 69 6E 65 64 0D 07 0D  07 0D 0A 20 0D 0A 50 72  On-Chip & pipelined Pr
0000F8E0  6F 63 65 73 73 6F 72 20  43 68 61 72 61 63 74 65  72 69 73 74 69 63 73 0D  07 4F 70 74 69 6D 69 7A  ocessor CharacteristicsOptimiz
0000F900  61 74 69 6F 6E 73 0D 07  49 6E 74 65 6C 33 38 36  20 50 72 6F 63 65 73 73  6F 72 0D 07 49 6E 74 65  ationsIntel386 ProcessorInte
0000F920  6C 34 38 36 20 50 72 6F  63 65 73 73 6F 72 0D 07  50 65 6E 74 69 75 6D 20  50 72 6F 63 65 73 73 6F  l486 ProcessorPentium Processo
0000F940  72 0D 07 0D 07 43 61 63  68 65 0D 07 49 6E 74 65  72 6C 65 61 76 65 20 6D  65 6D 20 77 69 74 68 20  rCacheInterleave mem with 
0000F960  6E 6F 6E 2D 6D 65 6D 0D  07 64 6F 6E 27 74 20 63  61 72 65 0D 07 49 6E 74  65 72 6C 65 61 76 65 20  non-memdon't careInterleave 
0000F980  69 66 20 34 20 63 6F 6E  73 65 63 75 74 69 76 65  0D 07 64 6F 6E 27 74 20  63 61 72 65 0D 07 0D 07  if 4 consecutivedon't care
0000F9A0  50 72 65 66 65 74 63 68  65 72 0D 07 41 6C 69 67  6E 6D 65 6E 74 0D 07 30  2D 4D 4F 44 2D 34 0D 07  PrefetcherAlignment0-MOD-4
0000F9C0  30 2D 4D 4F 44 2D 31 36  0D 07 64 6F 6E 27 74 20  63 61 72 65 0D 07 0D 07  50 69 70 65 6C 69 6E 65  0-MOD-16don't carePipeline
0000F9E0  64 20 45 78 65 63 75 74  69 6F 6E 20 63 6F 72 65  0D 07 42 61 73 65 20 56  73 20 69 6E 64 65 78 0D  d Execution coreBase Vs index
0000FA00  07 64 6F 6E 27 74 20 63  61 72 65 0D 07 75 73 65  20 62 61 73 65 0D 07 64  6F 6E 27 74 20 63 61 72  don't careuse basedon't car
0000FA20  65 0D 07 0D 07 0D 07 41  76 6F 69 64 20 41 47 49  0D 07 64 6F 6E 27 74 20  63 61 72 65 0D 07 6E 65  eAvoid AGIdon't carene
0000FA40  78 74 20 69 6E 73 74 72  0D 07 6E 65 78 74 20 33  20 69 6E 73 74 72 0D 07  0D 07 0D 07 49 6E 73 74  xt instrnext 3 instrInst
0000FA60  72 75 63 74 69 6F 6E 20  73 65 6C 65 63 74 69 6F  6E 0D 07 31 20 63 6C 6B  20 70 65 6E 61 6C 74 79  ruction selection1 clk penalty
0000FA80  0D 07 73 68 6F 72 74 20  69 6E 73 74 72 0D 07 73  68 6F 72 74 20 69 6E 73  74 72 0D 07 0D 07 53 75  short instrshort instrSu
0000FAA0  70 65 72 73 63 61 6C 61  72 0D 07 50 61 69 72 69  6E 67 0D 07 64 6F 6E 27  74 20 63 61 72 65 0D 07  perscalarPairingdon't care
0000FAC0  64 6F 6E 27 74 20 63 61  72 65 0D 07 70 61 69 72  0D 07 0D 07 50 69 70 65  6C 69 6E 65 64 20 46 50  don't carepairPipelined FP
0000FAE0  55 20 77 69 74 68 20 46  58 43 48 0D 07 6D 6F 72  65 20 73 63 68 65 64 75  6C 69 6E 67 0D 07 31 38  U with FXCHmore scheduling18
0000FB00  20 63 6C 6B 20 70 65 6E  61 6C 74 79 0D 07 34 20  63 6C 6B 20 70 65 6E 61  6C 74 79 0D 07 73 63 68   clk penalty4 clk penaltysch
0000FB20  65 64 75 6C 65 0D 07 0D  07 0D 0A 0D 0A 52 65 63  6F 6D 6D 65 6E 64 61 74  69 6F 6E 73 20 66 6F 72  eduleRecommendations for
0000FB40  20 42 6C 65 6E 64 65 64  3A 0D 0A 0D 0A 31 2E 20  49 6E 74 65 72 6C 65 61  76 65 20 6D 65 6D 20 77   Blended:1. Interleave mem w
0000FB60  69 74 68 20 6E 6F 6E 2D  6D 65 6D 3A 20 64 6F 20  6E 6F 74 68 69 6E 67 0D  0A 0D 0A 32 2E 20 43 6F  ith non-mem: do nothing2. Co
0000FB80  64 65 20 61 6C 69 67 6E  6D 65 6E 74 3A 20 30 2D  6D 6F 64 2D 31 36 20 6F  6E 20 6C 6F 6F 70 0D 0A  de alignment: 0-mod-16 on loop
0000FBA0  0D 0A 33 2E 20 42 61 73  65 20 56 73 20 69 6E 64  65 78 3A 20 75 73 65 20  62 61 73 65 0D 0A 0D 0A  3. Base Vs index: use base
0000FBC0  34 2E 20 41 76 6F 69 64  20 41 47 49 3A 20 6E 65  78 74 20 33 20 69 6E 73  74 72 75 63 74 69 6F 6E  4. Avoid AGI: next 3 instruction
0000FBE0  73 0D 0A 0D 0A 35 2E 20  49 6E 73 74 72 75 63 74  69 6F 6E 20 73 65 6C 65  63 74 69 6F 6E 3A 20 73  s5. Instruction selection: s
0000FC00  68 6F 72 74 20 69 6E 73  74 72 75 63 74 69 6F 6E  73 20 73 65 71 75 65 6E  63 65 0D 0A 0D 0A 36 2E  hort instructions sequence6.
0000FC20  20 50 61 69 72 69 6E 67  3A 20 70 61 69 72 0D 0A  0D 0A 37 2E 20 46 50 20  73 63 68 65 64 75 6C 69   Pairing: pair7. FP scheduli
0000FC40  6E 67 3A 20 61 76 6F 69  64 20 46 58 43 48 0D 0A  0C 41 70 70 65 6E 64 69  78 20 13 52 65 66 20 5C  ng: avoid FXCHAppendix Ref \
0000FC60  2A 20 63 68 61 72 66 6F  72 6D 61 74 20 43 68 61  70 4E 75 6D 14 41 15 0B  13 43 68 61 70 74 69 74  * charformat ChapNumA§Chaptit
0000FC80  6C 65 20 5C 2A 20 63 68  61 72 66 6F 72 6D 61 74  14 49 6E 73 74 72 75 63  74 69 6F 6E 20 50 61 69  le \* charformatInstruction Pai
0000FCA0  72 69 6E 67 20 53 75 6D  6D 61 72 79 15 0D 0A 0D  0A 0D 0A 54 68 65 20 66  6F 6C 6C 6F 77 69 6E 67  ring Summary§The following
0000FCC0  20 61 62 62 72 65 76 69  61 74 69 6F 6E 73 20 61  72 65 20 75 73 65 64 20  69 6E 20 74 68 65 20 50   abbreviations are used in the P
0000FCE0  61 69 72 69 6E 67 20 63  6F 6C 75 6D 6E 20 6F 66  20 74 68 65 20 69 6E 74  65 67 65 72 20 74 61 62  airing column of the integer tab
0000FD00  6C 65 20 69 6E 20 74 68  69 73 20 41 70 70 65 6E  64 69 78 3A 0D 0A 4E 50  09 97 20 4E 6F 74 20 70  le in this Appendix:NPù Not p
0000FD20  61 69 72 61 62 6C 65 2C  20 65 78 65 63 75 74 65  73 20 69 6E 20 55 20 70  69 70 65 0D 0A 50 55 09  airable, executes in U pipePU
0000FD40  97 20 50 61 69 72 61 62  6C 65 20 69 66 20 69 73  73 75 65 64 20 74 6F 20  55 20 70 69 70 65 0D 0A  ù Pairable if issued to U pipe
0000FD60  50 56 09 97 20 50 61 69  72 61 62 6C 65 20 69 66  20 69 73 73 75 65 64 20  74 6F 20 56 20 70 69 70  PVù Pairable if issued to V pip
0000FD80  65 0D 0A 55 56 09 97 20  50 61 69 72 61 62 6C 65  20 69 6E 20 65 69 74 68  65 72 20 70 69 70 65 0D  eUVù Pairable in either pipe
0000FDA0  0A 0D 0A 0D 0A 49 6E 20  74 68 65 20 66 6C 6F 61  74 69 6E 67 2D 70 6F 69  6E 74 20 74 61 62 6C 65  In the floating-point table
0000FDC0  20 69 6E 20 74 68 69 73  20 41 70 70 65 6E 64 69  78 3A 0D 0A 46 58 09 97  20 50 61 69 72 73 20 77   in this Appendix:FXù Pairs w
0000FDE0  69 74 68 20 46 58 43 48  0D 0A 4E 50 09 97 20 4E  6F 20 70 61 69 72 69 6E  67 2E 0D 0A 0D 0A 54 68  ith FXCHNPù No pairing.Th
0000FE00  65 20 49 2F 4F 20 69 6E  73 74 72 75 63 74 69 6F  6E 73 20 61 72 65 20 6E  6F 74 20 70 61 69 72 61  e I/O instructions are not paira
0000FE20  62 6C 65 2E 20 0D 0A 49  6E 74 65 67 65 72 20 49  6E 73 74 72 75 63 74 69  6F 6E 20 50 61 69 72 69  ble. Integer Instruction Pairi
0000FE40  6E 67 0D 0A 49 4E 53 54  52 55 43 54 49 4F 4E 09  46 4F 52 4D 41 54 0D 07  50 61 69 72 69 6E 67 0D  ngINSTRUCTIONFORMATPairing
0000FE60  07 0D 07 41 41 41 20 96  20 41 53 43 49 49 20 41  64 6A 75 73 74 20 61 66  74 65 72 20 41 64 64 69  AAA û ASCII Adjust after Addi
0000FE80  74 69 6F 6E 0D 07 4E 50  0D 07 0D 07 41 41 44 20  96 20 41 53 43 49 49 20  41 64 6A 75 73 74 20 41  tionNPAAD û ASCII Adjust A
0000FEA0  58 20 62 65 66 6F 72 65  20 44 69 76 69 73 69 6F  6E 0D 07 4E 50 0D 07 0D  07 41 41 4D 20 96 20 41  X before DivisionNPAAM û A
0000FEC0  53 43 49 49 20 41 64 6A  75 73 74 20 41 58 20 61  66 74 65 72 20 4D 75 6C  74 69 70 6C 79 0D 07 4E  SCII Adjust AX after MultiplyN
0000FEE0  50 0D 07 0D 07 41 41 53  20 96 20 41 53 43 49 49  20 41 64 6A 75 73 74 20  41 4C 20 61 66 74 65 72  PAAS û ASCII Adjust AL after
0000FF00  20 53 75 62 74 72 61 63  74 69 6F 6E 0D 07 4E 50  0D 07 0D 07 41 44 43 20  96 20 41 44 44 20 77 69   SubtractionNPADC û ADD wi
0000FF20  74 68 20 43 61 72 72 79  0D 07 50 55 0D 07 0D 07  41 44 44 20 96 20 41 64  64 0D 07 55 56 0D 07 0D  th CarryPUADD û AddUV
0000FF40  07 41 4E 44 20 96 20 4C  6F 67 69 63 61 6C 20 41  4E 44 0D 07 55 56 0D 07  0D 07 41 52 50 4C 20 96  AND û Logical ANDUVARPL û
0000FF60  20 41 64 6A 75 73 74 20  52 50 4C 20 46 69 65 6C  64 20 6F 66 20 53 65 6C  65 63 74 6F 72 0D 07 4E   Adjust RPL Field of SelectorN
0000FF80  50 0D 07 0D 07 42 4F 55  4E 44 20 96 20 43 68 65  63 6B 20 41 72 72 61 79  20 41 67 61 69 6E 73 74  PBOUND û Check Array Against
0000FFA0  20 42 6F 75 6E 64 73 0D  07 4E 50 0D 07 0D 07 42  53 46 20 96 20 42 69 74  20 53 63 61 6E 20 46 6F   BoundsNPBSF û Bit Scan Fo
0000FFC0  72 77 61 72 64 0D 07 4E  50 0D 07 0D 07 42 53 52  20 96 20 42 69 74 20 53  63 61 6E 20 52 65 76 65  rwardNPBSR û Bit Scan Reve
0000FFE0  72 73 65 0D 07 4E 50 0D  07 0D 07 42 53 57 41 50  20 96 20 42 79 74 65 20  53 77 61 70 0D 07 4E 50  rseNPBSWAP û Byte SwapNP
00010000  0D 07 0D 07 42 54 20 96  20 42 69 74 20 54 65 73  74 0D 07 4E 50 0D 07 0D  07 42 54 43 20 96 20 42  BT û Bit TestNPBTC û B
00010020  69 74 20 54 65 73 74 20  61 6E 64 20 43 6F 6D 70  6C 65 6D 65 6E 74 0D 07  4E 50 0D 07 0D 07 42 54  it Test and ComplementNPBT
00010040  52 20 96 20 42 69 74 20  54 65 73 74 20 61 6E 64  20 52 65 73 65 74 0D 07  4E 50 0D 07 0D 07 42 54  R û Bit Test and ResetNPBT
00010060  53 20 96 20 42 69 74 20  54 65 73 74 20 61 6E 64  20 53 65 74 0D 07 4E 50  0D 07 0D 07 43 41 4C 4C  S û Bit Test and SetNPCALL
00010080  20 96 20 43 61 6C 6C 20  50 72 6F 63 65 64 75 72  65 20 28 69 6E 20 73 61  6D 65 20 73 65 67 6D 65   û Call Procedure (in same segme
000100A0  6E 74 29 0D 07 0D 07 0D  07 A0 A0 A0 64 69 72 65  63 74 09 31 31 31 30 20  31 30 30 30 20 3A 20 66  nt)ááádirect1110 1000 : f
000100C0  75 6C 6C 20 64 69 73 70  6C 61 63 65 6D 65 6E 74  0D 07 50 56 0D 07 0D 07  A0 A0 A0 72 65 67 69 73  ull displacementPVáááregis
000100E0  74 65 72 20 69 6E 64 69  72 65 63 74 09 31 31 31  31 20 31 31 31 31 20 3A  20 31 31 20 30 31 30 20  ter indirect1111 1111 : 11 010 
00010100  72 65 67 0D 07 4E 50 0D  07 0D 07 A0 A0 A0 6D 65  6D 6F 72 79 20 69 6E 64  69 72 65 63 74 09 31 31  regNPááámemory indirect11
00010120  31 31 20 31 31 31 31 20  3A 20 6D 6F 64 20 30 31  30 20 72 2F 6D 0D 07 4E  50 0D 07 0D 07 43 41 4C  11 1111 : mod 010 r/mNPCAL
00010140  4C 20 96 20 43 61 6C 6C  20 50 72 6F 63 65 64 75  72 65 20 28 69 6E 20 6F  74 68 65 72 20 73 65 67  L û Call Procedure (in other seg
00010160  6D 65 6E 74 29 0D 07 4E  50 0D 07 0D 07 43 42 57  20 96 20 43 6F 6E 76 65  72 74 20 42 79 74 65 20  ment)NPCBW û Convert Byte 
00010180  74 6F 20 57 6F 72 64 20  0B 43 57 44 45 20 96 20  43 6F 6E 76 65 72 74 20  57 6F 72 64 20 74 6F 20  to Word CWDE û Convert Word to 
000101A0  44 6F 75 62 6C 65 77 6F  72 64 0D 07 4E 50 0D 07  0D 07 43 4C 43 20 96 20  43 6C 65 61 72 20 43 61  DoublewordNPCLC û Clear Ca
000101C0  72 72 79 20 46 6C 61 67  0D 07 4E 50 0D 07 0D 07  43 4C 44 20 96 20 43 6C  65 61 72 20 44 69 72 65  rry FlagNPCLD û Clear Dire
000101E0  63 74 69 6F 6E 20 46 6C  61 67 0D 07 4E 50 0D 07  0D 07 43 4C 49 20 96 20  43 6C 65 61 72 20 49 6E  ction FlagNPCLI û Clear In
00010200  74 65 72 72 75 70 74 20  46 6C 61 67 0D 07 4E 50  0D 07 0D 07 43 4C 54 53  20 96 20 43 6C 65 61 72  terrupt FlagNPCLTS û Clear
00010220  20 54 61 73 6B 2D 53 77  69 74 63 68 65 64 20 46  6C 61 67 20 69 6E 20 43  52 30 0D 07 4E 50 0D 07   Task-Switched Flag in CR0NP
00010240  0D 07 43 4D 43 20 96 20  43 6F 6D 70 6C 65 6D 65  6E 74 20 43 61 72 72 79  20 46 6C 61 67 0D 07 4E  CMC û Complement Carry FlagN
00010260  50 0D 07 0D 07 43 4D 50  20 96 20 43 6F 6D 70 61  72 65 20 54 77 6F 20 4F  70 65 72 61 6E 64 73 0D  PCMP û Compare Two Operands
00010280  07 55 56 0D 07 0D 07 43  4D 50 53 2F 43 4D 50 53  42 2F 43 4D 50 53 57 2F  43 4D 50 53 44 20 96 20  UVCMPS/CMPSB/CMPSW/CMPSD û 
000102A0  43 6F 6D 70 61 72 65 20  53 74 72 69 6E 67 20 4F  70 65 72 61 6E 64 73 0D  07 4E 50 0D 07 0D 07 43  Compare String OperandsNPC
000102C0  4D 50 58 43 48 47 20 96  20 43 6F 6D 70 61 72 65  20 61 6E 64 20 45 78 63  68 61 6E 67 65 20 0D 07  MPXCHG û Compare and Exchange 
000102E0  4E 50 0D 07 0D 07 43 4D  50 58 43 48 47 38 42 20  96 20 43 6F 6D 70 61 72  65 20 61 6E 64 20 45 78  NPCMPXCHG8B û Compare and Ex
00010300  63 68 61 6E 67 65 20 38  20 42 79 74 65 73 20 0D  07 4E 50 0D 07 0D 07 43  57 44 20 96 20 43 6F 6E  change 8 Bytes NPCWD û Con
00010320  76 65 72 74 20 57 6F 72  64 20 74 6F 20 44 77 6F  72 64 20 0B 43 44 51 20  96 20 43 6F 6E 76 65 72  vert Word to Dword CDQ û Conver
00010340  74 20 44 77 6F 72 64 20  74 6F 20 51 77 6F 72 64  0D 07 4E 50 0D 07 0D 07  44 41 41 20 96 20 44 65  t Dword to QwordNPDAA û De
00010360  63 69 6D 61 6C 20 41 64  6A 75 73 74 20 41 4C 20  61 66 74 65 72 20 41 64  64 69 74 69 6F 6E 0D 07  cimal Adjust AL after Addition
00010380  4E 50 0D 07 0D 07 44 41  53 20 96 20 44 65 63 69  6D 61 6C 20 41 64 6A 75  73 74 20 41 4C 20 61 66  NPDAS û Decimal Adjust AL af
000103A0  74 65 72 20 53 75 62 74  72 61 63 74 69 6F 6E 0D  07 4E 50 0D 07 0D 07 44  45 43 20 96 20 44 65 63  ter SubtractionNPDEC û Dec
000103C0  72 65 6D 65 6E 74 20 62  79 20 31 0D 07 55 56 0D  07 0D 07 44 49 56 20 96  20 55 6E 73 69 67 6E 65  rement by 1UVDIV û Unsigne
000103E0  64 20 44 69 76 69 64 65  0D 07 4E 50 0D 07 0D 07  45 4E 54 45 52 20 96 20  4D 61 6B 65 20 53 74 61  d DivideNPENTER û Make Sta
00010400  63 6B 20 46 72 61 6D 65  20 66 6F 72 20 50 72 6F  63 65 64 75 72 65 20 50  61 72 61 6D 65 74 65 72  ck Frame for Procedure Parameter
00010420  73 0D 07 4E 50 0D 07 0D  07 48 4C 54 20 96 20 48  61 6C 74 0D 07 0D 07 0D  07 0C 49 6E 74 65 67 65  sNPHLT û HaltIntege
00010440  72 20 49 6E 73 74 72 75  63 74 69 6F 6E 20 50 61  69 72 69 6E 67 20 28 43  6F 6E 74 69 6E 75 65 64  r Instruction Pairing (Continued
00010460  29 0D 0A 49 4E 53 54 52  55 43 54 49 4F 4E 09 46  4F 52 4D 41 54 0D 07 50  61 69 72 69 6E 67 0D 07  )INSTRUCTIONFORMATPairing
00010480  0D 07 49 44 49 56 20 96  20 53 69 67 6E 65 64 20  44 69 76 69 64 65 0D 07  4E 50 0D 07 0D 07 49 4D  IDIV û Signed DivideNPIM
000104A0  55 4C 20 96 20 53 69 67  6E 65 64 20 4D 75 6C 74  69 70 6C 79 0D 07 4E 50  0D 07 0D 07 49 4E 43 20  UL û Signed MultiplyNPINC 
000104C0  96 20 49 6E 63 72 65 6D  65 6E 74 20 62 79 20 31  0D 07 55 56 0D 07 0D 07  49 4E 54 20 6E 20 96 20  û Increment by 1UVINT n û 
000104E0  49 6E 74 65 72 72 75 70  74 20 54 79 70 65 20 6E  20 0D 07 4E 50 0D 07 0D  07 49 4E 54 20 96 20 53  Interrupt Type n NPINT û S
00010500  69 6E 67 6C 65 2D 53 74  65 70 20 49 6E 74 65 72  72 75 70 74 20 33 0D 07  4E 50 0D 07 0D 07 49 4E  ingle-Step Interrupt 3NPIN
00010520  54 4F 20 96 20 49 6E 74  65 72 72 75 70 74 20 34  20 6F 6E 20 4F 76 65 72  66 6C 6F 77 0D 07 4E 50  TO û Interrupt 4 on OverflowNP
00010540  0D 07 0D 07 49 4E 56 44  20 96 20 49 6E 76 61 6C  69 64 61 74 65 20 43 61  63 68 65 0D 07 4E 50 0D  INVD û Invalidate CacheNP
00010560  07 0D 07 49 4E 56 4C 50  47 20 96 20 49 6E 76 61  6C 69 64 61 74 65 20 54  4C 42 20 45 6E 74 72 79  INVLPG û Invalidate TLB Entry
00010580  0D 07 4E 50 0D 07 0D 07  49 52 45 54 2F 49 52 45  54 44 20 96 20 49 6E 74  65 72 72 75 70 74 20 52  NPIRET/IRETD û Interrupt R
000105A0  65 74 75 72 6E 0D 07 4E  50 0D 07 0D 07 4A 63 63  20 96 20 4A 75 6D 70 20  69 66 20 43 6F 6E 64 69  eturnNPJcc û Jump if Condi
000105C0  74 69 6F 6E 20 69 73 20  4D 65 74 0D 07 50 56 0D  07 0D 07 4A 43 58 5A 2F  4A 45 43 58 5A 20 96 20  tion is MetPVJCXZ/JECXZ û 
000105E0  4A 75 6D 70 20 6F 6E 20  43 58 2F 45 43 58 20 5A  65 72 6F 0D 07 4E 50 0D  07 0D 07 4A 4D 50 20 96  Jump on CX/ECX ZeroNPJMP û
00010600  20 55 6E 63 6F 6E 64 69  74 69 6F 6E 61 6C 20 4A  75 6D 70 20 28 74 6F 20  73 61 6D 65 20 73 65 67   Unconditional Jump (to same seg
00010620  6D 65 6E 74 29 0D 07 0D  07 0D 07 A0 A0 A0 73 68  6F 72 74 09 31 31 31 30  20 31 30 31 31 20 3A 20  ment)áááshort1110 1011 : 
00010640  38 2D 62 69 74 20 64 69  73 70 6C 61 63 65 6D 65  6E 74 0D 07 50 56 0D 07  0D 07 A0 A0 A0 64 69 72  8-bit displacementPVááádir
00010660  65 63 74 09 31 31 31 30  20 31 30 30 31 20 3A 20  66 75 6C 6C 20 64 69 73  70 6C 61 63 65 6D 65 6E  ect1110 1001 : full displacemen
00010680  74 0D 07 50 56 0D 07 0D  07 A0 A0 A0 72 65 67 69  73 74 65 72 20 69 6E 64  69 72 65 63 74 09 31 31  tPVáááregister indirect11
000106A0  31 31 20 31 31 31 31 20  3A 20 31 31 20 31 30 30  20 72 65 67 0D 07 4E 50  0D 07 0D 07 A0 A0 A0 6D  11 1111 : 11 100 regNPááám
000106C0  65 6D 6F 72 79 20 69 6E  64 69 72 65 63 74 09 31  31 31 31 20 31 31 31 31  20 3A 20 6D 6F 64 20 31  emory indirect1111 1111 : mod 1
000106E0  30 30 20 72 2F 6D 0D 07  4E 50 0D 07 0D 07 4A 4D  50 20 96 20 55 6E 63 6F  6E 64 69 74 69 6F 6E 61  00 r/mNPJMP û Unconditiona
00010700  6C 20 4A 75 6D 70 20 28  74 6F 20 6F 74 68 65 72  20 73 65 67 6D 65 6E 74  29 0D 07 4E 50 0D 07 0D  l Jump (to other segment)NP
00010720  07 4C 41 48 46 20 96 20  4C 6F 61 64 20 46 6C 61  67 73 20 69 6E 74 6F 20  41 48 20 52 65 67 69 73  LAHF û Load Flags into AH Regis
00010740  74 65 72 0D 07 4E 50 0D  07 0D 07 4C 41 52 20 96  20 4C 6F 61 64 20 41 63  63 65 73 73 20 52 69 67  terNPLAR û Load Access Rig
00010760  68 74 73 20 42 79 74 65  0D 07 4E 50 0D 07 0D 07  4C 44 53 20 96 20 4C 6F  61 64 20 50 6F 69 6E 74  hts ByteNPLDS û Load Point
00010780  65 72 20 74 6F 20 44 53  0D 07 4E 50 0D 07 0D 07  4C 45 41 20 96 20 4C 6F  61 64 20 45 66 66 65 63  er to DSNPLEA û Load Effec
000107A0  74 69 76 65 20 41 64 64  72 65 73 73 0D 07 55 56  0D 07 0D 07 4C 45 41 56  45 20 96 20 48 69 67 68  tive AddressUVLEAVE û High
000107C0  20 4C 65 76 65 6C 20 50  72 6F 63 65 64 75 72 65  20 45 78 69 74 0D 07 4E  50 0D 07 0D 07 4C 45 53   Level Procedure ExitNPLES
000107E0  20 96 20 4C 6F 61 64 20  50 6F 69 6E 74 65 72 20  74 6F 20 45 53 20 0D 07  4E 50 0D 07 0D 07 4C 46   û Load Pointer to ES NPLF
00010800  53 20 96 20 4C 6F 61 64  20 50 6F 69 6E 74 65 72  20 74 6F 20 46 53 20 0D  07 4E 50 0D 07 0D 07 4C  S û Load Pointer to FS NPL
00010820  47 44 54 20 96 20 4C 6F  61 64 20 47 6C 6F 62 61  6C 20 44 65 73 63 72 69  70 74 6F 72 20 54 61 62  GDT û Load Global Descriptor Tab
00010840  6C 65 20 52 65 67 69 73  74 65 72 0D 07 4E 50 0D  07 0D 07 4C 47 53 20 96  20 4C 6F 61 64 20 50 6F  le RegisterNPLGS û Load Po
00010860  69 6E 74 65 72 20 74 6F  20 47 53 20 0D 07 4E 50  0D 07 0D 07 4C 49 44 54  20 96 20 4C 6F 61 64 20  inter to GS NPLIDT û Load 
00010880  49 6E 74 65 72 72 75 70  74 20 44 65 73 63 72 69  70 74 6F 72 20 54 61 62  6C 65 20 52 65 67 69 73  Interrupt Descriptor Table Regis
000108A0  74 65 72 0D 07 4E 50 0D  07 0D 07 4C 4C 44 54 20  96 20 4C 6F 61 64 20 4C  6F 63 61 6C 20 44 65 73  terNPLLDT û Load Local Des
000108C0  63 72 69 70 74 6F 72 20  54 61 62 6C 65 20 52 65  67 69 73 74 65 72 0D 07  4E 50 0D 07 0D 07 4C 4D  criptor Table RegisterNPLM
000108E0  53 57 20 96 20 4C 6F 61  64 20 4D 61 63 68 69 6E  65 20 53 74 61 74 75 73  20 57 6F 72 64 0D 07 4E  SW û Load Machine Status WordN
00010900  50 0D 07 0D 07 4C 4F 43  4B 20 96 20 41 73 73 65  72 74 20 4C 4F 43 4B 23  20 53 69 67 6E 61 6C 20  PLOCK û Assert LOCK# Signal 
00010920  50 72 65 66 69 78 0D 07  0D 07 0D 07 4C 4F 44 53  2F 4C 4F 44 53 42 2F 4C  4F 44 53 57 2F 4C 4F 44  PrefixLODS/LODSB/LODSW/LOD
00010940  53 44 20 96 20 4C 6F 61  64 20 53 74 72 69 6E 67  20 4F 70 65 72 61 6E 64  0D 07 4E 50 0D 07 0D 07  SD û Load String OperandNP
00010960  4C 4F 4F 50 20 96 20 4C  6F 6F 70 20 43 6F 75 6E  74 20 0D 07 4E 50 0D 07  0D 07 4C 4F 4F 50 5A 2F  LOOP û Loop Count NPLOOPZ/
00010980  4C 4F 4F 50 45 20 96 20  4C 6F 6F 70 20 43 6F 75  6E 74 20 77 68 69 6C 65  20 5A 65 72 6F 2F 45 71  LOOPE û Loop Count while Zero/Eq
000109A0  75 61 6C 0D 07 4E 50 0D  07 0D 07 4C 4F 4F 50 4E  5A 2F 4C 4F 4F 50 4E 45  20 96 20 4C 6F 6F 70 20  ualNPLOOPNZ/LOOPNE û Loop 
000109C0  43 6F 75 6E 74 20 77 68  69 6C 65 20 6E 6F 74 20  5A 65 72 6F 2F 45 71 75  61 6C 0D 07 4E 50 0D 07  Count while not Zero/EqualNP
000109E0  0D 07 4C 53 4C 20 96 20  4C 6F 61 64 20 53 65 67  6D 65 6E 74 20 4C 69 6D  69 74 0D 07 4E 50 0D 07  LSL û Load Segment LimitNP
00010A00  0D 07 4C 53 53 20 96 20  4C 6F 61 64 20 50 6F 69  6E 74 65 72 20 74 6F 20  53 53 09 30 30 30 30 20  LSS û Load Pointer to SS0000 
00010A20  31 31 31 31 20 3A 20 31  30 31 31 20 30 30 31 30  20 3A 20 6D 6F 64 20 72  65 67 20 72 2F 6D 0D 07  1111 : 1011 0010 : mod reg r/m
00010A40  4E 50 0D 07 0D 07 4C 54  52 20 96 20 4C 6F 61 64  20 54 61 73 6B 20 52 65  67 69 73 74 65 72 0D 07  NPLTR û Load Task Register
00010A60  4E 50 0D 07 0D 07 4D 4F  56 20 96 20 4D 6F 76 65  20 44 61 74 61 0D 07 55  56 0D 07 0D 07 4D 4F 56  NPMOV û Move DataUVMOV
00010A80  20 96 20 4D 6F 76 65 20  74 6F 2F 66 72 6F 6D 20  43 6F 6E 74 72 6F 6C 20  52 65 67 69 73 74 65 72   û Move to/from Control Register
00010AA0  73 0D 07 4E 50 0D 07 0D  07 4D 4F 56 20 96 20 4D  6F 76 65 20 74 6F 2F 66  72 6F 6D 20 44 65 62 75  sNPMOV û Move to/from Debu
00010AC0  67 20 52 65 67 69 73 74  65 72 73 0D 07 4E 50 0D  07 0D 07 0C 49 6E 74 65  67 65 72 20 49 6E 73 74  g RegistersNPInteger Inst
00010AE0  72 75 63 74 69 6F 6E 20  50 61 69 72 69 6E 67 20  28 43 6F 6E 74 69 6E 75  65 64 29 0D 0A 49 4E 53  ruction Pairing (Continued)INS
00010B00  54 52 55 43 54 49 4F 4E  09 46 4F 52 4D 41 54 0D  07 50 61 69 72 69 6E 67  0D 07 0D 07 4D 4F 56 20  TRUCTIONFORMATPairingMOV 
00010B20  96 20 4D 6F 76 65 20 74  6F 2F 66 72 6F 6D 20 53  65 67 6D 65 6E 74 20 52  65 67 69 73 74 65 72 73  û Move to/from Segment Registers
00010B40  0D 07 4E 50 0D 07 0D 07  4D 4F 56 53 2F 4D 4F 56  53 42 2F 4D 4F 56 53 57  2F 4D 4F 56 53 44 20 96  NPMOVS/MOVSB/MOVSW/MOVSD û
00010B60  20 4D 6F 76 65 20 44 61  74 61 20 66 72 6F 6D 20  53 74 72 69 6E 67 20 74  6F 20 53 74 72 69 6E 67   Move Data from String to String
00010B80  0D 07 4E 50 0D 07 0D 07  4D 4F 56 53 58 20 96 20  4D 6F 76 65 20 77 69 74  68 20 53 69 67 6E 2D 45  NPMOVSX û Move with Sign-E
00010BA0  78 74 65 6E 64 0D 07 4E  50 0D 07 0D 07 4D 4F 56  5A 58 20 96 20 4D 6F 76  65 20 77 69 74 68 20 5A  xtendNPMOVZX û Move with Z
00010BC0  65 72 6F 2D 45 78 74 65  6E 64 0D 07 4E 50 0D 07  0D 07 4D 55 4C 20 96 20  55 6E 73 69 67 6E 65 64  ero-ExtendNPMUL û Unsigned
00010BE0  20 4D 75 6C 74 69 70 6C  69 63 61 74 69 6F 6E 20  6F 66 20 41 4C 2C 20 41  58 20 6F 72 20 45 41 58   Multiplication of AL, AX or EAX
00010C00  0D 07 4E 50 0D 07 0D 07  4E 45 47 20 96 20 54 77  6F 27 73 20 43 6F 6D 70  6C 65 6D 65 6E 74 20 4E  NPNEG û Two's Complement N
00010C20  65 67 61 74 69 6F 6E 0D  07 4E 50 0D 07 0D 07 4E  4F 50 20 96 20 4E 6F 20  4F 70 65 72 61 74 69 6F  egationNPNOP û No Operatio
00010C40  6E 09 31 30 30 31 20 30  30 30 30 0D 07 55 56 0D  07 0D 07 4E 4F 54 20 96  20 4F 6E 65 27 73 20 43  n1001 0000UVNOT û One's C
00010C60  6F 6D 70 6C 65 6D 65 6E  74 20 4E 65 67 61 74 69  6F 6E 0D 07 4E 50 0D 07  0D 07 4F 52 20 96 20 4C  omplement NegationNPOR û L
00010C80  6F 67 69 63 61 6C 20 49  6E 63 6C 75 73 69 76 65  20 4F 52 0D 07 55 56 0D  07 0D 07 50 4F 50 20 96  ogical Inclusive ORUVPOP û
00010CA0  20 50 6F 70 20 61 20 57  6F 72 64 20 66 72 6F 6D  20 74 68 65 20 53 74 61  63 6B 0D 07 0D 07 0D 07   Pop a Word from the Stack
00010CC0  A0 A0 A0 72 65 67 09 31  30 30 30 20 31 31 31 31  20 3A 20 31 31 20 30 30  30 20 72 65 67 0D 07 55  áááreg1000 1111 : 11 000 regU
00010CE0  56 0D 07 0D 07 A0 A0 A0  A0 A0 A0 6F 72 09 30 31  30 31 20 31 20 72 65 67  0D 07 55 56 0D 07 0D 07  Vááááááor0101 1 regUV
00010D00  A0 A0 A0 6D 65 6D 6F 72  79 09 31 30 30 30 20 31  31 31 31 20 3A 20 6D 6F  64 20 30 30 30 20 72 2F  ááámemory1000 1111 : mod 000 r/
00010D20  6D 0D 07 4E 50 0D 07 0D  07 50 4F 50 20 96 20 50  6F 70 20 61 20 53 65 67  6D 65 6E 74 20 52 65 67  mNPPOP û Pop a Segment Reg
00010D40  69 73 74 65 72 20 66 72  6F 6D 20 74 68 65 20 53  74 61 63 6B 0D 07 4E 50  0D 07 0D 07 50 4F 50 41  ister from the StackNPPOPA
00010D60  2F 50 4F 50 41 44 20 96  20 50 6F 70 20 41 6C 6C  20 47 65 6E 65 72 61 6C  20 52 65 67 69 73 74 65  /POPAD û Pop All General Registe
00010D80  72 73 0D 07 4E 50 0D 07  0D 07 50 4F 50 46 2F 50  4F 50 46 44 20 96 20 50  6F 70 20 53 74 61 63 6B  rsNPPOPF/POPFD û Pop Stack
00010DA0  20 69 6E 74 6F 20 46 4C  41 47 53 20 6F 72 20 45  46 4C 41 47 53 20 52 65  67 69 73 74 65 72 0D 07   into FLAGS or EFLAGS Register
00010DC0  4E 50 0D 07 0D 07 50 55  53 48 20 96 20 50 75 73  68 20 4F 70 65 72 61 6E  64 20 6F 6E 74 6F 20 74  NPPUSH û Push Operand onto t
00010DE0  68 65 20 53 74 61 63 6B  0D 07 0D 07 0D 07 A0 A0  A0 72 65 67 09 31 31 31  31 20 31 31 31 31 20 3A  he Stackáááreg1111 1111 :
00010E00  20 31 31 20 31 31 30 20  72 65 67 0D 07 55 56 0D  07 0D 07 A0 A0 A0 A0 A0  A0 6F 72 09 30 31 30 31   11 110 regUVááááááor0101
00010E20  20 30 20 72 65 67 0D 07  55 56 0D 07 0D 07 A0 A0  A0 6D 65 6D 6F 72 79 09  31 31 31 31 20 31 31 31   0 regUVááámemory1111 111
00010E40  31 20 3A 20 6D 6F 64 20  31 31 30 20 72 2F 6D 0D  07 4E 50 0D 07 0D 07 A0  A0 A0 69 6D 6D 65 64 69  1 : mod 110 r/mNPáááimmedi
00010E60  61 74 65 09 30 31 31 30  20 31 30 73 30 20 3A 20  69 6D 6D 65 64 69 61 74  65 20 64 61 74 61 0D 07  ate0110 10s0 : immediate data
00010E80  55 56 0D 07 0D 07 50 55  53 48 20 96 20 50 75 73  68 20 53 65 67 6D 65 6E  74 20 52 65 67 69 73 74  UVPUSH û Push Segment Regist
00010EA0  65 72 20 6F 6E 74 6F 20  74 68 65 20 53 74 61 63  6B 0D 07 4E 50 0D 07 0D  07 50 55 53 48 41 2F 50  er onto the StackNPPUSHA/P
00010EC0  55 53 48 41 44 20 96 20  50 75 73 68 20 41 6C 6C  20 47 65 6E 65 72 61 6C  20 52 65 67 69 73 74 65  USHAD û Push All General Registe
00010EE0  72 73 0D 07 4E 50 0D 07  0D 07 50 55 53 48 46 2F  50 55 53 48 46 44 20 96  20 50 75 73 68 20 46 6C  rsNPPUSHF/PUSHFD û Push Fl
00010F00  61 67 73 20 52 65 67 69  73 74 65 72 20 6F 6E 74  6F 20 74 68 65 20 53 74  61 63 6B 0D 07 4E 50 0D  ags Register onto the StackNP
00010F20  07 0D 07 52 43 4C 20 96  20 52 6F 74 61 74 65 20  74 68 72 75 20 43 61 72  72 79 20 4C 65 66 74 0D  RCL û Rotate thru Carry Left
00010F40  07 0D 07 0D 07 A0 A0 A0  72 65 67 20 62 79 20 31  09 31 31 30 31 20 30 30  30 77 20 3A 20 31 31 20  áááreg by 11101 000w : 11 
00010F60  30 31 30 20 72 65 67 0D  07 50 55 0D 07 0D 07 A0  A0 A0 6D 65 6D 6F 72 79  20 62 79 20 31 09 31 31  010 regPUááámemory by 111
00010F80  30 31 20 30 30 30 77 20  3A 20 6D 6F 64 20 30 31  30 20 72 2F 6D 0D 07 50  55 0D 07 0D 07 A0 A0 A0  01 000w : mod 010 r/mPUááá
00010FA0  72 65 67 20 62 79 20 43  4C 09 31 31 30 31 20 30  30 31 77 20 3A 20 31 31  20 30 31 30 20 72 65 67  reg by CL1101 001w : 11 010 reg
00010FC0  0D 07 4E 50 0D 07 0D 07  A0 A0 A0 6D 65 6D 6F 72  79 20 62 79 20 43 4C 09  31 31 30 31 20 30 30 31  NPááámemory by CL1101 001
00010FE0  77 20 3A 20 6D 6F 64 20  30 31 30 20 72 2F 6D 0D  07 4E 50 0D 07 0D 07 A0  A0 A0 72 65 67 20 62 79  w : mod 010 r/mNPáááreg by
00011000  20 69 6D 6D 65 64 69 61  74 65 20 63 6F 75 6E 74  09 31 31 30 30 20 30 30  30 77 20 3A 20 31 31 20   immediate count1100 000w : 11 
00011020  30 31 30 20 72 65 67 20  3A 20 69 6D 6D 38 20 64  61 74 61 0D 07 50 55 0D  07 0D 07 A0 A0 A0 6D 65  010 reg : imm8 dataPUáááme
00011040  6D 6F 72 79 20 62 79 20  69 6D 6D 65 64 69 61 74  65 20 63 6F 75 6E 74 09  31 31 30 30 20 30 30 30  mory by immediate count1100 000
00011060  77 20 3A 20 6D 6F 64 20  30 31 30 20 72 2F 6D 20  3A 20 69 6D 6D 38 20 64  61 74 61 0D 07 50 55 0D  w : mod 010 r/m : imm8 dataPU
00011080  07 0D 07 52 43 52 20 96  20 52 6F 74 61 74 65 20  74 68 72 75 20 43 61 72  72 79 20 52 69 67 68 74  RCR û Rotate thru Carry Right
000110A0  0D 07 0D 07 0D 07 A0 A0  A0 72 65 67 20 62 79 20  31 09 31 31 30 31 20 30  30 30 77 20 3A 20 31 31  áááreg by 11101 000w : 11
000110C0  20 30 31 31 20 72 65 67  0D 07 50 55 0D 07 0D 07  A0 A0 A0 6D 65 6D 6F 72  79 20 62 79 20 31 09 31   011 regPUááámemory by 11
000110E0  31 30 31 20 30 30 30 77  20 3A 20 6D 6F 64 20 30  31 31 20 72 2F 6D 0D 07  50 55 0D 07 0D 07 A0 A0  101 000w : mod 011 r/mPUáá
00011100  A0 72 65 67 20 62 79 20  43 4C 09 31 31 30 31 20  30 30 31 77 20 3A 20 31  31 20 30 31 31 20 72 65  áreg by CL1101 001w : 11 011 re
00011120  67 0D 07 4E 50 0D 07 0D  07 A0 A0 A0 6D 65 6D 6F  72 79 20 62 79 20 43 4C  09 31 31 30 31 20 30 30  gNPááámemory by CL1101 00
00011140  31 77 20 3A 20 6D 6F 64  20 30 31 31 20 72 2F 6D  0D 07 4E 50 0D 07 0D 07  A0 A0 A0 72 65 67 20 62  1w : mod 011 r/mNPáááreg b
00011160  79 20 69 6D 6D 65 64 69  61 74 65 20 63 6F 75 6E  74 09 31 31 30 30 20 30  30 30 77 20 3A 20 31 31  y immediate count1100 000w : 11
00011180  20 30 31 31 20 72 65 67  20 3A 20 69 6D 6D 38 20  64 61 74 61 0D 07 50 55  0D 07 0D 07 A0 A0 A0 6D   011 reg : imm8 dataPUááám
000111A0  65 6D 6F 72 79 20 62 79  20 69 6D 6D 65 64 69 61  74 65 20 63 6F 75 6E 74  09 31 31 30 30 20 30 30  emory by immediate count1100 00
000111C0  30 77 20 3A 20 6D 6F 64  20 30 31 31 20 72 2F 6D  20 3A 20 69 6D 6D 38 20  64 61 74 61 0D 07 50 55  0w : mod 011 r/m : imm8 dataPU
000111E0  0D 07 0D 07 52 44 4D 53  52 20 96 20 52 65 61 64  20 66 72 6F 6D 20 4D 6F  64 65 6C 2D 53 70 65 63  RDMSR û Read from Model-Spec
00011200  69 66 69 63 20 52 65 67  69 73 74 65 72 0D 07 4E  50 0D 07 0D 07 52 45 50  20 4C 4F 44 53 20 96 20  ific RegisterNPREP LODS û 
00011220  4C 6F 61 64 20 53 74 72  69 6E 67 0D 07 4E 50 0D  07 0D 07 0C 49 6E 74 65  67 65 72 20 49 6E 73 74  Load StringNPInteger Inst
00011240  72 75 63 74 69 6F 6E 20  50 61 69 72 69 6E 67 20  28 43 6F 6E 74 69 6E 75  65 64 29 0D 0A 49 4E 53  ruction Pairing (Continued)INS
00011260  54 52 55 43 54 49 4F 4E  09 46 4F 52 4D 41 54 0D  07 50 61 69 72 69 6E 67  0D 07 0D 07 52 45 50 20  TRUCTIONFORMATPairingREP 
00011280  4D 4F 56 53 20 96 20 4D  6F 76 65 20 53 74 72 69  6E 67 0D 07 4E 50 0D 07  0D 07 52 45 50 20 53 54  MOVS û Move StringNPREP ST
000112A0  4F 53 20 96 20 53 74 6F  72 65 20 53 74 72 69 6E  67 0D 07 4E 50 0D 07 0D  07 52 45 50 45 20 43 4D  OS û Store StringNPREPE CM
000112C0  50 53 20 96 20 43 6F 6D  70 61 72 65 20 53 74 72  69 6E 67 20 28 46 69 6E  64 20 4E 6F 6E 2D 4D 61  PS û Compare String (Find Non-Ma
000112E0  74 63 68 29 0D 07 4E 50  0D 07 0D 07 52 45 50 45  20 53 43 41 53 20 96 20  53 63 61 6E 20 53 74 72  tch)NPREPE SCAS û Scan Str
00011300  69 6E 67 20 28 46 69 6E  64 20 4E 6F 6E 2D 41 4C  2F 41 58 2F 45 41 58 29  0D 07 4E 50 0D 07 0D 07  ing (Find Non-AL/AX/EAX)NP
00011320  52 45 50 4E 45 20 43 4D  50 53 20 96 20 43 6F 6D  70 61 72 65 20 53 74 72  69 6E 67 20 28 46 69 6E  REPNE CMPS û Compare String (Fin
00011340  64 20 4D 61 74 63 68 29  0D 07 4E 50 0D 07 0D 07  52 45 50 4E 45 20 53 43  41 53 20 96 20 53 63 61  d Match)NPREPNE SCAS û Sca
00011360  6E 20 53 74 72 69 6E 67  20 28 46 69 6E 64 20 41  4C 2F 41 58 2F 45 41 58  29 0D 07 4E 50 0D 07 0D  n String (Find AL/AX/EAX)NP
00011380  07 52 45 54 20 96 20 52  65 74 75 72 6E 20 66 72  6F 6D 20 50 72 6F 63 65  64 75 72 65 20 28 74 6F  RET û Return from Procedure (to
000113A0  20 73 61 6D 65 20 73 65  67 6D 65 6E 74 29 0D 07  4E 50 0D 07 0D 07 52 45  54 20 96 20 52 65 74 75   same segment)NPRET û Retu
000113C0  72 6E 20 66 72 6F 6D 20  50 72 6F 63 65 64 75 72  65 20 28 74 6F 20 6F 74  68 65 72 20 73 65 67 6D  rn from Procedure (to other segm
000113E0  65 6E 74 29 0D 07 4E 50  0D 07 0D 07 52 4F 4C 20  96 20 52 6F 74 61 74 65  20 28 6E 6F 74 20 74 68  ent)NPROL û Rotate (not th
00011400  72 75 20 43 61 72 72 79  29 20 4C 65 66 74 0D 07  0D 07 0D 07 A0 A0 A0 72  65 67 20 62 79 20 31 09  ru Carry) Leftáááreg by 1
00011420  31 31 30 31 20 30 30 30  77 20 3A 20 31 31 20 30  30 30 20 72 65 67 0D 07  50 55 0D 07 0D 07 A0 A0  1101 000w : 11 000 regPUáá
00011440  A0 6D 65 6D 6F 72 79 20  62 79 20 31 09 31 31 30  31 20 30 30 30 77 20 3A  20 6D 6F 64 20 30 30 30  ámemory by 11101 000w : mod 000
00011460  20 72 2F 6D 0D 07 50 55  0D 07 0D 07 A0 A0 A0 72  65 67 20 62 79 20 43 4C  09 31 31 30 31 20 30 30   r/mPUáááreg by CL1101 00
00011480  31 77 20 3A 20 31 31 20  30 30 30 20 72 65 67 0D  07 4E 50 0D 07 0D 07 A0  A0 A0 6D 65 6D 6F 72 79  1w : 11 000 regNPááámemory
000114A0  20 62 79 20 43 4C 09 31  31 30 31 20 30 30 31 77  20 3A 20 6D 6F 64 20 30  30 30 20 72 2F 6D 0D 07   by CL1101 001w : mod 000 r/m
000114C0  4E 50 0D 07 0D 07 A0 A0  A0 72 65 67 20 62 79 20  69 6D 6D 65 64 69 61 74  65 20 63 6F 75 6E 74 09  NPáááreg by immediate count
000114E0  31 31 30 30 20 30 30 30  77 20 3A 20 31 31 20 30  30 30 20 72 65 67 20 3A  20 69 6D 6D 38 20 64 61  1100 000w : 11 000 reg : imm8 da
00011500  74 61 0D 07 50 55 0D 07  0D 07 A0 A0 A0 6D 65 6D  6F 72 79 20 62 79 20 69  6D 6D 65 64 69 61 74 65  taPUááámemory by immediate
00011520  20 63 6F 75 6E 74 09 31  31 30 30 20 30 30 30 77  20 3A 20 6D 6F 64 20 30  30 30 20 72 2F 6D 20 3A   count1100 000w : mod 000 r/m :
00011540  20 69 6D 6D 38 20 64 61  74 61 0D 07 50 55 0D 07  0D 07 52 4F 52 20 96 20  52 6F 74 61 74 65 20 28   imm8 dataPUROR û Rotate (
00011560  6E 6F 74 20 74 68 72 75  20 43 61 72 72 79 29 20  52 69 67 68 74 0D 07 0D  07 0D 07 A0 A0 A0 72 65  not thru Carry) Rightáááre
00011580  67 20 62 79 20 31 09 31  31 30 31 20 30 30 30 77  20 3A 20 31 31 20 30 30  31 20 72 65 67 0D 07 50  g by 11101 000w : 11 001 regP
000115A0  55 0D 07 0D 07 A0 A0 A0  6D 65 6D 6F 72 79 20 62  79 20 31 09 31 31 30 31  20 30 30 30 77 20 3A 20  Uááámemory by 11101 000w : 
000115C0  6D 6F 64 20 30 30 31 20  72 2F 6D 0D 07 50 55 0D  07 0D 07 A0 A0 A0 72 65  67 20 62 79 20 43 4C 09  mod 001 r/mPUáááreg by CL
000115E0  31 31 30 31 20 30 30 31  77 20 3A 20 31 31 20 30  30 31 20 72 65 67 0D 07  4E 50 0D 07 0D 07 A0 A0  1101 001w : 11 001 regNPáá
00011600  A0 6D 65 6D 6F 72 79 20  62 79 20 43 4C 09 31 31  30 31 20 30 30 31 77 20  3A 20 6D 6F 64 20 30 30  ámemory by CL1101 001w : mod 00
00011620  31 20 72 2F 6D 0D 07 4E  50 0D 07 0D 07 A0 A0 A0  72 65 67 20 62 79 20 69  6D 6D 65 64 69 61 74 65  1 r/mNPáááreg by immediate
00011640  20 63 6F 75 6E 74 09 31  31 30 30 20 30 30 30 77  20 3A 20 31 31 20 30 30  31 20 72 65 67 20 3A 20   count1100 000w : 11 001 reg : 
00011660  69 6D 6D 38 20 64 61 74  61 0D 07 50 55 0D 07 0D  07 A0 A0 A0 6D 65 6D 6F  72 79 20 62 79 20 69 6D  imm8 dataPUááámemory by im
00011680  6D 65 64 69 61 74 65 20  63 6F 75 6E 74 09 31 31  30 30 20 30 30 30 77 20  3A 20 6D 6F 64 20 30 30  mediate count1100 000w : mod 00
000116A0  31 20 72 2F 6D 20 3A 20  69 6D 6D 38 20 64 61 74  61 0D 07 50 55 0D 07 0D  07 52 53 4D 20 96 20 52  1 r/m : imm8 dataPURSM û R
000116C0  65 73 75 6D 65 20 66 72  6F 6D 20 53 79 73 74 65  6D 20 20 4D 61 6E 61 67  65 6D 65 6E 74 20 4D 6F  esume from System  Management Mo
000116E0  64 65 0D 07 4E 50 0D 07  0D 07 53 41 48 46 20 96  20 53 74 6F 72 65 20 41  48 20 69 6E 74 6F 20 46  deNPSAHF û Store AH into F
00011700  6C 61 67 73 0D 07 4E 50  0D 07 0D 07 53 41 4C 20  96 20 53 68 69 66 74 20  41 72 69 74 68 6D 65 74  lagsNPSAL û Shift Arithmet
00011720  69 63 20 4C 65 66 74 09  73 61 6D 65 20 69 6E 73  74 72 75 63 74 69 6F 6E  20 61 73 20 53 48 4C 0D  ic Leftsame instruction as SHL
00011740  07 0D 07 0D 07 53 41 52  20 96 20 53 68 69 66 74  20 41 72 69 74 68 6D 65  74 69 63 20 52 69 67 68  SAR û Shift Arithmetic Righ
00011760  74 0D 07 0D 07 0D 07 A0  A0 A0 72 65 67 20 62 79  20 31 09 31 31 30 31 20  30 30 30 77 20 3A 20 31  táááreg by 11101 000w : 1
00011780  31 20 31 31 31 20 72 65  67 0D 07 50 55 0D 07 0D  07 A0 A0 A0 6D 65 6D 6F  72 79 20 62 79 20 31 09  1 111 regPUááámemory by 1
000117A0  31 31 30 31 20 30 30 30  77 20 3A 20 6D 6F 64 20  31 31 31 20 72 2F 6D 0D  07 50 55 0D 07 0D 07 A0  1101 000w : mod 111 r/mPUá
000117C0  A0 A0 72 65 67 20 62 79  20 43 4C 09 31 31 30 31  20 30 30 31 77 20 3A 20  31 31 20 31 31 31 20 72  ááreg by CL1101 001w : 11 111 r
000117E0  65 67 0D 07 4E 50 0D 07  0D 07 A0 A0 A0 6D 65 6D  6F 72 79 20 62 79 20 43  4C 09 31 31 30 31 20 30  egNPááámemory by CL1101 0
00011800  30 31 77 20 3A 20 6D 6F  64 20 31 31 31 20 72 2F  6D 0D 07 4E 50 0D 07 0D  07 A0 A0 A0 72 65 67 20  01w : mod 111 r/mNPáááreg 
00011820  62 79 20 69 6D 6D 65 64  69 61 74 65 20 63 6F 75  6E 74 09 31 31 30 30 20  30 30 30 77 20 3A 20 31  by immediate count1100 000w : 1
00011840  31 20 31 31 31 20 72 65  67 20 3A 20 69 6D 6D 38  20 64 61 74 61 0D 07 50  55 0D 07 0D 07 A0 A0 A0  1 111 reg : imm8 dataPUááá
00011860  6D 65 6D 6F 72 79 20 62  79 20 69 6D 6D 65 64 69  61 74 65 20 63 6F 75 6E  74 09 31 31 30 30 20 30  memory by immediate count1100 0
00011880  30 30 77 20 3A 20 6D 6F  64 20 31 31 31 20 72 2F  6D 20 3A 20 69 6D 6D 38  20 64 61 74 61 0D 07 50  00w : mod 111 r/m : imm8 dataP
000118A0  55 0D 07 0D 07 53 42 42  20 96 20 49 6E 74 65 67  65 72 20 53 75 62 74 72  61 63 74 69 6F 6E 20 77  USBB û Integer Subtraction w
000118C0  69 74 68 20 42 6F 72 72  6F 77 0D 07 50 55 0D 07  0D 07 53 43 41 53 2F 53  43 41 53 42 2F 53 43 41  ith BorrowPUSCAS/SCASB/SCA
000118E0  53 57 2F 53 43 41 53 44  20 96 20 53 63 61 6E 20  53 74 72 69 6E 67 0D 07  4E 50 0D 07 0D 07 53 45  SW/SCASD û Scan StringNPSE
00011900  54 63 63 20 96 20 42 79  74 65 20 53 65 74 20 6F  6E 20 43 6F 6E 64 69 74  69 6F 6E 0D 07 4E 50 0D  Tcc û Byte Set on ConditionNP
00011920  07 0D 07 53 47 44 54 20  96 20 53 74 6F 72 65 20  47 6C 6F 62 61 6C 20 44  65 73 63 72 69 70 74 6F  SGDT û Store Global Descripto
00011940  72 20 54 61 62 6C 65 20  52 65 67 69 73 74 65 72  0D 07 4E 50 0D 07 0D 07  0C 49 6E 74 65 67 65 72  r Table RegisterNPInteger
00011960  20 49 6E 73 74 72 75 63  74 69 6F 6E 20 50 61 69  72 69 6E 67 20 28 43 6F  6E 74 69 6E 75 65 64 29   Instruction Pairing (Continued)
00011980  0D 0A 49 4E 53 54 52 55  43 54 49 4F 4E 09 46 4F  52 4D 41 54 0D 07 50 61  69 72 69 6E 67 0D 07 0D  INSTRUCTIONFORMATPairing
000119A0  07 53 48 4C 20 96 20 53  68 69 66 74 20 4C 65 66  74 0D 07 0D 07 0D 07 A0  A0 A0 72 65 67 20 62 79  SHL û Shift Leftáááreg by
000119C0  20 31 09 31 31 30 31 20  30 30 30 77 20 3A 20 31  31 20 31 30 30 20 72 65  67 0D 07 50 55 0D 07 0D   11101 000w : 11 100 regPU
000119E0  07 A0 A0 A0 6D 65 6D 6F  72 79 20 62 79 20 31 09  31 31 30 31 20 30 30 30  77 20 3A 20 6D 6F 64 20  ááámemory by 11101 000w : mod 
00011A00  31 30 30 20 72 2F 6D 0D  07 50 55 0D 07 0D 07 A0  A0 A0 72 65 67 20 62 79  20 43 4C 09 31 31 30 31  100 r/mPUáááreg by CL1101
00011A20  20 30 30 31 77 20 3A 20  31 31 20 31 30 30 20 72  65 67 0D 07 4E 50 0D 07  0D 07 A0 A0 A0 6D 65 6D   001w : 11 100 regNPááámem
00011A40  6F 72 79 20 62 79 20 43  4C 09 31 31 30 31 20 30  30 31 77 20 3A 20 6D 6F  64 20 31 30 30 20 72 2F  ory by CL1101 001w : mod 100 r/
00011A60  6D 0D 07 4E 50 0D 07 0D  07 A0 A0 A0 72 65 67 20  62 79 20 69 6D 6D 65 64  69 61 74 65 20 63 6F 75  mNPáááreg by immediate cou
00011A80  6E 74 09 31 31 30 30 20  30 30 30 77 20 3A 20 31  31 20 31 30 30 20 72 65  67 20 3A 20 69 6D 6D 38  nt1100 000w : 11 100 reg : imm8
00011AA0  20 64 61 74 61 0D 07 50  55 0D 07 0D 07 A0 A0 A0  6D 65 6D 6F 72 79 20 62  79 20 69 6D 6D 65 64 69   dataPUááámemory by immedi
00011AC0  61 74 65 20 63 6F 75 6E  74 09 31 31 30 30 20 30  30 30 77 20 3A 20 6D 6F  64 20 31 30 30 20 72 2F  ate count1100 000w : mod 100 r/
00011AE0  6D 20 3A 20 69 6D 6D 38  20 64 61 74 61 0D 07 50  55 0D 07 0D 07 53 48 4C  44 20 96 20 44 6F 75 62  m : imm8 dataPUSHLD û Doub
00011B00  6C 65 20 50 72 65 63 69  73 69 6F 6E 20 53 68 69  66 74 20 4C 65 66 74 0D  07 0D 07 0D 07 A0 A0 A0  le Precision Shift Leftááá
00011B20  72 65 67 69 73 74 65 72  20 62 79 20 69 6D 6D 65  64 69 61 74 65 20 63 6F  75 6E 74 09 30 30 30 30  register by immediate count0000
00011B40  20 31 31 31 31 20 3A 20  31 30 31 30 20 30 31 30  30 20 3A 20 31 31 20 72  65 67 32 20 72 65 67 31   1111 : 1010 0100 : 11 reg2 reg1
00011B60  20 3A 20 69 6D 6D 38 0D  07 4E 50 0D 07 0D 07 A0  A0 A0 6D 65 6D 6F 72 79  20 62 79 20 69 6D 6D 65   : imm8NPááámemory by imme
00011B80  64 69 61 74 65 20 63 6F  75 6E 74 09 30 30 30 30  20 31 31 31 31 20 3A 20  31 30 31 30 20 30 31 30  diate count0000 1111 : 1010 010
00011BA0  30 20 3A 20 6D 6F 64 20  72 65 67 20 72 2F 6D 20  3A 20 69 6D 6D 38 0D 07  4E 50 0D 07 0D 07 A0 A0  0 : mod reg r/m : imm8NPáá
00011BC0  A0 72 65 67 69 73 74 65  72 20 62 79 20 43 4C 09  30 30 30 30 20 31 31 31  31 20 3A 20 31 30 31 30  áregister by CL0000 1111 : 1010
00011BE0  20 30 31 30 31 20 3A 20  31 31 20 72 65 67 32 20  72 65 67 31 0D 07 4E 50  0D 07 0D 07 A0 A0 A0 6D   0101 : 11 reg2 reg1NPááám
00011C00  65 6D 6F 72 79 20 62 79  20 43 4C 09 30 30 30 30  20 31 31 31 31 20 3A 20  31 30 31 30 20 30 31 30  emory by CL0000 1111 : 1010 010
00011C20  31 20 3A 20 6D 6F 64 20  72 65 67 20 72 2F 6D 0D  07 4E 50 0D 07 0D 07 53  48 52 20 96 20 53 68 69  1 : mod reg r/mNPSHR û Shi
00011C40  66 74 20 52 69 67 68 74  0D 07 0D 07 0D 07 A0 A0  A0 72 65 67 20 62 79 20  31 09 31 31 30 31 20 30  ft Rightáááreg by 11101 0
00011C60  30 30 77 20 3A 20 31 31  20 31 30 31 20 72 65 67  0D 07 50 55 0D 07 0D 07  A0 A0 A0 6D 65 6D 6F 72  00w : 11 101 regPUááámemor
00011C80  79 20 62 79 20 31 09 31  31 30 31 20 30 30 30 77  20 3A 20 6D 6F 64 20 31  30 31 20 72 2F 6D 0D 07  y by 11101 000w : mod 101 r/m
00011CA0  50 55 0D 07 0D 07 A0 A0  A0 72 65 67 20 62 79 20  43 4C 09 31 31 30 31 20  30 30 31 77 20 3A 20 31  PUáááreg by CL1101 001w : 1
00011CC0  31 20 31 30 31 20 72 65  67 0D 07 4E 50 0D 07 0D  07 A0 A0 A0 6D 65 6D 6F  72 79 20 62 79 20 43 4C  1 101 regNPááámemory by CL
00011CE0  09 31 31 30 31 20 30 30  31 77 20 3A 20 6D 6F 64  20 31 30 31 20 72 2F 6D  0D 07 4E 50 0D 07 0D 07  1101 001w : mod 101 r/mNP
00011D00  A0 A0 A0 72 65 67 20 62  79 20 69 6D 6D 65 64 69  61 74 65 20 63 6F 75 6E  74 09 31 31 30 30 20 30  áááreg by immediate count1100 0
00011D20  30 30 77 20 3A 20 31 31  20 31 30 31 20 72 65 67  20 3A 20 69 6D 6D 38 20  64 61 74 61 0D 07 50 55  00w : 11 101 reg : imm8 dataPU
00011D40  0D 07 0D 07 A0 A0 A0 6D  65 6D 6F 72 79 20 62 79  20 69 6D 6D 65 64 69 61  74 65 20 63 6F 75 6E 74  ááámemory by immediate count
00011D60  09 31 31 30 30 20 30 30  30 77 20 3A 20 6D 6F 64  20 31 30 31 20 72 2F 6D  20 3A 20 69 6D 6D 38 20  1100 000w : mod 101 r/m : imm8 
00011D80  64 61 74 61 0D 07 50 55  0D 07 0D 07 53 48 52 44  20 96 20 44 6F 75 62 6C  65 20 50 72 65 63 69 73  dataPUSHRD û Double Precis
00011DA0  69 6F 6E 20 53 68 69 66  74 20 52 69 67 68 74 0D  07 0D 07 0D 07 A0 A0 A0  72 65 67 69 73 74 65 72  ion Shift Rightáááregister
00011DC0  20 62 79 20 69 6D 6D 65  64 69 61 74 65 20 63 6F  75 6E 74 09 30 30 30 30  20 31 31 31 31 20 3A 20   by immediate count0000 1111 : 
00011DE0  31 30 31 30 20 31 31 30  30 20 3A 20 31 31 20 72  65 67 32 20 72 65 67 31  20 3A 20 69 6D 6D 38 0D  1010 1100 : 11 reg2 reg1 : imm8
00011E00  07 4E 50 0D 07 0D 07 A0  A0 A0 6D 65 6D 6F 72 79  20 62 79 20 69 6D 6D 65  64 69 61 74 65 20 63 6F  NPááámemory by immediate co
00011E20  75 6E 74 09 30 30 30 30  20 31 31 31 31 20 3A 20  31 30 31 30 20 31 31 30  30 20 3A 20 6D 6F 64 20  unt0000 1111 : 1010 1100 : mod 
00011E40  72 65 67 20 72 2F 6D 20  3A 20 69 6D 6D 38 0D 07  4E 50 0D 07 0D 07 A0 A0  A0 72 65 67 69 73 74 65  reg r/m : imm8NPáááregiste
00011E60  72 20 62 79 20 43 4C 09  30 30 30 30 20 31 31 31  31 20 3A 20 31 30 31 30  20 31 31 30 31 20 3A 20  r by CL0000 1111 : 1010 1101 : 
00011E80  31 31 20 72 65 67 32 20  72 65 67 31 0D 07 4E 50  0D 07 0D 07 A0 A0 A0 6D  65 6D 6F 72 79 20 62 79  11 reg2 reg1NPááámemory by
00011EA0  20 43 4C 09 30 30 30 30  20 31 31 31 31 20 3A 20  31 30 31 30 20 31 31 30  31 20 3A 20 6D 6F 64 20   CL0000 1111 : 1010 1101 : mod 
00011EC0  72 65 67 20 72 2F 6D 0D  07 4E 50 0D 07 0D 07 53  49 44 54 20 96 20 53 74  6F 72 65 20 49 6E 74 65  reg r/mNPSIDT û Store Inte
00011EE0  72 72 75 70 74 20 44 65  73 63 72 69 70 74 6F 72  20 54 61 62 6C 65 20 52  65 67 69 73 74 65 72 0D  rrupt Descriptor Table Register
00011F00  07 4E 50 0D 07 0D 07 53  4C 44 54 20 96 20 53 74  6F 72 65 20 4C 6F 63 61  6C 20 44 65 73 63 72 69  NPSLDT û Store Local Descri
00011F20  70 74 6F 72 20 54 61 62  6C 65 20 52 65 67 69 73  74 65 72 0D 07 4E 50 0D  07 0D 07 53 4D 53 57 20  ptor Table RegisterNPSMSW 
00011F40  96 20 53 74 6F 72 65 20  4D 61 63 68 69 6E 65 20  53 74 61 74 75 73 20 57  6F 72 64 0D 07 4E 50 0D  û Store Machine Status WordNP
00011F60  07 0D 07 53 54 43 20 96  20 53 65 74 20 43 61 72  72 79 20 46 6C 61 67 0D  07 4E 50 0D 07 0D 07 53  STC û Set Carry FlagNPS
00011F80  54 44 20 96 20 53 65 74  20 44 69 72 65 63 74 69  6F 6E 20 46 6C 61 67 0D  07 4E 50 0D 07 0D 07 53  TD û Set Direction FlagNPS
00011FA0  54 49 20 96 20 53 65 74  20 49 6E 74 65 72 72 75  70 74 20 46 6C 61 67 0D  07 0D 07 0D 07 53 54 4F  TI û Set Interrupt FlagSTO
00011FC0  53 2F 53 54 4F 53 42 2F  53 54 4F 53 57 2F 53 54  4F 53 44 20 96 20 53 74  6F 72 65 20 53 74 72 69  S/STOSB/STOSW/STOSD û Store Stri
00011FE0  6E 67 20 44 61 74 61 0D  07 4E 50 0D 07 0D 07 53  54 52 20 96 20 53 74 6F  72 65 20 54 61 73 6B 20  ng DataNPSTR û Store Task 
00012000  52 65 67 69 73 74 65 72  0D 07 4E 50 0D 07 0D 07  53 55 42 20 96 20 49 6E  74 65 67 65 72 20 53 75  RegisterNPSUB û Integer Su
00012020  62 74 72 61 63 74 69 6F  6E 0D 07 55 56 0D 07 0D  07 54 45 53 54 20 96 20  4C 6F 67 69 63 61 6C 20  btractionUVTEST û Logical 
00012040  43 6F 6D 70 61 72 65 0D  07 0D 07 0D 07 A0 A0 A0  72 65 67 31 20 61 6E 64  20 72 65 67 32 09 31 30  Compareáááreg1 and reg210
00012060  30 30 20 30 31 30 77 20  3A 20 31 31 20 72 65 67  31 20 72 65 67 32 0D 07  55 56 0D 07 0D 07 A0 A0  00 010w : 11 reg1 reg2UVáá
00012080  A0 6D 65 6D 6F 72 79 20  61 6E 64 20 72 65 67 69  73 74 65 72 09 31 30 30  30 20 30 31 30 77 20 3A  ámemory and register1000 010w :
000120A0  20 6D 6F 64 20 72 65 67  20 72 2F 6D 0D 07 55 56  0D 07 0D 07 A0 A0 A0 69  6D 6D 65 64 69 61 74 65   mod reg r/mUVáááimmediate
000120C0  20 61 6E 64 20 72 65 67  69 73 74 65 72 09 31 31  31 31 20 30 31 31 77 20  3A 20 31 31 20 30 30 30   and register1111 011w : 11 000
000120E0  20 72 65 67 20 3A 20 69  6D 6D 65 64 69 61 74 65  20 64 61 74 61 0D 07 4E  50 0D 07 0D 07 A0 A0 A0   reg : immediate dataNPááá
00012100  69 6D 6D 65 64 69 61 74  65 20 61 6E 64 20 61 63  63 75 6D 75 6C 61 74 6F  72 09 31 30 31 30 20 31  immediate and accumulator1010 1
00012120  30 30 77 20 3A 20 69 6D  6D 65 64 69 61 74 65 20  64 61 74 61 0D 07 55 56  0D 07 0D 07 A0 A0 A0 69  00w : immediate dataUVááái
00012140  6D 6D 65 64 69 61 74 65  20 61 6E 64 20 6D 65 6D  6F 72 79 09 31 31 31 31  20 30 31 31 77 20 3A 20  mmediate and memory1111 011w : 
00012160  6D 6F 64 20 30 30 30 20  72 2F 6D 20 3A 20 69 6D  6D 65 64 69 61 74 65 20  64 61 74 61 0D 07 4E 50  mod 000 r/m : immediate dataNP
00012180  0D 07 0D 07 0C 49 6E 74  65 67 65 72 20 49 6E 73  74 72 75 63 74 69 6F 6E  20 50 61 69 72 69 6E 67  Integer Instruction Pairing
000121A0  20 28 43 6F 6E 74 69 6E  75 65 64 29 0D 0A 49 4E  53 54 52 55 43 54 49 4F  4E 09 46 4F 52 4D 41 54   (Continued)INSTRUCTIONFORMAT
000121C0  0D 07 50 61 69 72 69 6E  67 0D 07 0D 07 56 45 52  52 20 96 20 56 65 72 69  66 79 20 61 20 53 65 67  PairingVERR û Verify a Seg
000121E0  6D 65 6E 74 20 66 6F 72  20 52 65 61 64 69 6E 67  20 0D 07 4E 50 0D 07 0D  07 56 45 52 57 20 96 20  ment for Reading NPVERW û 
00012200  56 65 72 69 66 79 20 61  20 53 65 67 6D 65 6E 74  20 66 6F 72 20 57 72 69  74 69 6E 67 0D 07 4E 50  Verify a Segment for WritingNP
00012220  0D 07 0D 07 57 41 49 54  20 96 20 57 61 69 74 09  31 30 30 31 20 31 30 31  31 0D 07 4E 50 0D 07 0D  WAIT û Wait1001 1011NP
00012240  07 57 42 49 4E 56 44 20  96 20 57 72 69 74 65 2D  42 61 63 6B 20 61 6E 64  20 49 6E 76 61 6C 69 64  WBINVD û Write-Back and Invalid
00012260  61 74 65 20 44 61 74 61  20 43 61 63 68 65 0D 07  4E 50 0D 07 0D 07 57 52  4D 53 52 20 96 20 57 72  ate Data CacheNPWRMSR û Wr
00012280  69 74 65 20 74 6F 20 4D  6F 64 65 6C 2D 53 70 65  63 69 66 69 63 20 52 65  67 69 73 74 65 72 0D 07  ite to Model-Specific Register
000122A0  4E 50 0D 07 0D 07 58 41  44 44 20 96 20 45 78 63  68 61 6E 67 65 20 61 6E  64 20 41 64 64 0D 07 4E  NPXADD û Exchange and AddN
000122C0  50 0D 07 0D 07 58 43 48  47 20 96 20 45 78 63 68  61 6E 67 65 20 52 65 67  69 73 74 65 72 2F 4D 65  PXCHG û Exchange Register/Me
000122E0  6D 6F 72 79 20 77 69 74  68 20 52 65 67 69 73 74  65 72 0D 07 4E 50 0D 07  0D 07 58 4C 41 54 2F 58  mory with RegisterNPXLAT/X
00012300  4C 41 54 42 20 96 20 54  61 62 6C 65 20 4C 6F 6F  6B 2D 75 70 20 54 72 61  6E 73 6C 61 74 69 6F 6E  LATB û Table Look-up Translation
00012320  0D 07 4E 50 0D 07 0D 07  58 4F 52 20 96 20 4C 6F  67 69 63 61 6C 20 45 78  63 6C 75 73 69 76 65 20  NPXOR û Logical Exclusive 
00012340  4F 52 0D 07 55 56 0D 07  0D 07 0C 46 6C 6F 61 74  69 6E 67 2D 50 6F 69 6E  74 20 49 6E 73 74 72 75  ORUVFloating-Point Instru
00012360  63 74 69 6F 6E 20 50 61  69 72 69 6E 67 0D 0A 49  4E 53 54 52 55 43 54 49  4F 4E 09 46 4F 52 4D 41  ction PairingINSTRUCTIONFORMA
00012380  54 0D 07 50 61 69 72 69  6E 67 0D 07 0D 07 46 32  58 4D 31 20 96 20 43 6F  6D 70 75 74 65 20 32 53  TPairingF2XM1 û Compute 2S
000123A0  54 28 30 29 20 96 20 31  0D 07 4E 50 0D 07 0D 07  46 41 42 53 20 96 20 41  62 73 6F 6C 75 74 65 20  T(0) û 1NPFABS û Absolute 
000123C0  56 61 6C 75 65 0D 07 46  58 0D 07 0D 07 46 41 44  44 20 96 20 41 64 64 0D  07 46 58 0D 07 0D 07 46  ValueFXFADD û AddFXF
000123E0  41 44 44 50 20 96 20 41  64 64 20 61 6E 64 20 50  6F 70 0D 07 46 58 0D 07  0D 07 46 42 4C 44 20 96  ADDP û Add and PopFXFBLD û
00012400  20 4C 6F 61 64 20 42 69  6E 61 72 79 20 43 6F 64  65 64 20 44 65 63 69 6D  61 6C 0D 07 4E 50 0D 07   Load Binary Coded DecimalNP
00012420  0D 07 46 42 53 54 50 20  96 20 53 74 6F 72 65 20  42 69 6E 61 72 79 20 43  6F 64 65 64 20 44 65 63  FBSTP û Store Binary Coded Dec
00012440  69 6D 61 6C 20 61 6E 64  20 50 6F 70 0D 07 4E 50  0D 07 0D 07 46 43 48 53  20 96 20 43 68 61 6E 67  imal and PopNPFCHS û Chang
00012460  65 20 53 69 67 6E 0D 07  46 58 0D 07 0D 07 46 43  4C 45 58 20 96 20 43 6C  65 61 72 20 45 78 63 65  e SignFXFCLEX û Clear Exce
00012480  70 74 69 6F 6E 73 0D 07  4E 50 0D 07 0D 07 46 43  4F 4D 20 96 20 43 6F 6D  70 61 72 65 20 52 65 61  ptionsNPFCOM û Compare Rea
000124A0  6C 0D 07 46 58 0D 07 0D  07 46 43 4F 4D 50 20 96  20 43 6F 6D 70 61 72 65  20 52 65 61 6C 20 61 6E  lFXFCOMP û Compare Real an
000124C0  64 20 50 6F 70 0D 07 46  58 0D 07 0D 07 46 43 4F  4D 50 50 20 96 20 43 6F  6D 70 61 72 65 20 52 65  d PopFXFCOMPP û Compare Re
000124E0  61 6C 20 61 6E 64 20 50  6F 70 20 54 77 69 63 65  0D 07 0D 07 0D 07 46 43  4F 53 20 96 20 43 6F 73  al and Pop TwiceFCOS û Cos
00012500  69 6E 65 20 6F 66 20 53  54 28 30 29 0D 07 4E 50  0D 07 0D 07 46 44 45 43  53 54 50 20 96 20 44 65  ine of ST(0)NPFDECSTP û De
00012520  63 72 65 6D 65 6E 74 20  53 74 61 63 6B 2D 54 6F  70 20 50 6F 69 6E 74 65  72 0D 07 4E 50 0D 07 0D  crement Stack-Top PointerNP
00012540  07 46 44 49 56 20 96 20  44 69 76 69 64 65 0D 07  46 58 0D 07 0D 07 46 44  49 56 50 20 96 20 44 69  FDIV û DivideFXFDIVP û Di
00012560  76 69 64 65 20 61 6E 64  20 50 6F 70 0D 07 46 58  0D 07 0D 07 46 44 49 56  52 20 96 20 52 65 76 65  vide and PopFXFDIVR û Reve
00012580  72 73 65 20 44 69 76 69  64 65 0D 07 46 58 0D 07  0D 07 46 44 49 56 52 50  20 96 20 52 65 76 65 72  rse DivideFXFDIVRP û Rever
000125A0  73 65 20 44 69 76 69 64  65 20 61 6E 64 20 50 6F  70 0D 07 46 58 0D 07 0D  07 46 46 52 45 45 20 96  se Divide and PopFXFFREE û
000125C0  20 46 72 65 65 20 53 54  28 69 29 20 52 65 67 69  73 74 65 72 0D 07 4E 50  0D 07 0D 07 46 49 41 44   Free ST(i) RegisterNPFIAD
000125E0  44 20 96 20 41 64 64 20  49 6E 74 65 67 65 72 0D  07 4E 50 0D 07 0D 07 46  49 43 4F 4D 20 96 20 43  D û Add IntegerNPFICOM û C
00012600  6F 6D 70 61 72 65 20 49  6E 74 65 67 65 72 0D 07  4E 50 0D 07 0D 07 46 49  43 4F 4D 50 20 96 20 43  ompare IntegerNPFICOMP û C
00012620  6F 6D 70 61 72 65 20 49  6E 74 65 67 65 72 20 61  6E 64 20 50 6F 70 0D 07  4E 50 0D 07 0D 07 46 49  ompare Integer and PopNPFI
00012640  44 49 56 0D 07 4E 50 0D  07 0D 07 46 49 44 49 56  52 0D 07 4E 50 0D 07 0D  07 46 49 4C 44 20 96 20  DIVNPFIDIVRNPFILD û 
00012660  4C 6F 61 64 20 49 6E 74  65 67 65 72 0D 07 4E 50  0D 07 0D 07 46 49 4D 55  4C 0D 07 4E 50 0D 07 0D  Load IntegerNPFIMULNP
00012680  07 46 49 4E 43 53 54 50  20 96 20 49 6E 63 72 65  6D 65 6E 74 20 53 74 61  63 6B 20 50 6F 69 6E 74  FINCSTP û Increment Stack Point
000126A0  65 72 0D 07 4E 50 0D 07  0D 07 46 49 4E 49 54 20  96 20 49 6E 69 74 69 61  6C 69 7A 65 20 46 6C 6F  erNPFINIT û Initialize Flo
000126C0  61 74 69 6E 67 2D 50 6F  69 6E 74 20 55 6E 69 74  0D 07 4E 50 0D 07 0D 07  46 49 53 54 20 96 20 53  ating-Point UnitNPFIST û S
000126E0  74 6F 72 65 20 49 6E 74  65 67 65 72 0D 07 4E 50  0D 07 0D 07 46 49 53 54  50 20 96 20 53 74 6F 72  tore IntegerNPFISTP û Stor
00012700  65 20 49 6E 74 65 67 65  72 20 61 6E 64 20 50 6F  70 0D 07 4E 50 0D 07 0D  07 46 49 53 55 42 0D 07  e Integer and PopNPFISUB
00012720  4E 50 0D 07 0D 07 46 49  53 55 42 52 0D 07 4E 50  0D 07 0D 07 46 4C 44 20  96 20 4C 6F 61 64 20 52  NPFISUBRNPFLD û Load R
00012740  65 61 6C 0D 07 0D 07 0D  07 A0 A0 A0 33 32 2D 62  69 74 20 6D 65 6D 6F 72  79 09 31 31 30 31 31 20  ealááá32-bit memory11011 
00012760  30 30 31 20 3A 20 6D 6F  64 20 30 30 30 20 72 2F  6D 0D 07 46 58 0D 07 0D  07 A0 A0 A0 36 34 2D 62  001 : mod 000 r/mFXááá64-b
00012780  69 74 20 6D 65 6D 6F 72  79 09 31 31 30 31 31 20  31 30 31 20 3A 20 6D 6F  64 20 30 30 30 20 72 2F  it memory11011 101 : mod 000 r/
000127A0  6D 0D 07 46 58 0D 07 0D  07 A0 A0 A0 38 30 2D 62  69 74 20 6D 65 6D 6F 72  79 09 31 31 30 31 31 20  mFXááá80-bit memory11011 
000127C0  30 31 31 20 3A 20 6D 6F  64 20 31 30 31 20 72 2F  6D 0D 07 4E 50 0D 07 0D  07 A0 A0 A0 53 54 28 69  011 : mod 101 r/mNPáááST(i
000127E0  29 09 31 31 30 31 31 20  30 30 31 20 3A 20 31 31  20 30 30 30 20 53 54 28  69 29 0D 07 46 58 0D 07  )11011 001 : 11 000 ST(i)FX
00012800  0D 07 46 4C 44 31 20 96  20 4C 6F 61 64 20 2B 31  2E 30 20 69 6E 74 6F 20  53 54 28 30 29 0D 07 4E  FLD1 û Load +1.0 into ST(0)N
00012820  50 0D 07 0D 07 46 4C 44  43 57 20 96 20 4C 6F 61  64 20 43 6F 6E 74 72 6F  6C 20 57 6F 72 64 0D 07  PFLDCW û Load Control Word
00012840  4E 50 0D 07 0D 07 46 4C  44 45 4E 56 20 96 20 4C  6F 61 64 20 46 50 55 20  45 6E 76 69 72 6F 6E 6D  NPFLDENV û Load FPU Environm
00012860  65 6E 74 0D 07 4E 50 0D  07 0D 07 46 4C 44 4C 32  45 20 96 20 4C 6F 61 64  20 6C 6F 67 32 28 13 53  entNPFLDL2E û Load log2(S
00012880  59 4D 42 4F 4C 20 31 30  31 20 5C 66 20 22 53 79  6D 62 6F 6C 22 15 29 20  69 6E 74 6F 20 53 54 28  YMBOL 101 \f "Symbol"§) into ST(
000128A0  30 29 0D 07 4E 50 0D 07  0D 07 46 4C 44 4C 32 54  20 96 20 4C 6F 61 64 20  6C 6F 67 32 28 31 30 29  0)NPFLDL2T û Load log2(10)
000128C0  20 69 6E 74 6F 20 53 54  28 30 29 0D 07 4E 50 0D  07 0D 07 0C 46 6C 6F 61  74 69 6E 67 2D 50 6F 69   into ST(0)NPFloating-Poi
000128E0  6E 74 20 49 6E 73 74 72  75 63 74 69 6F 6E 20 50  61 69 72 69 6E 67 20 28  43 6F 6E 74 69 6E 75 65  nt Instruction Pairing (Continue
00012900  64 29 0D 0A 49 4E 53 54  52 55 43 54 49 4F 4E 09  46 4F 52 4D 41 54 0D 07  50 61 69 72 69 6E 67 0D  d)INSTRUCTIONFORMATPairing
00012920  07 0D 07 46 4C 44 4C 47  32 20 96 20 4C 6F 61 64  20 6C 6F 67 31 30 28 32  29 20 69 6E 74 6F 20 53  FLDLG2 û Load log10(2) into S
00012940  54 28 30 29 0D 07 4E 50  0D 07 0D 07 46 4C 44 4C  4E 32 20 96 20 4C 6F 61  64 20 6C 6F 67 13 53 59  T(0)NPFLDLN2 û Load logSY
00012960  4D 42 4F 4C 20 31 30 31  20 5C 66 20 22 53 79 6D  62 6F 6C 22 15 28 32 29  20 69 6E 74 6F 20 53 54  MBOL 101 \f "Symbol"§(2) into ST
00012980  28 30 29 0D 07 4E 50 0D  07 0D 07 46 4C 44 50 49  20 96 20 4C 6F 61 64 20  13 53 59 4D 42 4F 4C 20  (0)NPFLDPI û Load SYMBOL 
000129A0  31 31 32 20 5C 66 20 22  53 79 6D 62 6F 6C 22 15  20 69 6E 74 6F 20 53 54  28 30 29 0D 07 4E 50 0D  112 \f "Symbol"§ into ST(0)NP
000129C0  07 0D 07 46 4C 44 5A 20  96 20 4C 6F 61 64 20 2B  30 2E 30 20 69 6E 74 6F  20 53 54 28 30 29 0D 07  FLDZ û Load +0.0 into ST(0)
000129E0  4E 50 0D 07 0D 07 46 4D  55 4C 20 96 20 4D 75 6C  74 69 70 6C 79 0D 07 46  58 0D 07 0D 07 46 4D 55  NPFMUL û MultiplyFXFMU
00012A00  4C 50 20 96 20 4D 75 6C  74 69 70 6C 79 0D 07 46  58 0D 07 0D 07 46 4E 4F  50 20 96 20 4E 6F 20 4F  LP û MultiplyFXFNOP û No O
00012A20  70 65 72 61 74 69 6F 6E  0D 07 4E 50 0D 07 0D 07  46 50 41 54 41 4E 20 96  20 50 61 72 74 69 61 6C  perationNPFPATAN û Partial
00012A40  20 41 72 63 74 61 6E 67  65 6E 74 0D 07 4E 50 0D  07 0D 07 46 50 52 45 4D  20 96 20 50 61 72 74 69   ArctangentNPFPREM û Parti
00012A60  61 6C 20 52 65 6D 61 69  6E 64 65 72 0D 07 4E 50  0D 07 0D 07 46 50 52 45  4D 31 20 96 20 50 61 72  al RemainderNPFPREM1 û Par
00012A80  74 69 61 6C 20 52 65 6D  61 69 6E 64 65 72 20 28  49 45 45 45 29 0D 07 4E  50 0D 07 0D 07 46 50 54  tial Remainder (IEEE)NPFPT
00012AA0  41 4E 20 96 20 50 61 72  74 69 61 6C 20 54 61 6E  67 65 6E 74 0D 07 4E 50  0D 07 0D 07 46 52 4E 44  AN û Partial TangentNPFRND
00012AC0  49 4E 54 20 96 20 52 6F  75 6E 64 20 74 6F 20 49  6E 74 65 67 65 72 0D 07  0D 07 0D 07 46 52 53 54  INT û Round to IntegerFRST
00012AE0  4F 52 20 96 20 52 65 73  74 6F 72 65 20 46 50 55  20 53 74 61 74 65 0D 07  4E 50 0D 07 0D 07 46 53  OR û Restore FPU StateNPFS
00012B00  41 56 45 20 96 20 53 74  6F 72 65 20 46 50 55 20  53 74 61 74 65 0D 07 4E  50 0D 07 0D 07 46 53 43  AVE û Store FPU StateNPFSC
00012B20  41 4C 45 20 96 20 53 63  61 6C 65 0D 07 4E 50 0D  07 0D 07 46 53 49 4E 20  96 20 53 69 6E 65 0D 07  ALE û ScaleNPFSIN û Sine
00012B40  4E 50 0D 07 0D 07 46 53  49 4E 43 4F 53 20 96 20  53 69 6E 65 20 61 6E 64  20 43 6F 73 69 6E 65 0D  NPFSINCOS û Sine and Cosine
00012B60  07 4E 50 0D 07 0D 07 46  53 51 52 54 20 96 20 53  71 75 61 72 65 20 52 6F  6F 74 0D 07 4E 50 0D 07  NPFSQRT û Square RootNP
00012B80  0D 07 46 53 54 20 96 20  53 74 6F 72 65 20 52 65  61 6C 0D 07 4E 50 0D 07  0D 07 46 53 54 43 57 20  FST û Store RealNPFSTCW 
00012BA0  96 20 53 74 6F 72 65 20  43 6F 6E 74 72 6F 6C 20  57 6F 72 64 0D 07 4E 50  0D 07 0D 07 46 53 54 45  û Store Control WordNPFSTE
00012BC0  4E 56 20 96 20 53 74 6F  72 65 20 46 50 55 20 45  6E 76 69 72 6F 6E 6D 65  6E 74 0D 07 4E 50 0D 07  NV û Store FPU EnvironmentNP
00012BE0  0D 07 46 53 54 50 20 96  20 53 74 6F 72 65 20 52  65 61 6C 20 61 6E 64 20  50 6F 70 0D 07 4E 50 0D  FSTP û Store Real and PopNP
00012C00  07 0D 07 46 53 54 53 57  20 96 20 53 74 6F 72 65  20 53 74 61 74 75 73 20  57 6F 72 64 20 69 6E 74  FSTSW û Store Status Word int
00012C20  6F 20 41 58 0D 07 4E 50  0D 07 0D 07 46 53 54 53  57 20 96 20 53 74 6F 72  65 20 53 74 61 74 75 73  o AXNPFSTSW û Store Status
00012C40  20 57 6F 72 64 20 69 6E  74 6F 20 4D 65 6D 6F 72  79 0D 07 4E 50 0D 07 0D  07 46 53 55 42 20 96 20   Word into MemoryNPFSUB û 
00012C60  53 75 62 74 72 61 63 74  0D 07 46 58 0D 07 0D 07  46 53 55 42 50 20 96 20  53 75 62 74 72 61 63 74  SubtractFXFSUBP û Subtract
00012C80  20 61 6E 64 20 50 6F 70  0D 07 46 58 0D 07 0D 07  46 53 55 42 52 20 96 20  52 65 76 65 72 73 65 20   and PopFXFSUBR û Reverse 
00012CA0  53 75 62 74 72 61 63 74  0D 07 46 58 0D 07 0D 07  46 53 55 42 52 50 20 96  20 52 65 76 65 72 73 65  SubtractFXFSUBRP û Reverse
00012CC0  20 53 75 62 74 72 61 63  74 20 61 6E 64 20 50 6F  70 0D 07 46 58 0D 07 0D  07 46 54 53 54 20 96 20   Subtract and PopFXFTST û 
00012CE0  54 65 73 74 0D 07 46 58  0D 07 0D 07 46 55 43 4F  4D 20 96 20 55 6E 6F 72  64 65 72 65 64 20 43 6F  TestFXFUCOM û Unordered Co
00012D00  6D 70 61 72 65 20 52 65  61 6C 29 0D 07 46 58 0D  07 0D 07 46 55 43 4F 4D  50 20 96 20 55 6E 6F 72  mpare Real)FXFUCOMP û Unor
00012D20  64 65 72 65 64 20 43 6F  6D 70 61 72 65 20 61 6E  64 20 50 6F 70 0D 07 46  58 0D 07 0D 07 46 55 43  dered Compare and PopFXFUC
00012D40  4F 4D 50 50 20 96 20 55  6E 6F 72 64 65 72 65 64  20 43 6F 6D 70 61 72 65  20 20 61 6E 64 20 50 6F  OMPP û Unordered Compare  and Po
00012D60  70 20 54 77 69 63 65 0D  07 46 58 0D 07 0D 07 46  58 41 4D 20 96 20 45 78  61 6D 69 6E 65 0D 07 4E  p TwiceFXFXAM û ExamineN
00012D80  50 0D 07 0D 07 46 58 43  48 20 96 20 45 78 63 68  61 6E 67 65 20 53 54 28  30 29 20 61 6E 64 20 53  PFXCH û Exchange ST(0) and S
00012DA0  54 28 69 29 0D 07 0D 07  0D 07 46 58 54 52 41 43  54 20 96 20 45 78 74 72  61 63 74 20 45 78 70 6F  T(i)FXTRACT û Extract Expo
00012DC0  6E 65 6E 74 20 20 61 6E  64 20 53 69 67 6E 69 66  69 63 61 6E 64 0D 07 4E  50 0D 07 0D 07 46 59 4C  nent  and SignificandNPFYL
00012DE0  32 58 20 96 20 53 54 28  31 29 20 13 53 59 4D 42  4F 4C 20 31 38 30 20 5C  66 20 22 53 79 6D 62 6F  2X û ST(1) SYMBOL 180 \f "Symbo
00012E00  6C 22 15 20 6C 6F 67 32  28 53 54 28 30 29 29 0D  07 4E 50 0D 07 0D 07 46  59 4C 32 58 50 31 20 96  l"§ log2(ST(0))NPFYL2XP1 û
00012E20  20 53 54 28 31 29 20 13  53 59 4D 42 4F 4C 20 31  38 30 20 5C 66 20 22 53  79 6D 62 6F 6C 22 15 20   ST(1) SYMBOL 180 \f "Symbol"§ 
00012E40  6C 6F 67 32 28 53 54 28  30 29 20 2B 20 31 2E 30  29 0D 07 4E 50 0D 07 0D  07 46 57 41 49 54 20 96  log2(ST(0) + 1.0)NPFWAIT û
00012E60  20 57 61 69 74 20 75 6E  74 69 6C 20 46 50 55 20  52 65 61 64 79 0D 07 0D  07 0D 07 0D 0A 0D 0A 02   Wait until FPU Ready
00012E80  20 20 54 68 69 73 20 73  65 74 20 69 6E 63 6C 75  64 65 73 20 61 6C 73 6F  20 74 68 65 20 66 61 64    This set includes also the fad
00012EA0  64 70 2C 20 66 73 75 62  72 70 2C 20 2E 2E 2E 20  69 6E 73 74 72 75 63 74  69 6F 6E 73 0D 0A 0D 0A  dp, fsubrp, ... instructions
00012EC0  0D 0A 09 0D 0A 0D 0A 4F  70 74 69 6D 69 7A 61 74  69 6F 6E 73 20 66 6F 72  20 49 6E 74 65 6C 27 73  Optimizations for Intel's
00012EE0  20 33 32 2D 42 69 74 20  50 72 6F 63 65 73 73 6F  72 73 20 20 20 20 20 20  20 20 20 20 20 20 20 20   32-Bit Processors              
00012F00  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20                                  
00012F20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 56 65 72 73 69 6F 6E  20 32 2E 30 0D 0A 0D 0A                   Version 2.0
00012F40  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20                                  
00012F60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20                                  
00012F80  20 20 20 20 20 20 20 20  20 20 20 20 50 61 67 65  20 20 13 50 41 47 45 14  32 33 15 0D 0A 0D 0A 49              Page  PAGE23§I
00012FA0  6E 74 65 6C 20 43 6F 6E  66 69 64 65 6E 74 69 61  6C 09 09 50 61 67 65 20  13 50 41 47 45 14 33 15  ntel ConfidentialPage PAGE3§
00012FC0  0D 0A 0D 0A 09 49 6E 73  74 72 75 63 74 69 6F 6E  20 50 61 69 72 69 6E 67  20 53 75 6D 6D 61 72 79  Instruction Pairing Summary
00012FE0  09 0D 0A 01 0D 0A 0D 0A  0D 0A 0D 0A 09 41 2D 13  50 41 47 45 14 39 15 0D  0A 0D 0A 09 41 2D 13 50  A-PAGE9§A-P
00013000  41 47 45 14 31 15 0D 0A  0D 0A 0D 0A 0D 0A 08 80  08 8D A0 05 8E A0 05 0D  88 01 00 7D 01 80 2A 8D  AGE1§ÇìáÄáê.}Ç*ì
00013020  A0 05 8E A0 05 17 75 04  76 01 88 01 00 7D 01 80  2E 8D A0 05 8E A0 05 73  00 F0 74 00 F0 3A 20 31  áÄáuvê.}Ç.ìáÄás.t.: 1
00013040  BA 06 00 00 3A 00 08 00  51 34 F3 05 7E 2E 00 00  00 00 00 00 00 00 00 00  00 00 00 00 AA 1D 60 03  ..:..Q4~...............¬`
00013060  E1 03 E1 03 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 01 00 09 00 00 01  ßß.........................
00013080  35 03 00 00 04 00 60 01  00 00 00 00 04 00 00 00  03 01 08 00 05 00 00 00  0C 02 B4 00 2E 06 05 00  5...`..............
000130A0  00 00 0B 02 FF FF FF FF  0D 00 00 00 26 06 0F 00  0F 00 43 72 65 61 74 6F  72 3A 20 4D 47 58 57 4D  ..    ...&..Creator: MGXWM
000130C0  46 00 1A 00 00 00 26 06  0F 00 2A 00 43 6F 6D 70  61 74 69 62 6C 65 20 77  69 74 68 20 50 53 43 52  F....&.*.Compatible with PSCR
000130E0  49 50 54 2C 50 6F 73 74  53 63 72 69 70 74 20 50  72 69 6E 74 65 72 04 00  00 00 02 01 02 00 05 00  IPT,PostScript Printer.....
00013100  00 00 01 02 FF FF FF 00  04 00 00 00 04 01 0D 00  04 00 00 00 05 01 01 00  04 00 00 00 06 01 01 00  ..   .............
00013120  08 00 00 00 FA 02 05 00  00 00 00 00 FF FF FF 00  04 00 00 00 2D 01 00 00  07 00 00 00 FC 02 00 00  ...·.....   ....-.......
00013140  00 00 00 00 00 00 04 00  00 00 2D 01 01 00 04 00  00 00 04 01 0D 00 0E 00  00 00 24 03 05 00 13 00  .........-........$..
00013160  0E 00 13 00 00 00 03 00  00 00 03 00 0E 00 13 00  0E 00 0E 00 00 00 24 03  05 00 13 00 55 00 13 00  ..............$..U..
00013180  16 00 03 00 16 00 03 00  55 00 13 00 55 00 78 00  00 00 24 03 3A 00 2F 00  2A 00 2F 00 29 00 30 00  ....U..U.x...$:./.*./.).0.
000131A0  29 00 31 00 28 00 31 00  26 00 33 00 26 00 33 00  25 00 34 00 25 00 35 00  24 00 3E 00 24 00 3E 00  ).1.(.1.&.3.&.3.%.4.%.5.$.>.$.>.
000131C0  25 00 40 00 25 00 40 00  26 00 41 00 27 00 42 00  27 00 42 00 29 00 43 00  29 00 43 00 2C 00 44 00  %.@.%.@.&.A.'.B.'.B.).C.).C.,.D.
000131E0  2C 00 44 00 55 00 54 00  55 00 54 00 25 00 53 00  24 00 53 00 23 00 52 00  22 00 52 00 20 00 51 00  ,.D.U.T.U.T.%.S.$.S.#.R.".R. .Q.
00013200  20 00 51 00 1D 00 50 00  1D 00 4D 00 1A 00 4C 00  1A 00 4C 00 19 00 4B 00  18 00 4A 00 18 00 49 00   .Q..P..M..L..L..K..J..I.
00013220  17 00 48 00 17 00 47 00  16 00 44 00 16 00 43 00  15 00 3B 00 15 00 3A 00  16 00 37 00 16 00 35 00  .H..G..D..C.§.;.§.:..7..5.
00013240  18 00 33 00 18 00 33 00  1A 00 31 00 1A 00 31 00  1B 00 2F 00 1D 00 2F 00  1F 00 2E 00 1F 00 2E 00  .3..3..1..1../../.......
00013260  20 00 2E 00 16 00 1E 00  16 00 1E 00 55 00 2E 00  55 00 2E 00 2C 00 2F 00  2C 00 2F 00 2A 00 60 01   .......U...U...,./.,./.*.`
00013280  00 00 24 03 AE 00 8A 00  48 00 A5 00 48 00 A5 00  45 00 A4 00 45 00 A4 00  42 00 A3 00 41 00 A3 00  ..$«.è.H.Ñ.H.Ñ.E.ñ.E.ñ.B.ú.A.ú.
000132A0  40 00 A2 00 40 00 A1 00  3F 00 A1 00 3E 00 9F 00  3E 00 9F 00 3D 00 9E 00  3D 00 9D 00 3C 00 9B 00  @.ó.@.í.?.í.>.ƒ.>.ƒ.=..=.¥.<.¢.
000132C0  3C 00 9A 00 3B 00 95 00  3B 00 94 00 3C 00 92 00  3C 00 92 00 3D 00 90 00  3D 00 8F 00 3E 00 8E 00  <.Ü.;.ò.;.ö.<.Æ.<.Æ.=.É.=.Å.>.Ä.
000132E0  3E 00 8D 00 3F 00 8D 00  40 00 8B 00 42 00 8B 00  44 00 8A 00 45 00 8A 00  59 00 8B 00 5A 00 8B 00  >.ì.?.ì.@.ï.B.ï.D.è.E.è.Y.ï.Z.ï.
00013300  5C 00 8D 00 5E 00 8D 00  5F 00 8E 00 60 00 8F 00  60 00 8F 00 61 00 90 00  61 00 91 00 62 00 92 00  \.ì.^.ì._.Ä.`.Å.`.Å.a.É.a.æ.b.Æ.
00013320  62 00 92 00 63 00 9E 00  63 00 9E 00 62 00 9F 00  62 00 9F 00 61 00 A1 00  61 00 A1 00 60 00 A2 00  b.Æ.c..c..b.ƒ.b.ƒ.a.í.a.í.`.ó.
00013340  60 00 A3 00 5F 00 A3 00  5E 00 A4 00 5D 00 A4 00  5C 00 B4 00 5C 00 B3 00  5D 00 B3 00 60 00 B2 00  `.ú._.ú.^.ñ.].ñ.\..\..]..`..
00013360  61 00 B2 00 63 00 B1 00  63 00 B0 00 65 00 AD 00  68 00 AD 00 69 00 AB 00  6A 00 A8 00 6D 00 A6 00  a..c..c..e.¡.h.¡.i.½.j.¿.m.ª.
00013380  6D 00 A4 00 6E 00 A4 00  6F 00 A1 00 6F 00 A0 00  70 00 9C 00 70 00 9C 00  71 00 94 00 71 00 92 00  m.ñ.n.ñ.o.í.o.á.p.£.p.£.q.ö.q.Æ.
000133A0  70 00 90 00 70 00 8F 00  6F 00 8C 00 6F 00 8A 00  6D 00 89 00 6D 00 87 00  6C 00 86 00 6B 00 85 00  p.É.p.Å.o.î.o.è.m.ë.m.ç.l.å.k.à.
000133C0  6B 00 80 00 66 00 80 00  65 00 7E 00 63 00 7E 00  62 00 7C 00 60 00 7C 00  5E 00 7B 00 5D 00 7B 00  k.Ç.f.Ç.e.~.c.~.b.|.`.|.^.{.].{.
000133E0  5A 00 7A 00 59 00 79 00  57 00 79 00 56 00 6B 00  56 00 6B 00 55 00 6A 00  55 00 68 00 54 00 66 00  Z.z.Y.y.W.y.V.k.V.k.U.j.U.h.T.f.
00013400  54 00 66 00 53 00 65 00  53 00 65 00 52 00 64 00  51 00 63 00 51 00 63 00  4F 00 62 00 4E 00 62 00  T.f.S.e.S.e.R.d.Q.c.Q.c.O.b.N.b.
00013420  4D 00 61 00 4D 00 61 00  22 00 57 00 22 00 57 00  16 00 61 00 16 00 61 00  00 00 70 00 00 00 70 00  M.a.M.a.".W.".W..a..a...p...p.
00013440  16 00 7C 00 16 00 7C 00  22 00 70 00 22 00 70 00  44 00 71 00 45 00 72 00  45 00 72 00 47 00 73 00  .|..|.".p.".p.D.q.E.r.E.r.G.s.
00013460  47 00 74 00 48 00 79 00  48 00 79 00 47 00 7A 00  46 00 7A 00 45 00 7B 00  43 00 7B 00 41 00 7C 00  G.t.H.y.H.y.G.z.F.z.E.{.C.{.A.|.
00013480  40 00 7C 00 3E 00 7E 00  3C 00 7E 00 3B 00 80 00  3A 00 81 00 39 00 81 00  38 00 83 00 37 00 83 00  @.|.>.~.<.~.;.Ç.:.ü.9.ü.8.â.7.â.
000134A0  36 00 85 00 35 00 85 00  34 00 86 00 34 00 88 00  33 00 89 00 33 00 8B 00  31 00 8C 00 31 00 8D 00  6.à.5.à.4.å.4.ê.3.ë.3.ï.1.î.1.ì.
000134C0  30 00 8F 00 2F 00 94 00  2F 00 95 00 2E 00 9A 00  2E 00 9C 00 2F 00 9F 00  2F 00 A0 00 30 00 A1 00  0.Å./.ö./.ò...Ü...£./.ƒ./.á.0.í.
000134E0  30 00 A3 00 31 00 A4 00  31 00 A6 00 33 00 A8 00  33 00 AE 00 39 00 AE 00  3A 00 AF 00 3B 00 B0 00  0.ú.1.ñ.1.ª.3.¿.3.«.9.«.:.».;..
00013500  3D 00 B1 00 3D 00 B2 00  3E 00 B2 00 40 00 B3 00  41 00 B3 00 43 00 B4 00  44 00 B4 00 45 00 B5 00  =..=..>..@..A..C..D..E..
00013520  47 00 B5 00 4C 00 B7 00  4C 00 B7 00 00 00 C6 00  00 00 C6 00 55 00 8A 00  55 00 8A 00 48 00 08 00  G..L..L........U.è.U.è.H..
00013540  00 00 FA 02 00 00 00 00  00 00 00 00 00 00 04 00  00 00 2D 01 02 00 07 00  00 00 FC 02 01 00 00 00  ..·.............-.......
00013560  00 00 00 00 04 00 00 00  2D 01 03 00 07 00 00 00  18 04 55 00 E3 00 43 00  D0 00 04 00 00 00 2D 01  .......-....U.π.C.....-
00013580  00 00 04 00 00 00 2D 01  01 00 04 00 00 00 02 01  01 00 32 00 00 00 24 03  17 00 D6 00 47 00 D6 00  .....-.....2...$..G..
000135A0  49 00 DD 00 49 00 DD 00  4B 00 DB 00 4C 00 D7 00  4C 00 D7 00 49 00 D6 00  49 00 D6 00 4E 00 DD 00  I..I..K..L..L..I..I..N..
000135C0  4E 00 DD 00 52 00 DF 00  52 00 DE 00 50 00 DE 00  4D 00 DD 00 4D 00 DD 00  4C 00 DF 00 4B 00 DF 00  N..R..R..P..M..M..L..K..
000135E0  49 00 DE 00 49 00 DE 00  48 00 DC 00 48 00 DC 00  47 00 D6 00 47 00 0E 00  00 00 24 03 05 00 D6 00  I..I..H..H..G..G....$..
00013600  4E 00 D6 00 52 00 D7 00  52 00 D7 00 4E 00 D6 00  4E 00 04 00 00 00 2D 01  02 00 26 00 00 00 25 03  N..R..R..N..N....-.&...%
00013620  11 00 D6 00 47 00 D6 00  52 00 D7 00 52 00 D7 00  4D 00 DC 00 4D 00 DD 00  4E 00 DD 00 52 00 DF 00  ..G..R..R..M..M..N..R..
00013640  52 00 DF 00 51 00 DE 00  50 00 DE 00 4D 00 DD 00  4C 00 DF 00 4A 00 DF 00  49 00 DE 00 48 00 DC 00  R..Q..P..M..L..J..I..H..
00013660  47 00 D6 00 47 00 14 00  00 00 25 03 08 00 D7 00  48 00 DC 00 48 00 DD 00  49 00 DD 00 4B 00 DC 00  G..G....%..H..H..I..K..
00013680  4B 00 DB 00 4C 00 D7 00  4C 00 D7 00 48 00 04 00  00 00 2D 01 00 00 04 00  00 00 02 01 02 00 04 00  K..L..L..H....-.......
000136A0  00 00 06 01 02 00 1C 00  00 00 24 03 0C 00 02 00  AB 00 00 00 AB 00 00 00  AE 00 01 00 AE 00 01 00  ......$..½...½...«..«..
000136C0  AF 00 27 06 AF 00 29 06  AD 00 29 06 AC 00 28 06  AC 00 28 06 AB 00 27 06  AB 00 02 00 AB 00 03 00  ».'».)¡.)¼.(¼.(½.'½..½..
000136E0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 02 01 02 00 05 00  ............................
00013700  00 00 01 02 FF FF FF 00  04 00 00 00 04 01 0D 00  04 00 00 00 05 01 01 00  04 00 00 00 06 01 01 00  ..   .............
00013720  08 00 00 00 FA 02 05 00  00 00 00 00 FF FF FF 00  04 00 00 00 2D 01 00 00  07 00 00 00 FC 02 00 00  ...·.....   ....-.......
00013740  00 00 00 00 00 00 04 00  00 00 2D 01 01 00 04 00  00 00 04 01 0D 00 0E 00  00 00 24 03 05 00 13 00  .........-........$..
00013760  0E 00 13 00 00 00 03 00  00 00 03 00 0E 00 13 00  0E 00 0E 00 00 00 24 03  05 00 13 00 55 00 13 00  ..............$..U..
00013780  16 00 03 00 16 00 03 00  55 00 13 00 55 00 78 00  00 00 24 03 3A 00 2F 00  2A 00 2F 00 29 00 30 00  ....U..U.x...$:./.*./.).0.
000137A0  29 00 31 00 28 00 31 00  26 00 33 00 26 00 33 00  25 00 34 00 25 00 35 00  24 00 3E 00 24 00 3E 00  ).1.(.1.&.3.&.3.%.4.%.5.$.>.$.>.
000137C0  25 00 40 00 25 00 40 00  26 00 41 00 27 00 42 00  27 00 42 00 29 00 43 00  29 00 43 00 2C 00 44 00  %.@.%.@.&.A.'.B.'.B.).C.).C.,.D.
000137E0  2C 00 44 00 55 00 54 00  55 00 54 00 25 00 53 00  24 00 53 00 23 00 52 00  22 00 52 00 20 00 51 00  ,.D.U.T.U.T.%.S.$.S.#.R.".R. .Q.
00013800  80 01 00 00 A1 01 00 00  D0 01 00 00 04 02 00 00  13 02 00 00 B1 02 00 00  ED 02 00 00 B6 06 00 00  Ç..í..........φ....
00013820  BC 06 00 00 BE 06 00 00  D5 06 00 00 D7 06 00 00  FC 06 00 00 FD 06 00 00  03 07 00 00 04 07 00 00  ..........²......
00013840  E4 0E 00 00 E5 0E 00 00  E9 0E 00 00 FA 0E 00 00  08 0F 00 00 09 0F 00 00  1F 0F 00 00 20 0F 00 00  Σ..σ..Θ..·........ ..
00013860  79 0F 00 00 7A 0F 00 00  90 0F 00 00 91 0F 00 00  9B 0F 00 00 9C 0F 00 00  B2 0F 00 00 B3 0F 00 00  y..z..É..æ..¢..£......
00013880  C4 0F 00 00 C5 0F 00 00  DB 0F 00 00 DC 0F 00 00  35 13 00 00 70 13 00 00  72 13 00 00 8E 13 00 00  ........5..p..r..Ä..
000138A0  4C 14 00 00 69 14 00 00  7A 15 00 00 94 15 00 00  4E 16 00 00 65 16 00 00  DE 18 00 00 FA 18 00 00  L..i..z§..ö§..N..e....·..
000138C0  19 1A 00 00 32 1A 00 00  91 1E 00 00 A5 1E 00 00  B0 1F 00 00 D2 1F 00 00  90 22 00 00 91 22 00 00  ..2..æ..Ñ......É"..æ"..
000138E0  A7 22 00 00 A8 22 00 00  DB 22 00 00 DC 22 00 00  F2 22 00 00 F3 22 00 00  02 23 00 00 1D 23 00 00  º"..¿"..".."..".."..#..#..
00013900  44 23 00 00 4F 23 00 00  76 24 00 00 90 24 00 00  C6 28 00 00 D5 28 00 00  D8 2A 00 00 F6 2A 00 00  D#..O#..v$..É$..(..(..*..÷*..
00013920  51 2C 00 00 6D 2C 00 00  65 2E 00 00 A8 2E 00 00  DE 2F 00 00 E2 2F 00 00  32 32 00 00 49 32 00 00  Q,..m,..e...¿.../..Γ/..22..I2..
00013940  40 35 00 00 A9 35 00 00  56 36 00 00 4E 38 00 00  1D 3A 00 00 21 3A 00 00  C8 3A 00 00 CE 3A 00 00  @5..5..V6..N8..:..!:..:..:..
00013960  FB F7 00 F6 00 F3 EF F3  EB E7 F3 00 E5 00 E5 00  E5 00 E1 00 E5 00 E5 00  E5 00 E5 00 E5 00 E5 00  .÷.δτ.σ.σ.σ.ß.σ.σ.σ.σ.σ.σ.
00013980  E5 00 E5 00 E1 00 F6 00  F6 00 F6 00 F6 00 F6 00  F6 00 F6 00 F6 00 E5 00  E5 00 E5 00 E5 00 F6 00  σ.σ.ß.÷.÷.÷.÷.÷.÷.÷.÷.σ.σ.σ.σ.÷.
000139A0  E0 00 F6 00 F6 00 F6 00  F6 00 F6 00 DD 00 E1 00  DD 00 DD 00 DD 00 F6 00  00 00 05 00 00 02 00 05  α.÷.÷.÷.÷.÷..ß....÷......
000139C0  01 02 07 01 00 04 00 00  00 18 02 00 02 00 07 00  00 06 00 0B 00 0C 07 00  00 06 00 01 00 0C 07 00  ...............
000139E0  00 06 00 0B 00 10 05 00  00 02 00 0A 01 01 07 01  00 04 00 00 00 30 07 01  00 04 00 00 00 1C 00 57  ..........0.....W
00013A00  CE 3A 00 00 D0 3A 00 00  F5 3A 00 00 FB 3A 00 00  FE 3A 00 00 4B 3B 00 00  4E 3B 00 00 9C 3B 00 00  :..:..:..:..:..K;..N;..£;..
00013A20  E8 3D 00 00 AD 3F 00 00  AF 3F 00 00 F5 3F 00 00  F7 3F 00 00 F9 40 00 00  FE 40 00 00 FF 40 00 00  Φ=..¡?..»?..?..?..@..@.. @..
00013A40  23 41 00 00 25 41 00 00  2B 41 00 00 38 41 00 00  3F 41 00 00 FB 42 00 00  BD 43 00 00 BF 43 00 00  #A..%A..+A..8A..?A..B..C..C..
00013A60  D0 43 00 00 D3 43 00 00  1C 44 00 00 1F 44 00 00  3C 44 00 00 3E 44 00 00  AA 45 00 00 D5 45 00 00  C..C..D..D..<D..>D..¬E..E..
00013A80  D7 45 00 00 81 47 00 00  65 48 00 00 9B 48 00 00  9D 48 00 00 B0 48 00 00  B2 48 00 00 BC 48 00 00  E..üG..eH..¢H..¥H..H..H..H..
00013AA0  C0 49 00 00 D9 49 00 00  E0 49 00 00 0E 4A 00 00  11 4A 00 00 6B 4A 00 00  72 4A 00 00 B9 4A 00 00  I..I..αI..J..J..kJ..rJ..J..
00013AC0  E6 4A 00 00 E8 4A 00 00  20 4C 00 00 ED 4C 00 00  F1 4C 00 00 41 4D 00 00  6B 4D 00 00 6D 4D 00 00  µJ..ΦJ.. L..φL..±L..AM..kM..mM..
00013AE0  74 4D 00 00 77 4D 00 00  80 4D 00 00 8F 4E 00 00  81 4F 00 00 8B 4F 00 00  E7 4F 00 00 EA 4F 00 00  tM..wM..ÇM..ÅN..üO..ïO..τO..ΩO..
00013B00  F7 4F 00 00 FA 4F 00 00  10 50 00 00 13 50 00 00  1D 50 00 00 21 50 00 00  29 51 00 00 2C 51 00 00  O..·O..P..P..P..!P..)Q..,Q..
00013B20  46 51 00 00 49 51 00 00  19 53 00 00 69 55 00 00  B4 56 00 00 CC 56 00 00  3E 59 00 00 5B 59 00 00  FQ..IQ..S..iU..V..V..>Y..[Y..
00013B40  DA 5C 00 00 04 5D 00 00  06 5D 00 00 30 5D 00 00  98 5E 00 00 F2 5E 00 00  BA 5F 00 00 E4 5F 00 00  \..]..]..0]..ÿ^..^.._..Σ_..
00013B60  F2 60 00 00 53 61 00 00  DA 63 00 00 F1 63 00 00  24 64 00 00 8B 64 00 00  8F 64 00 00 93 64 00 00  `..Sa..c..±c..$d..ïd..Åd..ôd..
00013B80  00 FE 00 FB 00 FB 00 FB  00 FB 00 FB 00 FE 00 FE  00 F5 FB F5 FB 00 FB 00  FB 00 FB 00 FB 00 FE 00  ...............
00013BA0  FB 00 FE 00 F5 FB F5 FB  00 FB 00 FB 00 FB 00 FE  00 FB 00 FB 00 FE 00 F5  FB F5 FB 00 FB 00 FB 00  .............
00013BC0  FB 00 FB 00 FB 00 FB 00  FB 00 FB 00 FE 00 F1 00  F1 00 FE 00 FB 00 FE 00  FB 00 FB 00 FB 00 FB 00  .......±.±........
00013BE0  00 00 07 01 00 04 00 00  00 18 0A 00 00 0A 00 05  00 00 00 00 20 00 05 00  00 02 00 05 01 01 00 5F  ............. ....._
00013C00  93 64 00 00 98 64 00 00  9B 64 00 00 B5 64 00 00  B8 64 00 00 0B 65 00 00  0E 65 00 00 1F 65 00 00  ôd..ÿd..¢d..d..d..e..e..e..
00013C20  4E 65 00 00 B7 65 00 00  BC 65 00 00 C3 65 00 00  D9 65 00 00 05 66 00 00  1B 66 00 00 6E 67 00 00  Ne..e..e..e..e..f..f..ng..
00013C40  F1 67 00 00 C1 68 00 00  12 69 00 00 35 69 00 00  67 69 00 00 69 69 00 00  81 69 00 00 CB 6E 00 00  ±g..h..i..5i..gi..ii..üi..n..
00013C60  E8 6E 00 00 EA 6E 00 00  10 6F 00 00 EF 71 00 00  FC 71 00 00 74 72 00 00  87 72 00 00 1F 73 00 00  Φn..Ωn..o..q..q..tr..çr..s..
00013C80  35 73 00 00 76 73 00 00  8C 73 00 00 F1 73 00 00  07 74 00 00 E7 76 00 00  11 77 00 00 19 77 00 00  5s..vs..îs..±s..t..τv..w..w..
00013CA0  1D 77 00 00 1E 77 00 00  21 77 00 00 88 77 00 00  8B 77 00 00 7E 79 00 00  AA 79 00 00 12 7D 00 00  w..w..!w..êw..ïw..~y..¬y..}..
00013CC0  19 7D 00 00 19 7E 00 00  1B 7E 00 00 10 80 00 00  20 80 00 00 9F 82 00 00  C4 82 00 00 C6 82 00 00  }..~..~..Ç.. Ç..ƒé..é..é..
00013CE0  ED 82 00 00 F2 82 00 00  FE 82 00 00 4C 83 00 00  54 83 00 00 7F 83 00 00  A8 83 00 00 DE 83 00 00  φé..é..é..Lâ..Tâ..â..¿â..â..
00013D00  F0 83 00 00 20 84 00 00  33 84 00 00 37 84 00 00  75 84 00 00 A5 84 00 00  B5 84 00 00 E9 84 00 00  â.. ä..3ä..7ä..uä..Ñä..ä..Θä..
00013D20  F2 84 00 00 35 85 00 00  46 85 00 00 4A 85 00 00  83 85 00 00 4E 86 00 00  58 86 00 00 D4 86 00 00  ä..5à..Fà..Jà..âà..Nå..Xå..å..
00013D40  E3 86 00 00 E7 86 00 00  20 87 00 00 D0 88 00 00  EA 88 00 00 01 89 00 00  05 89 00 00 13 89 00 00  πå..τå.. ç..ê..Ωê..ë..ë..ë..
00013D60  16 89 00 00 29 89 00 00  2B 89 00 00 69 89 00 00  6D 89 00 00 71 89 00 00  99 89 00 00 1F 8A 00 00  ë..)ë..+ë..ië..më..që..Öë..è..
00013D80  32 8A 00 00 BD 8A 00 00  CE 8A 00 00 DF 8A 00 00  00 FC 00 FC 00 FC 00 FC  00 FB 00 FB 00 FB 00 FC  2è..è..è..è..........
00013DA0  00 FC 00 FC 00 FA 00 FA  00 FA 00 FA 00 FA 00 FA  00 FA 00 FA 00 FC 00 FB  00 FB 00 FC 00 FA 00 FB  ...·.·.·.·.·.·.·.·.....·.
00013DC0  00 FB 00 FA 00 FA 00 FA  00 FB 00 FC 00 FC 00 FC  00 FC 00 FA 00 FC 00 FC  00 FC 00 FA 00 FC 00 FC  ..·.·.·......·....·..
00013DE0  00 FA 00 FC 00 FC 00 FC  00 FC 00 FC 00 FA 00 FB  00 FB 00 00 01 01 01 02  05 00 00 02 00 05 00 63  .·......·........c
00013E00  DF 8A 00 00 07 8B 00 00  3A 8B 00 00 4D 8B 00 00  5E 8B 00 00 86 8B 00 00  20 8D 00 00 4A 8D 00 00  è..ï..:ï..Mï..^ï..åï.. ì..Jì..
00013E20  EC 8D 00 00 0E 8E 00 00  43 8E 00 00 46 8E 00 00  4B 8E 00 00 60 8E 00 00  2D 8F 00 00 30 8F 00 00  ì..Ä..CÄ..FÄ..KÄ..`Ä..-Å..0Å..
00013E40  7D 8F 00 00 99 8F 00 00  9E 8F 00 00 B2 8F 00 00  B7 8F 00 00 CC 8F 00 00  E7 8F 00 00 F8 8F 00 00  }Å..ÖÅ..Å..Å..Å..Å..τÅ..°Å..
00013E60  FF 8F 00 00 10 90 00 00  40 90 00 00 49 90 00 00  64 90 00 00 6D 90 00 00  71 90 00 00 79 90 00 00   Å..É..@É..IÉ..dÉ..mÉ..qÉ..yÉ..
00013E80  87 90 00 00 AE 90 00 00  29 93 00 00 6E 93 00 00  FE 94 00 00 66 95 00 00  51 9A 00 00 74 9A 00 00  çÉ..«É..)ô..nô..ö..fò..QÜ..tÜ..
00013EA0  FA 9A 00 00 FB 9A 00 00  FE 9A 00 00 FF 9A 00 00  80 9B 00 00 97 9B 00 00  AF 9B 00 00 B2 9B 00 00  ·Ü..Ü..Ü.. Ü..Ç¢..ù¢..»¢..¢..
00013EC0  D0 9B 00 00 D3 9B 00 00  D5 9B 00 00 D8 9B 00 00  DA 9B 00 00 DD 9B 00 00  AC 9C 00 00 AF 9C 00 00  ¢..¢..¢..¢..¢..¢..¼£..»£..
00013EE0  EC 9C 00 00 EF 9C 00 00  4D 9D 00 00 50 9D 00 00  BA 9D 00 00 BD 9D 00 00  E9 9D 00 00 EC 9D 00 00  £..£..M¥..P¥..¥..¥..Θ¥..¥..
00013F00  50 9E 00 00 68 9E 00 00  97 9E 00 00 A9 9E 00 00  DF 9E 00 00 F6 9E 00 00  FE 9E 00 00 03 9F 00 00  P..h..ù......÷....ƒ..
00013F20  AC 9F 00 00 C9 9F 00 00  08 A0 00 00 0B A0 00 00  36 A0 00 00 39 A0 00 00  41 A0 00 00 4C A0 00 00  ¼ƒ..ƒ..á..á..6á..9á..Aá..Lá..
00013F40  8E A0 00 00 93 A0 00 00  E6 A0 00 00 EE A0 00 00  F6 A0 00 00 FA A0 00 00  E5 A1 00 00 FE A1 00 00  Äá..ôá..µá..εá..÷á..·á..σí..í..
00013F60  00 A2 00 00 0D A2 00 00  C1 A2 00 00 C4 A2 00 00  C9 A2 00 00 CC A2 00 00  03 A3 00 00 06 A3 00 00  .ó..ó..ó..ó..ó..ó..ú..ú..
00013F80  0A A3 00 00 0D A3 00 00  12 A3 00 00 FC 00 FB 00  FC 00 FC 00 FC 00 FC 00  FA 00 FC 00 FC 00 FC 00  ú..ú..ú........·....
00013FA0  FC 00 FC 00 FC 00 FC 00  FB 00 FB 00 FA 00 FC 00  FC 00 FA 00 FA F9 FA 00  FC 00 FC 00 FC 00 FC 00  ......·...·.··.....
00013FC0  FC 00 FC 00 FC 00 FC 00  FC 00 FC 00 FA 00 FC 00  FA 00 FC 00 FC 00 FC 00  FC 00 FC 00 FC 00 FA 00  ......·..·.......·.
00013FE0  FC 00 FC 00 FA 00 FC 00  FC 00 FC 00 FC 00 00 00  00 00 01 03 01 01 01 02  05 00 00 02 00 05 00 62  ..·.............b
00014000  12 A3 00 00 25 A3 00 00  F2 A4 00 00 24 A5 00 00  71 A5 00 00 72 A5 00 00  7E A5 00 00 83 A5 00 00  ú..%ú..ñ..$Ñ..qÑ..rÑ..~Ñ..âÑ..
00014020  8E A5 00 00 90 A5 00 00  92 A5 00 00 44 A6 00 00  74 A6 00 00 BF A6 00 00  A8 A7 00 00 AB A7 00 00  ÄÑ..ÉÑ..ÆÑ..Dª..tª..ª..¿º..½º..
00014040  AF A7 00 00 B2 A7 00 00  FE A7 00 00 06 A8 00 00  0E A8 00 00 12 A8 00 00  FB A8 00 00 FF A8 00 00  »º..º..º..¿..¿..¿..¿.. ¿..
00014060  12 A9 00 00 15 A9 00 00  22 A9 00 00 25 A9 00 00  67 A9 00 00 6B A9 00 00  7B A9 00 00 7E A9 00 00  ..§.."..%..g..k..{..~..
00014080  84 A9 00 00 85 A9 00 00  B6 A9 00 00 BA A9 00 00  32 AA 00 00 35 AA 00 00  37 AA 00 00 4B AA 00 00  ä..à......2¬..5¬..7¬..K¬..
000140A0  4F AA 00 00 53 AA 00 00  89 AA 00 00 91 AA 00 00  95 AA 00 00 9D AA 00 00  AF AA 00 00 B3 AA 00 00  O¬..S¬..ë¬..æ¬..ò¬..¥¬..»¬..¬..
000140C0  D8 AA 00 00 EC AA 00 00  64 AD 00 00 79 AD 00 00  B0 AD 00 00 BC AD 00 00  2F AE 00 00 39 AE 00 00  ¬..¬..d¡..y¡..¡..¡../«..9«..
000140E0  3E AE 00 00 4E AE 00 00  7E AE 00 00 81 AE 00 00  A7 AE 00 00 AF AE 00 00  C4 AE 00 00 C7 AE 00 00  >«..N«..~«..ü«..º«..»«..«..«..
00014100  D0 AE 00 00 D3 AE 00 00  EB AE 00 00 EE AE 00 00  F4 AE 00 00 F7 AE 00 00  0A AF 00 00 0D AF 00 00  «..«..δ«..ε«..«..«..»..»..
00014120  5A AF 00 00 5D AF 00 00  22 B0 00 00 2E B0 00 00  33 B0 00 00 45 B0 00 00  7F B0 00 00 82 B0 00 00  Z»..]»..".....3..E....é..
00014140  8A B0 00 00 8E B0 00 00  A3 B0 00 00 A7 B0 00 00  3A B1 00 00 3D B1 00 00  84 B1 00 00 87 B1 00 00  è..Ä..ú..º..:..=..ä..ç..
00014160  A8 B1 00 00 AB B1 00 00  E8 B1 00 00 EB B1 00 00  4A B2 00 00 6E B2 00 00  F3 B2 00 00 FE 00 FB 00  ¿..½..Φ..δ..J..n......
00014180  F5 EF FB EF FB 00 FB 00  FB 00 FB 00 FB 00 FE 00  FB 00 FB 00 FB 00 FB 00  FB 00 FB 00 FB 00 FB 00  ..............
000141A0  FB 00 FB 00 FB 00 FB 00  FB 00 FB 00 FE 00 FE 00  FB 00 FB 00 FE 00 FB 00  FB 00 FB 00 FB 00 FB 00  ................
000141C0  FB 00 FB 00 FB 00 FB 00  FE 00 FB 00 FB 00 FB 00  FB 00 FB 00 FB 00 FB 00  FE 00 00 00 00 00 0A 00  ..................
000141E0  00 0A 00 05 00 00 00 00  20 00 0A 00 00 08 00 00  00 00 00 00 20 00 05 00  00 02 00 05 01 01 00 5E  ...... ......... .....^
00014200  F3 B2 00 00 F6 B2 00 00  24 B3 00 00 27 B3 00 00  2C B3 00 00 2F B3 00 00  45 B3 00 00 4C B3 00 00  ..÷..$..'..,../..E..L..
00014220  4E B3 00 00 5D B3 00 00  E1 B3 00 00 E4 B3 00 00  50 B4 00 00 54 B4 00 00  69 B4 00 00 85 B4 00 00  N..]..ß..Σ..P..T..i..à..
00014240  DD B4 00 00 E3 B4 00 00  E5 B4 00 00 E9 B4 00 00  EA B4 00 00 EF B4 00 00  F5 B4 00 00 F9 B4 00 00  ..π..σ..Θ..Ω........
00014260  16 B6 00 00 1B B6 00 00  20 B6 00 00 23 B6 00 00  89 B9 00 00 B6 B9 00 00  32 BB 00 00 F6 BB 00 00  .... ..#..ë....2..÷..
00014280  6E BC 00 00 93 BC 00 00  95 BC 00 00 C9 BC 00 00  CA BD 00 00 E8 BD 00 00  FD BD 00 00 6C BE 00 00  n..ô..ò......Φ..²..l..
000142A0  9C BE 00 00 C4 BE 00 00  DE BE 00 00 6F C0 00 00  7F C1 00 00 83 C1 00 00  A0 C1 00 00 A4 C1 00 00  £......o....â..á..ñ..
000142C0  AA C1 00 00 AF C1 00 00  B3 C1 00 00 B7 C1 00 00  54 C2 00 00 57 C2 00 00  5B C2 00 00 5F C2 00 00  ¬..»......T..W..[.._..
000142E0  8D C2 00 00 91 C2 00 00  96 C2 00 00 9A C2 00 00  DD C2 00 00 E0 C2 00 00  EA C2 00 00 ED C2 00 00  ì..æ..û..Ü....α..Ω..φ..
00014300  4D C3 00 00 50 C3 00 00  6E C5 00 00 4B C9 00 00  F5 CB 00 00 F9 CB 00 00  61 CC 00 00 65 CC 00 00  M..P..n..K......a..e..
00014320  FE CC 00 00 02 CD 00 00  AF CD 00 00 B3 CD 00 00  82 D4 00 00 EC D4 00 00  F0 D4 00 00 2B D5 00 00  ....»....é......+..
00014340  2F D5 00 00 5E D5 00 00  62 D5 00 00 84 D5 00 00  88 D5 00 00 8D D5 00 00  91 D5 00 00 D6 D5 00 00  /..^..b..ä..ê..ì..æ....
00014360  DA D5 00 00 A4 D6 00 00  A8 D6 00 00 C8 D6 00 00  CB D6 00 00 FC 00 FC 00  FC 00 FC 00 FB 00 FC 00  ..ñ..¿............
00014380  FC 00 FB 00 FC 00 FC 00  FC 00 FC 00 FC 00 FC 00  FC 00 FC 00 F7 00 FB 00  FB 00 FC 00 FC F1 FC 00  ..............±.
000143A0  FC 00 FC 00 FC 00 FC 00  FC 00 FC 00 FC 00 FC 00  FC 00 FC 00 FC 00 FC 00  FC 00 FC 00 FC 00 ED E9  ...............φΘ
000143C0  00 FC 00 FC 00 FC 00 FC  00 FC 00 FC 00 FC 00 FC  00 00 07 00 00 06 00 05  00 10 07 00 00 04 00 00  ..................
000143E0  00 10 0A 00 00 0A 00 05  00 00 00 00 20 00 07 01  00 04 00 00 00 18 01 01  05 00 00 02 00 05 00 5C  ........ .........\
00014400  CB D6 00 00 0B D7 00 00  2D D7 00 00 33 D7 00 00  37 D7 00 00 AD D7 00 00  B1 D7 00 00 1F D8 00 00  ....-..3..7..¡......
00014420  5A D8 00 00 63 D8 00 00  67 D8 00 00 08 DA 00 00  20 DA 00 00 2C DB 00 00  49 DB 00 00 20 DE 00 00  Z..c..g.... ..,..I.. ..
00014440  54 DE 00 00 56 DE 00 00  86 DF 00 00 87 DF 00 00  3E E1 00 00 71 E1 00 00  76 E1 00 00 7B E1 00 00  T..V..å..ç..>ß..qß..vß..{ß..
00014460  80 E1 00 00 C1 E1 00 00  C6 E1 00 00 FF E1 00 00  04 E2 00 00 9A E2 00 00  9E E2 00 00 C6 E2 00 00  Çß..ß..ß.. ß..Γ..ÜΓ..Γ..Γ..
00014480  CB E2 00 00 8B E3 00 00  8E E3 00 00 93 E3 00 00  96 E3 00 00 D4 E3 00 00  D8 E3 00 00 DD E3 00 00  Γ..ïπ..Äπ..ôπ..ûπ..π..π..π..
000144A0  E1 E3 00 00 09 E4 00 00  0C E4 00 00 36 E4 00 00  37 E4 00 00 3C E4 00 00  6D E5 00 00 B8 E5 00 00  ßπ..Σ..Σ..6Σ..7Σ..<Σ..mσ..σ..
000144C0  3F E6 00 00 86 E6 00 00  89 E6 00 00 8D E6 00 00  C7 E6 00 00 2D E7 00 00  37 E7 00 00 3C E7 00 00  ?µ..åµ..ëµ..ìµ..µ..-τ..7τ..<τ..
000144E0  40 E7 00 00 F4 E7 00 00  F8 E7 00 00 FD E7 00 00  02 E8 00 00 9A E9 00 00  9D E9 00 00 A2 E9 00 00  @τ..τ..°τ..²τ..Φ..ÜΘ..¥Θ..óΘ..
00014500  A6 E9 00 00 55 EA 00 00  59 EA 00 00 9F EA 00 00  A3 EA 00 00 AA EA 00 00  B5 EA 00 00 04 EC 00 00  ªΘ..UΩ..YΩ..ƒΩ..úΩ..¬Ω..Ω....
00014520  15 EC 00 00 64 EC 00 00  68 EC 00 00 D8 EC 00 00  DD EC 00 00 EE EC 00 00  F2 EC 00 00 28 ED 00 00  §..d..h......ε....(φ..
00014540  CA ED 00 00 D6 ED 00 00  E2 ED 00 00 31 EE 00 00  36 EE 00 00 87 EE 00 00  9A EE 00 00 A6 EF 00 00  φ..φ..Γφ..1ε..6ε..çε..Üε..ª..
00014560  B0 EF 00 00 FF EF 00 00  03 F1 00 00 35 F1 00 00  D1 F1 00 00 D8 F2 00 00  DC F2 00 00 E1 F2 00 00  .. ..±..5±..±......ß..
00014580  F2 F2 00 00 00 FE 00 FB  00 FB 00 FB 00 FB 00 FE  00 FE 00 FB 00 FB 00 FB  00 FB 00 FB 00 FB 00 FB  ................
000145A0  00 FB 00 FB 00 FB 00 FB  00 FB 00 FB 00 FB 00 F5  00 FB 00 FB 00 FB 00 FB  00 FB 00 FB 00 FB 00 FB  ................
000145C0  00 FB 00 FB 00 FB 00 FB  00 FB 00 FB 00 FB 00 FB  00 FB 00 FB 00 FB 00 FB  00 FB 00 FB 00 FB 00 FB  ................
000145E0  00 FB 00 F4 00 00 00 00  01 02 0B 00 02 14 00 00  00 10 00 00 00 06 05 00  00 02 00 05 01 01 00 60  .................`
00014600  F2 F2 00 00 57 F4 00 00  62 F4 00 00 6A F4 00 00  73 F4 00 00 3A F5 00 00  3E F5 00 00 4A F5 00 00  ..W..b..j..s..:..>..J..
00014620  23 F7 00 00 2D F7 00 00  2F F7 00 00 43 F7 00 00  47 F7 00 00 59 F7 00 00  5D F7 00 00 68 F7 00 00  #..-../..C..G..Y..]..h..
00014640  6A F7 00 00 71 F7 00 00  98 F7 00 00 A2 F7 00 00  01 F8 00 00 0A F8 00 00  4F F8 00 00 55 F8 00 00  j..q..ÿ..ó..°..°..O°..U°..
00014660  A5 F8 00 00 AB F8 00 00  DE F8 00 00 43 F9 00 00  45 F9 00 00 4C F9 00 00  A0 F9 00 00 AC F9 00 00  Ѱ..½°..°..C..E..L..á..¼..
00014680  D8 F9 00 00 F2 F9 00 00  25 FA 00 00 27 FA 00 00  5A FA 00 00 5C FA 00 00  9E FA 00 00 AB FA 00 00  ....%·..'·..Z·..\·..·..½·..
000146A0  D4 FA 00 00 ED FA 00 00  5A FC 00 00 5B FC 00 00  74 FC 00 00 75 FC 00 00  76 FC 00 00 77 FC 00 00  ·..φ·..Z..[..t..u..v..w..
000146C0  78 FC 00 00 79 FC 00 00  90 FC 00 00 91 FC 00 00  AC FC 00 00 AD FC 00 00  B3 FC 00 00 16 FD 00 00  x..y..É..æ..¼..¡....²..
000146E0  A1 FD 00 00 D4 FD 00 00  FE FD 00 00 27 FE 00 00  44 FE 00 00 61 FE 00 00  63 FE 00 00 84 FE 00 00  í²..²..²..'..D..a..c..ä..
00014700  8A FE 00 00 8C FE 00 00  B3 FE 00 00 B7 FE 00 00  B9 FE 00 00 DF FE 00 00  E3 FE 00 00 E5 FE 00 00  è..î..........π..σ..
00014720  0E FF 00 00 12 FF 00 00  14 FF 00 00 28 FF 00 00  2E FF 00 00 30 FF 00 00  39 FF 00 00 3F FF 00 00   .. .. ..( ... ..0 ..9 ..? ..
00014740  41 FF 00 00 54 FF 00 00  58 FF 00 00 5A FF 00 00  7F FF 00 00 83 FF 00 00  00 FA F7 FA F7 00 F3 00  A ..T ..X ..Z .. ..â ...··..
00014760  F2 EC F2 EC F2 EC F2 00  F2 00 F2 00 F2 00 F2 00  F2 00 F2 00 F2 00 F2 00  F2 00 F2 00 F2 00 F2 00  .............
00014780  F2 00 EA 00 EA 00 EA 00  EA 00 EA 00 EA 00 E7 00  E7 00 E7 00 E3 DF E3 DB  D7 E3 DB D7 E3 DB D7 E3  .Ω.Ω.Ω.Ω.Ω.Ω.τ.τ.τ.πππππ
000147A0  DB D7 E3 DB D7 E3 DB D7  E3 DB D7 E3 DB 00 07 00  00 06 00 07 00 0E 07 00  00 04 00 00 00 0E 07 01  ππππ..........
000147C0  00 06 00 07 00 0E 07 01  00 04 00 00 00 0E 05 00  00 02 00 07 02 00 02 00  0B 01 00 14 00 00 00 0C  ................
000147E0  00 00 00 06 01 01 07 01  00 04 00 00 00 18 05 00  00 02 00 05 0A 00 00 0A  00 05 00 00 00 00 20 55  ................. U
00014800  83 FF 00 00 85 FF 00 00  A9 FF 00 00 AD FF 00 00  AF FF 00 00 C5 FF 00 00  CB FF 00 00 CD FF 00 00  â ..à .. ..¡ ..» .. .. .. ..
00014820  E3 FF 00 00 E9 FF 00 00  EB FF 00 00 FE FF 00 00  02 00 01 00 04 00 01 00  13 00 01 00 17 00 01 00  π ..Θ ..δ .. ..........
00014840  19 00 01 00 38 00 01 00  3C 00 01 00 3E 00 01 00  58 00 01 00 5C 00 01 00  5E 00 01 00 76 00 01 00  ..8..<..>..X..\..^..v..
00014860  7A 00 01 00 7C 00 01 00  A5 00 01 00 A7 00 01 00  A9 00 01 00 D0 00 01 00  D2 00 01 00 D6 00 01 00  z..|..Ñ..º..........
00014880  D8 00 01 00 03 01 01 00  05 01 01 00 09 01 01 00  0B 01 01 00 35 01 01 00  37 01 01 00 3B 01 01 00  ......5.7.;.
000148A0  3D 01 01 00 67 01 01 00  6B 01 01 00 6D 01 01 00  AC 01 01 00 B0 01 01 00  B2 01 01 00 CA 01 01 00  =.g.k.m.¼....
000148C0  CE 01 01 00 D0 01 01 00  EC 01 01 00 F0 01 01 00  F2 01 01 00 0E 02 01 00  12 02 01 00 14 02 01 00  ........
000148E0  3C 02 01 00 40 02 01 00  42 02 01 00 5F 02 01 00  63 02 01 00 65 02 01 00  81 02 01 00 85 02 01 00  <.@.B._.c.e.ü.à.
00014900  87 02 01 00 B9 02 01 00  BD 02 01 00 BF 02 01 00  E0 02 01 00 E4 02 01 00  E6 02 01 00 11 03 01 00  ç....α.Σ.µ..
00014920  15 03 01 00 17 03 01 00  32 03 01 00 34 03 01 00  52 03 01 00 56 03 01 00  58 03 01 00 80 03 01 00  §..2.4.R.V.X.Ç.
00014940  84 03 01 00 86 03 01 00  B1 03 01 00 B5 03 01 00  B7 03 01 00 CD 03 01 00  D1 03 01 00 D3 03 01 00  ä.å.......
00014960  EA 03 01 00 EE 03 01 00  F0 03 01 00 23 04 01 00  27 04 01 00 29 04 01 00  35 04 01 00 37 04 01 00  Ω.ε..#.'.).5.7.
00014980  39 04 01 00 FB F7 F3 FB  F7 F3 FB F7 F3 FB F7 F3  FB F7 F3 FB F7 F3 FB F7  F3 FB F7 F3 FB F7 F3 FB  9.
000149A0  F3 F7 F3 FB F3 F7 F3 FB  F3 F7 F3 FB F7 F3 FB F7  F3 FB F7 F3 FB F7 F3 FB  F7 F3 FB F7 F3 FB F7 F3  
000149C0  FB F7 F3 FB F7 F3 FB F7  F3 FB F7 F3 FB F7 F3 F7  F3 FB F7 F3 FB F7 F3 FB  F7 F3 FB F7 F3 FB F7 F3  
000149E0  FB F7 F3 FB 00 00 07 00  00 04 00 00 00 0E 07 01  00 04 00 00 00 0E 07 00  00 06 00 07 00 0E 00 60  ................`
00014A00  39 04 01 00 56 04 01 00  61 04 01 00 63 04 01 00  80 04 01 00 82 04 01 00  98 04 01 00 9C 04 01 00  9.V.a.c.Ç.é.ÿ.£.
00014A20  9E 04 01 00 B6 04 01 00  BA 04 01 00 BC 04 01 00  D2 04 01 00 D6 04 01 00  D8 04 01 00 F3 04 01 00  ........
00014A40  F7 04 01 00 F9 04 01 00  18 05 01 00 1C 05 01 00  1E 05 01 00 3E 05 01 00  42 05 01 00 44 05 01 00  .....>.B.D.
00014A60  5D 05 01 00 61 05 01 00  63 05 01 00 82 05 01 00  86 05 01 00 88 05 01 00  A7 05 01 00 AB 05 01 00  ].a.c.é.å.ê.º.½.
00014A80  AD 05 01 00 CD 05 01 00  D1 05 01 00 D3 05 01 00  F5 05 01 00 F9 05 01 00  FB 05 01 00 27 06 01 00  ¡.......'.
00014AA0  29 06 01 00 2B 06 01 00  52 06 01 00 54 06 01 00  58 06 01 00 5A 06 01 00  81 06 01 00 83 06 01 00  ).+.R.T.X.Z.ü.â.
00014AC0  87 06 01 00 89 06 01 00  B4 06 01 00 B6 06 01 00  BA 06 01 00 BC 06 01 00  E6 06 01 00 E8 06 01 00  ç.ë.....µ.Φ.
00014AE0  EC 06 01 00 EE 06 01 00  1B 07 01 00 1F 07 01 00  21 07 01 00 45 07 01 00  49 07 01 00 4B 07 01 00  .ε...!.E.I.K.
00014B00  6A 07 01 00 6E 07 01 00  70 07 01 00 8A 07 01 00  8E 07 01 00 90 07 01 00  AE 07 01 00 B2 07 01 00  j.n.p.è.Ä.É.«..
00014B20  B4 07 01 00 D0 07 01 00  D1 07 01 00 D7 07 01 00  DB 07 01 00 DD 07 01 00  F8 07 01 00 FC 07 01 00  ......°..
00014B40  FE 07 01 00 19 08 01 00  1D 08 01 00 1F 08 01 00  4D 08 01 00 51 08 01 00  53 08 01 00 6E 08 01 00  ....M.Q.S.n.
00014B60  72 08 01 00 74 08 01 00  A5 08 01 00 A9 08 01 00  AB 08 01 00 D8 08 01 00  DC 08 01 00 00 FE 00 FA  r.t.Ñ..½.....·
00014B80  F6 FA F2 EE FA F2 EE FA  F2 EE FA F2 EE FA F2 EE  FA F2 EE FA F2 EE FA F2  EE FA F2 EE FA F2 EE FA  ÷·ε·ε·ε·ε·ε·ε·ε·ε·ε·ε·
00014BA0  F2 EE FA F2 EE F2 FA F2  EE F2 FA F2 EE F2 FA F2  EE F2 FA F2 EE FA F2 EE  FA F2 EE FA F2 EE FA F2  ε·ε·ε·ε·ε·ε·ε·ε·ε·
00014BC0  EE FA F2 EE FA F2 FA F2  EE FA F2 EE FA F2 EE FA  F2 EE FA F2 EE FA F2 EE  FA F2 00 00 07 00 00 06  ε·ε··ε·ε·ε·ε·ε·ε·....
00014BE0  00 07 00 0E 07 00 00 04  00 00 00 0E 07 01 00 06  00 07 00 0E 07 01 00 04  00 00 00 0E 01 01 00 5E  ...............^
00014C00  DC 08 01 00 DE 08 01 00  FF 08 01 00 03 09 01 00  05 09 01 00 1F 09 01 00  20 09 01 00 28 09 01 00  .. .... .(.
00014C20  2A 09 01 00 2C 09 01 00  5A 09 01 00 5E 09 01 00  60 09 01 00 71 09 01 00  72 09 01 00 74 09 01 00  *.,.Z.^.`.q.r.t.
00014C40  78 09 01 00 7A 09 01 00  92 09 01 00 93 09 01 00  A5 09 01 00 A9 09 01 00  AB 09 01 00 BF 09 01 00  x.z.Æ.ô.Ñ..½..
00014C60  C0 09 01 00 DC 09 01 00  E0 09 01 00 E2 09 01 00  FC 09 01 00 00 0A 01 00  02 0A 01 00 1A 0A 01 00  ..α.Γ......
00014C80  3E 0A 01 00 40 0A 01 00  44 0A 01 00 46 0A 01 00  60 0A 01 00 64 0A 01 00  66 0A 01 00 77 0A 01 00  >.@.D.F.`.d.f.w.
00014CA0  7B 0A 01 00 7D 0A 01 00  A3 0A 01 00 A7 0A 01 00  A9 0A 01 00 CD 0A 01 00  D1 0A 01 00 D3 0A 01 00  {.}.ú.º.....
00014CC0  F0 0A 01 00 FB 0A 01 00  FD 0A 01 00 1A 0B 01 00  1C 0B 01 00 42 0B 01 00  46 0B 01 00 48 0B 01 00  ..²...B.F.H.
00014CE0  82 0B 01 00 86 0B 01 00  88 0B 01 00 A7 0B 01 00  AB 0B 01 00 AD 0B 01 00  CC 0B 01 00 D0 0B 01 00  é.å.ê.º.½.¡...
00014D00  D2 0B 01 00 02 0C 01 00  06 0C 01 00 08 0C 01 00  29 0C 01 00 2D 0C 01 00  2F 0C 01 00 41 0C 01 00  ....).-./.A.
00014D20  4B 0C 01 00 4D 0C 01 00  51 0C 01 00 53 0C 01 00  74 0C 01 00 78 0C 01 00  7A 0C 01 00 95 0C 01 00  K.M.Q.S.t.x.z.ò.
00014D40  99 0C 01 00 9B 0C 01 00  BC 0C 01 00 BE 0C 01 00  C0 0C 01 00 DD 0C 01 00  DF 0C 01 00 E3 0C 01 00  Ö.¢......π.
00014D60  E5 0C 01 00 F8 0C 01 00  FA 0C 01 00 FE 0C 01 00  00 0D 01 00 21 0D 01 00  23 0D 01 00 FB F7 F3 FB  σ.°.·....!.#.
00014D80  F7 F3 F7 F3 FB F7 F3 FB  F7 F3 F7 F3 FB F7 F3 F7  F3 FB F7 F3 F7 F3 FB F7  F3 FB F7 F3 F7 F3 FB F7  
00014DA0  F3 FB F7 F3 FB F7 F3 FB  F7 F3 FB 00 F2 00 F7 EE  F7 F3 FB F7 F3 FB F7 F3  FB F7 F3 FB F7 F3 FB F7  ..ε
00014DC0  F3 FB F7 F3 F7 F3 FB F7  F3 FB F7 F3 FB F7 F3 FB  F3 F7 F3 FB F3 F7 F3 FB  F3 F7 00 00 07 01 00 06  ...
00014DE0  00 07 00 0E 01 01 07 00  00 04 00 00 00 0E 07 01  00 04 00 00 00 0E 07 00  00 06 00 07 00 0E 00 5E  ................^
00014E00  23 0D 01 00 27 0D 01 00  29 0D 01 00 56 0D 01 00  5A 0D 01 00 5C 0D 01 00  84 0D 01 00 88 0D 01 00  #.'.).V.Z.\.ä.ê.
00014E20  8A 0D 01 00 C0 0D 01 00  C4 0D 01 00 C6 0D 01 00  EA 0D 01 00 EC 0D 01 00  EE 0D 01 00 0B 0E 01 00  è....Ω..ε..
00014E40  0D 0E 01 00 11 0E 01 00  13 0E 01 00 26 0E 01 00  28 0E 01 00 2C 0E 01 00  2E 0E 01 00 4F 0E 01 00  ...&.(.,...O.
00014E60  51 0E 01 00 55 0E 01 00  57 0E 01 00 7E 0E 01 00  80 0E 01 00 84 0E 01 00  86 0E 01 00 B3 0E 01 00  Q.U.W.~.Ç.ä.å..
00014E80  B7 0E 01 00 B9 0E 01 00  D0 0E 01 00 D1 0E 01 00  E4 0E 01 00 E8 0E 01 00  EA 0E 01 00 1D 0F 01 00  ....Σ.Φ.Ω..
00014EA0  21 0F 01 00 23 0F 01 00  41 0F 01 00 43 0F 01 00  45 0F 01 00 67 0F 01 00  69 0F 01 00 6D 0F 01 00  !.#.A.C.E.g.i.m.
00014EC0  6F 0F 01 00 95 0F 01 00  97 0F 01 00 9B 0F 01 00  9D 0F 01 00 C0 0F 01 00  C2 0F 01 00 C6 0F 01 00  o.ò.ù.¢.¥....
00014EE0  C8 0F 01 00 EF 0F 01 00  F1 0F 01 00 F5 0F 01 00  F7 0F 01 00 33 10 01 00  35 10 01 00 39 10 01 00  ..±...3.5.9.
00014F00  3B 10 01 00 7B 10 01 00  7D 10 01 00 81 10 01 00  83 10 01 00 A2 10 01 00  A4 10 01 00 A6 10 01 00  ;.{.}.ü.â.ó.ñ.ª.
00014F20  C8 10 01 00 CA 10 01 00  CE 10 01 00 D0 10 01 00  F6 10 01 00 F8 10 01 00  FC 10 01 00 FE 10 01 00  ....÷.°...
00014F40  21 11 01 00 23 11 01 00  27 11 01 00 29 11 01 00  50 11 01 00 52 11 01 00  56 11 01 00 58 11 01 00  !.#.'.).P.R.V.X.
00014F60  94 11 01 00 96 11 01 00  9A 11 01 00 9C 11 01 00  DC 11 01 00 DE 11 01 00  E2 11 01 00 E4 11 01 00  ö.û.Ü.£...Γ.Σ.
00014F80  0F 12 01 00 FB F7 F3 FB  F7 F3 FB F7 F3 FB F7 F3  FB F7 FB F3 FB F7 FB F3  FB F7 FB F3 FB F7 FB F3  .
00014FA0  FB F7 F3 FB F7 F3 FB F3  FB F7 F3 FB F7 F3 FB F7  FB F3 FB F7 FB F3 FB F7  FB F3 FB F7 FB F3 FB F7  
00014FC0  FB F3 FB F7 FB F3 FB F7  F3 FB F7 FB F3 FB F7 FB  F3 FB F7 FB F3 FB F7 FB  F3 FB F7 FB F3 FB F7 FB  
00014FE0  F3 FB F7 F3 00 00 07 01  00 04 00 00 00 0E 07 00  00 06 00 07 00 0E 07 00  00 04 00 00 00 0E 00 60  ................`
00015000  0F 12 01 00 13 12 01 00  15 12 01 00 2D 12 01 00  31 12 01 00 33 12 01 00  50 12 01 00 5B 12 01 00  ..§.-.1.3.P.[.
00015020  5D 12 01 00 7A 12 01 00  7C 12 01 00 94 12 01 00  98 12 01 00 9A 12 01 00  B3 12 01 00 B7 12 01 00  ].z.|.ö.ÿ.Ü...
00015040  B9 12 01 00 D3 12 01 00  D4 12 01 00 E6 12 01 00  EA 12 01 00 EC 12 01 00  03 13 01 00 04 13 01 00  ...µ.Ω....
00015060  1A 13 01 00 1E 13 01 00  20 13 01 00 34 13 01 00  35 13 01 00 4A 13 01 00  4E 13 01 00 50 13 01 00  .. .4.5.J.N.P.
00015080  68 13 01 00 69 13 01 00  7B 13 01 00 7F 13 01 00  81 13 01 00 B0 13 01 00  B4 13 01 00 B6 13 01 00  h.i.{..ü....
000150A0  E6 13 01 00 EA 13 01 00  EC 13 01 00 10 14 01 00  12 14 01 00 14 14 01 00  36 14 01 00 38 14 01 00  µ.Ω.....6.8.
000150C0  3C 14 01 00 3E 14 01 00  64 14 01 00 66 14 01 00  6A 14 01 00 6C 14 01 00  8F 14 01 00 91 14 01 00  <.>.d.f.j.l.Å.æ.
000150E0  95 14 01 00 97 14 01 00  BE 14 01 00 C0 14 01 00  C4 14 01 00 C6 14 01 00  02 15 01 00 04 15 01 00  ò.ù.....§.§.
00015100  08 15 01 00 0A 15 01 00  4A 15 01 00 4C 15 01 00  50 15 01 00 52 15 01 00  77 15 01 00 79 15 01 00  §.§.J§.L§.P§.R§.w§.y§.
00015120  7B 15 01 00 9D 15 01 00  9F 15 01 00 A3 15 01 00  A5 15 01 00 CB 15 01 00  CD 15 01 00 D1 15 01 00  {§.¥§.ƒ§.ú§.ѧ.§.§.§.
00015140  D3 15 01 00 F6 15 01 00  F8 15 01 00 FC 15 01 00  FE 15 01 00 25 16 01 00  27 16 01 00 2B 16 01 00  §.÷§.°§.§.§.%.'.+.
00015160  2D 16 01 00 69 16 01 00  6B 16 01 00 6F 16 01 00  71 16 01 00 B1 16 01 00  B3 16 01 00 FB F7 F3 FB  -.i.k.o.q...
00015180  F7 00 F2 00 F3 EE F3 FB  F7 F3 FB F7 F3 FB F3 FB  F7 F3 FB F3 FB F7 F3 FB  F3 FB F7 F3 FB F3 FB F7  ..ε
000151A0  F3 FB F7 F3 FB F7 F3 FB  F7 FB F3 FB F7 FB F3 FB  F7 FB F3 FB F7 FB F3 FB  F7 FB F3 FB F7 FB F3 FB  
000151C0  F7 F3 FB F7 FB F3 FB F7  FB F3 FB F7 FB F3 FB F7  FB F3 FB F7 FB F3 FB F7  FB F3 00 00 07 01 00 06  ...
000151E0  00 07 00 0E 01 01 07 01  00 04 00 00 00 0E 07 00  00 06 00 07 00 0E 07 00  00 04 00 00 00 0E 00 5E  ................^
00015200  B3 16 01 00 B7 16 01 00  B9 16 01 00 D2 16 01 00  D3 16 01 00 E4 16 01 00  E8 16 01 00 EA 16 01 00  .....Σ.Φ.Ω.
00015220  06 17 01 00 0A 17 01 00  0C 17 01 00 28 17 01 00  3F 17 01 00 41 17 01 00  43 17 01 00 45 17 01 00  ...(.?.A.C.E.
00015240  63 17 01 00 65 17 01 00  67 17 01 00 89 17 01 00  8B 17 01 00 8F 17 01 00  91 17 01 00 B7 17 01 00  c.e.g.ë.ï.Å.æ..
00015260  B9 17 01 00 BD 17 01 00  BF 17 01 00 E2 17 01 00  E4 17 01 00 E8 17 01 00  EA 17 01 00 11 18 01 00  ...Γ.Σ.Φ.Ω..
00015280  13 18 01 00 17 18 01 00  19 18 01 00 55 18 01 00  57 18 01 00 5B 18 01 00  5D 18 01 00 9D 18 01 00  ...U.W.[.].¥.
000152A0  9F 18 01 00 A3 18 01 00  A5 18 01 00 CC 18 01 00  D0 18 01 00 D2 18 01 00  F8 18 01 00 FC 18 01 00  ƒ.ú.Ñ....°..
000152C0  FE 18 01 00 1D 19 01 00  21 19 01 00 23 19 01 00  36 19 01 00 37 19 01 00  52 19 01 00 56 19 01 00  ..!.#.6.7.R.V.
000152E0  58 19 01 00 75 19 01 00  80 19 01 00 82 19 01 00  9F 19 01 00 A1 19 01 00  B3 19 01 00 B5 19 01 00  X.u.Ç.é.ƒ.í...
00015300  B7 19 01 00 D9 19 01 00  DB 19 01 00 DF 19 01 00  E1 19 01 00 07 1A 01 00  09 1A 01 00 0D 1A 01 00  ....ß....
00015320  0F 1A 01 00 32 1A 01 00  34 1A 01 00 38 1A 01 00  3A 1A 01 00 61 1A 01 00  63 1A 01 00 67 1A 01 00  .2.4.8.:.a.c.g.
00015340  69 1A 01 00 A5 1A 01 00  A7 1A 01 00 AB 1A 01 00  AD 1A 01 00 ED 1A 01 00  EF 1A 01 00 F3 1A 01 00  i.Ñ.º.½.¡.φ...
00015360  F5 1A 01 00 19 1B 01 00  1B 1B 01 00 1D 1B 01 00  67 1B 01 00 69 1B 01 00  6D 1B 01 00 FB F7 F3 FB  ....g.i.m.
00015380  F3 FB F7 F3 FB F7 F3 FB  F3 FB F7 F3 FB F7 FB F3  FB F7 FB F3 FB F7 FB F3  FB F7 FB F3 FB F7 FB F3  
000153A0  FB F7 FB F3 FB F7 F3 FB  F7 F3 FB F7 F3 FB F7 F3  FB F3 FB F7 00 F2 00 F3  EE F3 FB F7 FB F3 FB F7  ..ε
000153C0  FB F3 FB F7 FB F3 FB F7  FB F3 FB F7 FB F3 FB F7  FB F3 FB F7 F3 FB F7 FB  F3 FB 00 00 07 01 00 06  ...
000153E0  00 07 00 0E 01 01 07 01  00 04 00 00 00 0E 07 00  00 06 00 07 00 0E 07 00  00 04 00 00 00 0E 00 5E  ................^
00015400  6D 1B 01 00 6F 1B 01 00  B6 1B 01 00 B8 1B 01 00  BC 1B 01 00 BE 1B 01 00  F4 1B 01 00 F6 1B 01 00  m.o......÷.
00015420  FA 1B 01 00 FC 1B 01 00  2F 1C 01 00 31 1C 01 00  35 1C 01 00 37 1C 01 00  4A 1C 01 00 4C 1C 01 00  ·../.1.5.7.J.L.
00015440  4E 1C 01 00 70 1C 01 00  72 1C 01 00 76 1C 01 00  78 1C 01 00 9E 1C 01 00  A0 1C 01 00 A4 1C 01 00  N.p.r.v.x..á.ñ.
00015460  A6 1C 01 00 C9 1C 01 00  CB 1C 01 00 CF 1C 01 00  D1 1C 01 00 F8 1C 01 00  FA 1C 01 00 FE 1C 01 00  ª.....°.·..
00015480  00 1D 01 00 3C 1D 01 00  3E 1D 01 00 42 1D 01 00  44 1D 01 00 84 1D 01 00  86 1D 01 00 8A 1D 01 00  ..<.>.B.D.ä.å.è.
000154A0  8C 1D 01 00 B1 1D 01 00  B3 1D 01 00 B5 1D 01 00  FF 1D 01 00 01 1E 01 00  05 1E 01 00 07 1E 01 00  î.... ....
000154C0  4E 1E 01 00 50 1E 01 00  54 1E 01 00 56 1E 01 00  8C 1E 01 00 8E 1E 01 00  92 1E 01 00 94 1E 01 00  N.P.T.V.î.Ä.Æ.ö.
000154E0  C7 1E 01 00 C9 1E 01 00  CD 1E 01 00 CF 1E 01 00  01 1F 01 00 05 1F 01 00  07 1F 01 00 35 1F 01 00  .......5.
00015500  39 1F 01 00 3B 1F 01 00  5D 1F 01 00 61 1F 01 00  63 1F 01 00 79 1F 01 00  7D 1F 01 00 7F 1F 01 00  9.;.].a.c.y.}..
00015520  99 1F 01 00 9D 1F 01 00  9F 1F 01 00 B9 1F 01 00  BB 1F 01 00 BD 1F 01 00  E9 1F 01 00 ED 1F 01 00  Ö.¥.ƒ....Θ.φ.
00015540  EF 1F 01 00 0A 20 01 00  0E 20 01 00 10 20 01 00  2B 20 01 00 2F 20 01 00  31 20 01 00 49 20 01 00  . . . .+ ./ .1 .I .
00015560  4B 20 01 00 4D 20 01 00  76 20 01 00 78 20 01 00  7C 20 01 00 7E 20 01 00  AC 20 01 00 AE 20 01 00  K .M .v .x .| .~ .¼ .« .
00015580  B2 20 01 00 FB F7 F3 F7  FB F7 F3 F7 FB F7 F3 F7  FB F3 F7 FB F7 F3 F7 FB  F7 F3 F7 FB F7 F3 F7 FB   .
000155A0  F7 F3 F7 FB F7 F3 F7 FB  F7 F3 F7 FB F3 F7 FB F7  F3 F7 FB F7 F3 F7 FB F7  F3 F7 FB F7 F3 F7 FB F3  
000155C0  F7 FB F3 F7 FB F3 F7 FB  F3 F7 FB F3 F7 FB F3 F7  FB F3 F7 FB F3 F7 FB F3  F7 FB F3 F7 FB F7 F3 F7  
000155E0  FB F7 F3 F7 00 00 07 01  00 04 00 00 00 0E 07 00  00 04 00 00 00 0E 07 00  00 06 00 07 00 0E 00 60  ................`
00015600  B2 20 01 00 B4 20 01 00  F5 20 01 00 F7 20 01 00  FB 20 01 00 FD 20 01 00  34 21 01 00 36 21 01 00   . . . . .² .4!.6!.
00015620  3A 21 01 00 3C 21 01 00  7C 21 01 00 7E 21 01 00  82 21 01 00 84 21 01 00  A1 21 01 00 AC 21 01 00  :!.<!.|!.~!.é!.ä!.í!.¼!.
00015640  AE 21 01 00 CB 21 01 00  CD 21 01 00 F3 21 01 00  F7 21 01 00 F9 21 01 00  1E 22 01 00 22 22 01 00  «!.!.!.!.!.!."."".
00015660  24 22 01 00 2F 22 01 00  39 22 01 00 3B 22 01 00  3F 22 01 00 41 22 01 00  58 22 01 00 59 22 01 00  $"./".9".;".?".A".X".Y".
00015680  70 22 01 00 74 22 01 00  76 22 01 00 A0 22 01 00  A4 22 01 00 A6 22 01 00  BF 22 01 00 C3 22 01 00  p".t".v".á".ñ".ª".".".
000156A0  C5 22 01 00 F4 22 01 00  F8 22 01 00 FA 22 01 00  22 23 01 00 26 23 01 00  28 23 01 00 44 23 01 00  ".".°".·"."#.&#.(#.D#.
000156C0  48 23 01 00 4A 23 01 00  6F 23 01 00 8C 23 01 00  8E 23 01 00 9F 23 01 00  A4 23 01 00 AA 23 01 00  H#.J#.o#.î#.Ä#.ƒ#.ñ#.¬#.
000156E0  AE 23 01 00 B0 23 01 00  C7 23 01 00 CB 23 01 00  CD 23 01 00 D9 23 01 00  DD 23 01 00 DF 23 01 00  «#.#.#.#.#.#.#.#.
00015700  F4 23 01 00 F8 23 01 00  FA 23 01 00 1C 24 01 00  20 24 01 00 22 24 01 00  4E 24 01 00 52 24 01 00  #.°#.·#.$. $."$.N$.R$.
00015720  54 24 01 00 68 24 01 00  6C 24 01 00 6E 24 01 00  88 24 01 00 8C 24 01 00  8E 24 01 00 A3 24 01 00  T$.h$.l$.n$.ê$.î$.Ä$.ú$.
00015740  A7 24 01 00 A9 24 01 00  C7 24 01 00 CB 24 01 00  CD 24 01 00 F2 24 01 00  F4 24 01 00 F6 24 01 00  º$.$.$.$.$.$.$.÷$.
00015760  0E 25 01 00 12 25 01 00  14 25 01 00 3B 25 01 00  3F 25 01 00 FB F7 F3 F7  FB F7 F3 F7 FB F7 F3 F7  %.%.%.;%.?%.
00015780  FB 00 F2 00 F3 EE F3 F7  FB F3 F7 FB F3 F7 F3 F7  FB F3 F7 F3 F7 FB F3 F7  FB F3 F7 FB F3 F7 FB F3  ..ε
000157A0  F7 FB F3 F7 FB 00 F3 EE  F3 E8 F3 F7 FB F3 F7 FB  F3 F7 FB F3 F7 FB F3 F7  FB F3 F7 FB F3 F7 FB F3  .εΦ
000157C0  F7 FB F3 F7 FB F3 F7 FB  F3 F7 FB F3 F7 FB F3 F7  0B 01 00 14 00 00 00 0E  00 00 00 04 07 01 00 06  ........
000157E0  00 07 00 0E 01 01 07 01  00 04 00 00 00 0E 07 00  00 04 00 00 00 0E 07 00  00 06 00 07 00 0E 00 5C  ................\
00015800  3F 25 01 00 41 25 01 00  50 25 01 00 54 25 01 00  56 25 01 00 6E 25 01 00  72 25 01 00 74 25 01 00  ?%.A%.P%.T%.V%.n%.r%.t%.
00015820  8C 25 01 00 90 25 01 00  92 25 01 00 B3 25 01 00  B7 25 01 00 B9 25 01 00  D6 25 01 00 DA 25 01 00  î%.É%.Æ%.%.%.%.%.%.
00015840  DC 25 01 00 EF 25 01 00  F5 25 01 00 F7 25 01 00  10 26 01 00 14 26 01 00  16 26 01 00 38 26 01 00  %.%.%.%.&.&.&.8&.
00015860  3C 26 01 00 3E 26 01 00  43 26 01 00 49 26 01 00  4B 26 01 00 51 26 01 00  57 26 01 00 59 26 01 00  <&.>&.C&.I&.K&.Q&.W&.Y&.
00015880  6E 26 01 00 72 26 01 00  74 26 01 00 79 26 01 00  7F 26 01 00 81 26 01 00  A4 26 01 00 A8 26 01 00  n&.r&.t&.y&.&.ü&.ñ&.¿&.
000158A0  AA 26 01 00 D2 26 01 00  D6 26 01 00 D8 26 01 00  EE 26 01 00 F2 26 01 00  F4 26 01 00 13 27 01 00  ¬&.&.&.&.ε&.&.&.'.
000158C0  17 27 01 00 19 27 01 00  1E 27 01 00 24 27 01 00  26 27 01 00 2C 27 01 00  32 27 01 00 34 27 01 00  '.'.'.$'.&'.,'.2'.4'.
000158E0  45 27 01 00 47 27 01 00  49 27 01 00 77 27 01 00  79 27 01 00 A7 27 01 00  A9 27 01 00 D7 27 01 00  E'.G'.I'.w'.y'.º'.'.'.
00015900  D9 27 01 00 00 28 01 00  02 28 01 00 1F 28 01 00  23 28 01 00 25 28 01 00  40 28 01 00 44 28 01 00  '..(.(.(.#(.%(.@(.D(.
00015920  46 28 01 00 65 28 01 00  69 28 01 00 6B 28 01 00  7C 28 01 00 7D 28 01 00  7E 28 01 00 7F 28 01 00  F(.e(.i(.k(.|(.}(.~(.(.
00015940  95 28 01 00 96 28 01 00  A2 28 01 00 A8 28 01 00  AA 28 01 00 BB 28 01 00  BC 28 01 00 CB 28 01 00  ò(.û(.ó(.¿(.¬(.(.(.(.
00015960  D1 28 01 00 D3 28 01 00  F7 28 01 00 02 29 01 00  04 29 01 00 FB F7 F3 FB  F7 F3 FB F7 F3 FB F7 F3  (.(.(.).).
00015980  FB F7 F3 FB F7 F3 FB F7  F3 FB F7 F3 FB F7 F3 FB  F7 F3 FB F7 F3 FB F7 F3  FB F7 F3 FB F7 F3 FB F7  
000159A0  F3 FB F7 F3 FB F7 F3 FB  F7 F3 FB F7 F3 FB F3 FB  F3 FB F3 FB F3 FB F7 F3  FB F7 F3 FB F7 F3 FB F7  
000159C0  ED F7 E9 F7 E9 F7 F3 FB  F7 ED F7 F3 FB 00 E8 00  01 01 07 01 02 04 00 00  00 0E 0B 01 00 14 00 00  φΘΘφ.Φ.......
000159E0  00 0E 00 00 00 FC 07 00  00 04 00 00 00 0E 07 01  00 04 00 00 00 0E 07 00  00 06 00 07 00 0E 00 5C  ..................\
00015A00  04 29 01 00 21 29 01 00  23 29 01 00 34 29 01 00  36 29 01 00 44 29 01 00  4A 29 01 00 4C 29 01 00  ).!).#).4).6).D).J).L).
00015A20  5D 29 01 00 5E 29 01 00  74 29 01 00 75 29 01 00  83 29 01 00 89 29 01 00  8B 29 01 00 98 29 01 00  ]).^).t).u).â).ë).ï).ÿ).
00015A40  99 29 01 00 AF 29 01 00  B0 29 01 00 BD 29 01 00  C1 29 01 00 C3 29 01 00  DE 29 01 00 E4 29 01 00  Ö).»).).).).).).Σ).
00015A60  E6 29 01 00 F7 29 01 00  FB 29 01 00 FD 29 01 00  0F 2A 01 00 13 2A 01 00  15 2A 01 00 2A 2A 01 00  µ).).).²).*.*.§*.**.
00015A80  2E 2A 01 00 30 2A 01 00  4D 2A 01 00 51 2A 01 00  53 2A 01 00 6E 2A 01 00  72 2A 01 00 74 2A 01 00  .*.0*.M*.Q*.S*.n*.r*.t*.
00015AA0  97 2A 01 00 9B 2A 01 00  9D 2A 01 00 B6 2A 01 00  BA 2A 01 00 BC 2A 01 00  D8 2A 01 00 DA 2A 01 00  ù*.¢*.¥*.*.*.*.*.*.
00015AC0  DC 2A 01 00 F8 2A 01 00  FC 2A 01 00 FE 2A 01 00  17 2B 01 00 1B 2B 01 00  1D 2B 01 00 2D 2B 01 00  *.°*.*.*.+.+.+.-+.
00015AE0  31 2B 01 00 33 2B 01 00  40 2B 01 00 44 2B 01 00  46 2B 01 00 61 2B 01 00  65 2B 01 00 67 2B 01 00  1+.3+.@+.D+.F+.a+.e+.g+.
00015B00  7C 2B 01 00 80 2B 01 00  82 2B 01 00 94 2B 01 00  98 2B 01 00 9A 2B 01 00  B6 2B 01 00 BA 2B 01 00  |+.Ç+.é+.ö+.ÿ+.Ü+.+.+.
00015B20  BC 2B 01 00 DC 2B 01 00  E0 2B 01 00 E2 2B 01 00  FD 2B 01 00 01 2C 01 00  03 2C 01 00 26 2C 01 00  +.+.α+.Γ+.²+.,.,.&,.
00015B40  2A 2C 01 00 2C 2C 01 00  53 2C 01 00 57 2C 01 00  59 2C 01 00 6A 2C 01 00  6E 2C 01 00 70 2C 01 00  *,.,,.S,.W,.Y,.j,.n,.p,.
00015B60  8A 2C 01 00 FB F7 FB F1  FB ED E9 FB E3 F1 E3 FB  ED E9 FB DF FB DF FB ED  E9 FB ED E9 FB ED E9 FB  è,.±φΘπ±πφΘφΘφΘφΘ
00015B80  ED E9 FB ED E9 FB ED E9  FB ED E9 FB ED E9 FB ED  E9 FB ED E9 FB ED E9 FB  ED E9 FB ED E9 FB ED E9  φΘφΘφΘφΘφΘφΘφΘφΘφΘφΘφΘ
00015BA0  FB ED E9 FB ED E9 FB ED  E9 FB ED E9 FB ED E9 FB  ED E9 FB ED E9 FB ED E9  FB ED E9 FB 00 00 07 01  φΘφΘφΘφΘφΘφΘφΘφΘφΘ..
00015BC0  02 04 00 00 00 0E 0B 01  02 14 00 00 00 0E 00 00  00 FC 07 00 00 06 00 07  00 0E 07 00 00 04 00 00  .................
00015BE0  00 0E 0B 01 00 14 00 00  00 0E 00 00 00 FC 07 01  00 06 00 07 00 0E 07 01  00 04 00 00 00 0E 00 58  ................X
00015C00  8A 2C 01 00 8E 2C 01 00  90 2C 01 00 AA 2C 01 00  AE 2C 01 00 B0 2C 01 00  D3 2C 01 00 D7 2C 01 00  è,.Ä,.É,.¬,.«,.,.,.,.
00015C20  D9 2C 01 00 E6 2C 01 00  EA 2C 01 00 EC 2C 01 00  0A 2D 01 00 0B 2D 01 00  0D 2D 01 00 11 2D 01 00  ,.µ,.Ω,.,.-.-.-.-.
00015C40  13 2D 01 00 2D 2D 01 00  2E 2D 01 00 37 2D 01 00  3B 2D 01 00 3D 2D 01 00  59 2D 01 00 5A 2D 01 00  -.--..-.7-.;-.=-.Y-.Z-.
00015C60  69 2D 01 00 6D 2D 01 00  6F 2D 01 00 7F 2D 01 00  83 2D 01 00 85 2D 01 00  A6 2D 01 00 A8 2D 01 00  i-.m-.o-.-.â-.à-.ª-.¿-.
00015C80  AA 2D 01 00 C5 2D 01 00  C6 2D 01 00 D7 2D 01 00  DB 2D 01 00 DD 2D 01 00  EB 2D 01 00 EC 2D 01 00  ¬-.-.-.-.-.-.δ-.-.
00015CA0  02 2E 01 00 03 2E 01 00  07 2E 01 00 08 2E 01 00  11 2E 01 00 15 2E 01 00  17 2E 01 00 27 2E 01 00  ..........§....'..
00015CC0  28 2E 01 00 3E 2E 01 00  3F 2E 01 00 43 2E 01 00  44 2E 01 00 53 2E 01 00  57 2E 01 00 59 2E 01 00  (..>..?..C..D..S..W..Y..
00015CE0  75 2E 01 00 79 2E 01 00  7B 2E 01 00 7F 2E 01 00  80 2E 01 00 9D 2E 01 00  AF 2E 01 00 C0 2E 01 00  u..y..{....Ç..¥..»....
00015D00  92 2F 01 00 93 2F 01 00  97 2F 01 00 98 2F 01 00  9A 2F 01 00 9B 2F 01 00  B8 2F 01 00 B9 2F 01 00  Æ/.ô/.ù/.ÿ/.Ü/.¢/././.
00015D20  BD 2F 01 00 BE 2F 01 00  BF 2F 01 00 C0 2F 01 00  E3 2F 01 00 E4 2F 01 00  EF 2F 01 00 F0 2F 01 00  /./././.π/.Σ/././.
00015D40  F4 2F 01 00 F5 2F 01 00  F6 2F 01 00 F7 2F 01 00  FE 2F 01 00 FB F7 F3 FB  F7 F3 FB F7 F3 FB F7 F3  /./.÷/././.
00015D60  FB F3 FB F7 F3 FB F3 FB  F7 F3 FB F3 FB F7 F3 FB  F7 F3 FB F7 F3 FB F3 FB  F7 F3 EF F3 EF F3 E9 F3  Θ
00015D80  FB F7 F3 EF F3 EF F3 E9  F3 FB F7 F3 FB F7 00 E3  00 E0 00 00 DE 00 DE 00  DE 00 DE 00 DE 00 DE 00  Θ.π.α........
00015DA0  D4 00 DE 00 DE 00 DE 00  12 40 02 00 00 00 00 00  00 00 00 00 00 00 00 40  30 01 03 00 02 00 02 00  ....@............@0...
00015DC0  05 00 00 02 00 05 0B 00  02 14 00 00 00 10 00 00  00 06 0B 01 00 14 00 00  00 0E 00 00 00 FC 07 01  .................
00015DE0  02 04 00 00 00 0E 07 01  00 04 00 00 00 0E 07 00  00 06 00 07 00 0E 07 00  00 04 00 00 00 0E 00 54  .................T
00015E00  FE 2F 01 00 FF 2F 01 00  03 30 01 00 04 30 01 00  05 30 01 00 06 30 01 00  0C 30 01 00 0E 30 01 00  /. /.0.0.0.0.0.0.
00015E20  FA 36 01 00 FE 00 FE 00  FE 00 00 F6 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ·6.....÷....................
00015E40  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................................
00015E60  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................................
00015E80  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................................
00015EA0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................................
00015EC0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................................
00015EE0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................................
00015F00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................................
00015F20  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................................
00015F40  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................................
00015F60  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................................
00015F80  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................................
00015FA0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................................
00015FC0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................................
00015FE0  00 00 00 00 00 00 00 00  00 00 00 00 0E 00 02 00  00 00 00 14 00 00 00 00  00 00 04 00 02 00 02 08  .........................
00016000  80 01 00 00 88 01 00 00  8A 01 00 00 97 01 00 00  9D 01 00 00 9F 01 00 00  A1 01 00 00 BD 01 00 00  Ç..ê..è..ù..¥..ƒ..í....
00016020  D0 01 00 00 D2 01 00 00  D4 01 00 00 D6 01 00 00  D8 01 00 00 DA 01 00 00  DC 01 00 00 DE 01 00 00  ................
00016040  E0 01 00 00 E2 01 00 00  E4 01 00 00 E6 01 00 00  E8 01 00 00 EA 01 00 00  EC 01 00 00 EE 01 00 00  α..Γ..Σ..µ..Φ..Ω....ε..
00016060  F0 01 00 00 F2 01 00 00  F4 01 00 00 F6 01 00 00  F8 01 00 00 FA 01 00 00  FC 01 00 00 FE 01 00 00  ......÷..°..·......
00016080  00 02 00 00 02 02 00 00  04 02 00 00 13 02 00 00  15 02 00 00 17 02 00 00  19 02 00 00 1B 02 00 00  .........§........
000160A0  1D 02 00 00 81 02 00 00  AF 02 00 00 B1 02 00 00  B3 02 00 00 B5 02 00 00  B7 02 00 00 B9 02 00 00  ..ü..»............
000160C0  BB 02 00 00 BD 02 00 00  BF 02 00 00 C1 02 00 00  C3 02 00 00 C5 02 00 00  C7 02 00 00 C9 02 00 00  ................
000160E0  CB 02 00 00 CD 02 00 00  CF 02 00 00 D1 02 00 00  D3 02 00 00 D5 02 00 00  D7 02 00 00 D9 02 00 00  ................
00016100  DB 02 00 00 DD 02 00 00  DF 02 00 00 E1 02 00 00  E3 02 00 00 E5 02 00 00  E7 02 00 00 E9 02 00 00  ......ß..π..σ..τ..Θ..
00016120  EB 02 00 00 ED 02 00 00  C7 03 00 00 C9 03 00 00  27 04 00 00 29 04 00 00  AB 04 00 00 AD 04 00 00  δ..φ......'..)..½..¡..
00016140  10 05 00 00 12 05 00 00  9E 05 00 00 A0 05 00 00  E8 05 00 00 EA 05 00 00  3E 06 00 00 40 06 00 00  ......á..Φ..Ω..>..@..
00016160  55 06 00 00 FA FA FA FA  F4 F4 EF EF EA EA EA EA  EA EA EA EA EA EA EA EA  EA EA EA EA EA EA EA EA  U..····ΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩ
00016180  EA EA EA EA EA EA EA EA  EA EA EA EA EA EA EA EA  EA EA EA EA EA EA EA EA  EA EA EA EA EA EA EA EA  ΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩΩ
000161A0  EA EA EA EA EA EA EA EA  EA EA EA EA EA E5 E0 E0  E0 E0 E0 E0 E0 E5 E0 E0  E0 E0 E0 E0 00 00 00 00  ΩΩΩΩΩΩΩΩΩΩΩΩΩσααααααασαααααα....
000161C0  04 00 00 01 90 24 C0 00  00 00 04 00 00 02 90 24  C0 00 00 00 04 00 00 01  90 24 F0 00 00 00 04 00  ..É$.....É$.....É$....
000161E0  00 01 90 24 45 02 00 00  05 00 00 01 90 24 68 01  05 01 00 00 05 00 00 01  90 24 68 01 05 02 00 58  .É$E....É$h....É$h.X
00016200  55 06 00 00 69 06 00 00  7A 06 00 00 9A 06 00 00  9C 06 00 00 B6 06 00 00  B8 06 00 00 BA 06 00 00  U..i..z..Ü..£........
00016220  BC 06 00 00 D7 06 00 00  D9 06 00 00 DB 06 00 00  DD 06 00 00 DF 06 00 00  E1 06 00 00 E3 06 00 00  ............ß..π..
00016240  E5 06 00 00 F8 06 00 00  FA 06 00 00 FC 06 00 00  19 07 00 00 1B 07 00 00  58 07 00 00 77 07 00 00  σ..°..·........X..w..
00016260  99 07 00 00 B8 07 00 00  D1 07 00 00 F0 07 00 00  0C 08 00 00 25 08 00 00  4C 08 00 00 6A 08 00 00  Ö..........%..L..j..
00016280  87 08 00 00 99 08 00 00  BB 08 00 00 DB 08 00 00  04 09 00 00 1C 09 00 00  48 09 00 00 73 09 00 00  ç..Ö..........H..s..
000162A0  9F 09 00 00 CA 09 00 00  F6 09 00 00 21 0A 00 00  41 0A 00 00 43 0A 00 00  71 0A 00 00 A0 0A 00 00  ƒ....÷..!..A..C..q..á..
000162C0  CE 0A 00 00 EB 0A 00 00  FF 0A 00 00 10 0B 00 00  21 0B 00 00 39 0B 00 00  51 0B 00 00 69 0B 00 00  ..δ.. ....!..9..Q..i..
000162E0  84 0B 00 00 AD 0B 00 00  C1 0B 00 00 E9 0B 00 00  15 0C 00 00 6A 0C 00 00  A5 0C 00 00 E1 0C 00 00  ä..¡....Θ..§..j..Ñ..ß..
00016300  0C 0D 00 00 26 0D 00 00  51 0D 00 00 79 0D 00 00  7B 0D 00 00 A6 0D 00 00  D1 0D 00 00 F4 0D 00 00  ..&..Q..y..{..ª......
00016320  1B 0E 00 00 37 0E 00 00  59 0E 00 00 69 0E 00 00  6B 0E 00 00 E4 0E 00 00  FB FB FB FB FB F6 F6 F6  ..7..Y..i..k..Σ..÷÷÷
00016340  F1 EB EB EB EB EB EB EB  EB EB EB E6 E6 E6 E1 DC  DC DC E1 DC DC DC E1 DC  DC DC DC DC E6 E1 E1 E1  ±δδδδδδδδδδµµµßßßµßßß
00016360  E1 E1 E1 E6 E1 E6 E1 E1  E1 E1 DC DC DC DC DC E1  E1 DC DC D4 CC D4 D4 DC  DC DC E1 E6 C7 E1 DC DC  ßßߵߵßßßßßßßµß
00016380  DC DC E6 F6 F6 00 00 00  00 00 00 00 00 00 04 E8  00 00 00 00 00 00 00 00  07 00 00 01 90 24 F0 00  µ÷÷.........Φ..........É$.
000163A0  0F 05 00 01 BC 07 00 00  07 E6 00 01 90 24 F0 00  0F 05 00 01 BC 07 00 00  04 E6 00 01 90 24 F0 00  ...µ.É$....µ.É$.
000163C0  00 00 04 E7 00 01 90 24  F0 00 00 00 04 E8 00 01  90 24 F0 00 00 00 05 00  00 01 90 24 F0 00 05 01  ..τ.É$...Φ.É$.....É$.
000163E0  00 00 04 00 00 01 90 24  97 00 00 00 04 00 00 01  90 24 F0 00 00 00 04 00  00 01 90 24 C0 00 00 4D  ....É$ù.....É$.....É$..M
00016400  E4 0E 00 00 E7 0E 00 00  E9 0E 00 00 FA 0E 00 00  FC 0E 00 00 71 0F 00 00  42 11 00 00 A2 11 00 00  Σ..τ..Θ..·....q..B..ó..
00016420  02 12 00 00 59 12 00 00  6F 12 00 00 71 12 00 00  D5 12 00 00 33 13 00 00  35 13 00 00 70 13 00 00  ..Y..o..q....3..5..p..
00016440  72 13 00 00 8E 13 00 00  90 13 00 00 FA 13 00 00  4A 14 00 00 4C 14 00 00  6B 14 00 00 6D 14 00 00  r..Ä..É..·..J..L..k..m..
00016460  78 15 00 00 7A 15 00 00  96 15 00 00 98 15 00 00  4C 16 00 00 4E 16 00 00  65 16 00 00 67 16 00 00  x§..z§..û§..ÿ§..L..N..e..g..
00016480  5E 17 00 00 60 17 00 00  DC 18 00 00 DE 18 00 00  FA 18 00 00 FC 18 00 00  14 1A 00 00 16 1A 00 00  ^..`......·........
000164A0  19 1A 00 00 32 1A 00 00  34 1A 00 00 95 1A 00 00  B4 1A 00 00 B6 1A 00 00  23 1B 00 00 25 1B 00 00  ..2..4..ò......#..%..
000164C0  95 1B 00 00 97 1B 00 00  B6 1C 00 00 B8 1C 00 00  C1 1D 00 00 C3 1D 00 00  01 1E 00 00 03 1E 00 00  ò..ù..............
000164E0  8F 1E 00 00 91 1E 00 00  A7 1E 00 00 A9 1E 00 00  AE 1F 00 00 B0 1F 00 00  D4 1F 00 00 D6 1F 00 00  Å..æ..º....«........
00016500  0C 21 00 00 0E 21 00 00  00 23 00 00 02 23 00 00  1D 23 00 00 1F 23 00 00  6C 24 00 00 6E 24 00 00  !..!...#..#..#..#..l$..n$..
00016520  70 24 00 00 72 24 00 00  74 24 00 00 76 24 00 00  90 24 00 00 92 24 00 00  AF 25 00 00 CA 25 00 00  p$..r$..t$..v$..É$..Æ$..»%..%..
00016540  CC 25 00 00 46 27 00 00  48 27 00 00 C4 28 00 00  FB F6 F1 F6 EC E7 F6 F6  F6 F6 F6 F6 F6 F6 F1 F6  %..F'..H'..(..÷±÷τ÷÷÷÷÷÷÷÷±÷
00016560  F6 F6 F6 F6 F6 F6 F6 E2  F6 F6 F6 DD F6 F6 F6 E2  F6 D8 F6 F6 F6 E2 F6 FB  F6 F6 F6 F6 F6 F6 F6 DD  ÷÷÷÷÷÷÷Γ÷÷÷÷÷÷Γ÷÷÷÷Γ÷÷÷÷÷÷÷÷
00016580  F6 E2 F6 E2 F6 F6 F6 DD  F6 F6 F6 E2 F6 F6 F6 E2  F6 D3 F6 F6 F6 D8 F6 F6  F6 F6 F6 F6 F6 E2 F6 F6  ÷Γ÷Γ÷÷÷÷÷÷Γ÷÷÷Γ÷÷÷÷÷÷÷÷÷÷÷Γ÷÷
000165A0  D8 F6 D8 00 00 00 04 00  04 FF 90 24 D6 04 00 00  04 00 00 04 90 24 F0 00  00 00 04 00 00 02 90 24  ÷.... É$....É$.....É$
000165C0  F0 00 00 00 04 00 00 03  90 24 F0 00 00 00 04 00  04 FF 90 24 D3 03 00 00  04 00 00 01 90 24 03 01  .....É$.... É$....É$
000165E0  00 00 04 00 00 01 90 24  22 01 00 00 04 00 00 01  90 24 F0 00 00 00 04 00  00 00 00 00 00 00 00 53  ....É$"....É$...........S
00016600  C4 28 00 00 C6 28 00 00  D5 28 00 00 D7 28 00 00  D6 2A 00 00 D8 2A 00 00  F8 2A 00 00 FA 2A 00 00  (..(..(..(..*..*..°*..·*..
00016620  4F 2C 00 00 51 2C 00 00  6F 2C 00 00 71 2C 00 00  63 2E 00 00 65 2E 00 00  A8 2E 00 00 AA 2E 00 00  O,..Q,..o,..q,..c...e...¿...¬...
00016640  BE 30 00 00 C0 30 00 00  32 32 00 00 34 32 00 00  49 32 00 00 4B 32 00 00  1E 33 00 00 20 33 00 00  0..0..22..42..I2..K2..3.. 3..
00016660  9D 33 00 00 9F 33 00 00  5C 34 00 00 5E 34 00 00  31 35 00 00 33 35 00 00  3E 35 00 00 40 35 00 00  ¥3..ƒ3..\4..^4..15..35..>5..@5..
00016680  5A 35 00 00 62 35 00 00  7A 35 00 00 90 35 00 00  A6 35 00 00 A9 35 00 00  AB 35 00 00 38 36 00 00  Z5..b5..z5..É5..ª5..5..½5..86..
000166A0  3A 36 00 00 54 36 00 00  56 36 00 00 78 36 00 00  7A 36 00 00 A3 36 00 00  A5 36 00 00 C8 36 00 00  :6..T6..V6..x6..z6..ú6..Ñ6..6..
000166C0  08 37 00 00 46 37 00 00  74 37 00 00 9D 37 00 00  D2 37 00 00 02 38 00 00  1C 38 00 00 3C 38 00 00  7..F7..t7..¥7..7..8..8..<8..
000166E0  4E 38 00 00 50 38 00 00  12 39 00 00 14 39 00 00  4E 39 00 00 50 39 00 00  5A 3A 00 00 5C 3A 00 00  N8..P8..9..9..N9..P9..Z:..\:..
00016700  BB 3A 00 00 C8 3A 00 00  FB FB FB F6 FB FB FB F1  FB FB FB F6 FB FB FB EC  FB F1 E7 E7 FB E2 FB E2  :..:..÷±÷±ττΓΓ
00016720  FB E2 FB DD FB FB FB D7  D7 D7 D7 D7 D7 FB E2 FB  FB C9 BB BB BB BB BB BB  BB AB BB BB AB BB BB BB  ΓΓ½½
00016740  FB E2 FB FB FB A6 FB FB  FB 00 00 00 04 00 04 FF  90 24 D7 02 00 00 0F 00  00 01 90 24 D3 00 0F 14  Γª.... É$....É$.
00016760  00 06 B4 00 8C 0A 40 0B  F4 0B 34 17 E8 17 00 00  00 00 00 00 00 00 0D 00  00 01 90 24 D3 00 0F 11  ..î@4Φ..........É$.
00016780  00 05 B4 00 40 0B F4 0B  34 17 E8 17 00 00 00 00  00 00 0D 00 00 01 90 24  F0 00 0F 11 00 05 0E 01  ..@4Φ........É$..
000167A0  AE 06 62 07 5C 0D 10 0E  00 00 00 00 00 00 05 00  00 01 90 24 D3 00 11 A0  05 00 04 00 00 03 90 24  «b\........É$.á...É$
000167C0  F0 00 00 00 04 00 00 02  90 24 F0 00 00 00 04 00  00 01 90 24 22 01 00 00  04 00 04 FF 90 24 A7 05  .....É$.....É$"... É$º
000167E0  00 00 04 00 00 04 90 24  F0 00 00 00 04 00 00 05  90 24 F0 00 00 00 04 00  00 01 90 24 F0 00 00 41  ....É$.....É$.....É$..A
00016800  C8 3A 00 00 CA 3A 00 00  F5 3A 00 00 F7 3A 00 00  56 3B 00 00 9A 3B 00 00  9C 3B 00 00 B1 3B 00 00  :..:..:..:..V;..Ü;..£;..;..
00016820  D9 3B 00 00 E7 3B 00 00  23 3C 00 00 4E 3C 00 00  5C 3C 00 00 6A 3C 00 00  7E 3C 00 00 A6 3C 00 00  ;..τ;..#<..N<..\<..j<..~<..ª<..
00016840  B5 3C 00 00 F1 3C 00 00  1C 3D 00 00 2B 3D 00 00  3A 3D 00 00 4A 3D 00 00  5E 3D 00 00 96 3D 00 00  <..±<..=..+=..:=..J=..^=..û=..
00016860  9D 3D 00 00 BB 3D 00 00  C3 3D 00 00 E8 3D 00 00  EA 3D 00 00 FC 3D 00 00  FE 3D 00 00 77 3F 00 00  ¥=..=..=..Φ=..Ω=..=..=..w?..
00016880  79 3F 00 00 63 40 00 00  65 40 00 00 C6 40 00 00  F6 40 00 00 F8 40 00 00  23 41 00 00 25 41 00 00  y?..c@..e@..@..÷@..°@..#A..%A..
000168A0  43 41 00 00 45 41 00 00  59 41 00 00 6C 41 00 00  A1 41 00 00 C6 41 00 00  D4 41 00 00 09 42 00 00  CA..EA..YA..lA..íA..A..A..B..
000168C0  1B 42 00 00 50 42 00 00  75 42 00 00 84 42 00 00  B4 42 00 00 D6 42 00 00  FB 42 00 00 FD 42 00 00  B..PB..uB..äB..B..B..B..²B..
000168E0  0F 43 00 00 11 43 00 00  A8 45 00 00 AA 45 00 00  D5 45 00 00 D7 45 00 00  15 46 00 00 3A 46 00 00  C..C..¿E..¬E..E..E..§F..:F..
00016900  47 46 00 00 54 46 00 00  91 46 00 00 B6 46 00 00  C3 46 00 00 D0 46 00 00  DE 46 00 00 FB FB FB F6  GF..TF..æF..F..F..F..F..÷
00016920  FB FB EC EC EC EC EC EC  EC EC EC EC EC EC EC EC  EC EC EC EC EC EC EC FB  FB FB E7 FB E2 FB FB FB  τΓ
00016940  FB DD FB D3 C9 C9 C9 C9  C9 C9 C9 C9 C9 C9 C9 C9  C9 C9 BF BF FB BA FB FB  FB B2 B2 B2 B2 B2 B2 B2  
00016960  B2 B2 00 00 07 00 00 01  90 24 D3 00 0F 05 00 01  E0 10 00 00 04 00 04 FF  90 24 9E 06 00 00 09 00  ....É$..α... É$...
00016980  00 01 90 24 F0 00 0F 08  00 02 9A 0B B0 13 00 00  00 00 09 00 00 01 90 24  D3 00 0F 08 00 02 9A 0B  .É$..Ü......É$..Ü
000169A0  B0 13 00 00 00 00 09 00  00 01 90 24 0D 01 0F 08  00 02 9A 0B B0 13 00 00  00 00 04 00 00 00 00 00  ......É$.Ü.........
000169C0  00 00 00 00 04 00 04 FF  90 24 DE 02 00 00 04 00  00 04 90 24 F0 00 00 00  09 00 00 01 90 24 D3 00  ..... É$....É$.....É$.
000169E0  0F 08 00 02 76 02 10 0E  00 00 00 00 04 00 00 01  90 24 F7 00 00 00 04 00  00 01 90 24 F0 00 00 46  .v......É$.....É$..F
00016A00  DE 46 00 00 F1 46 00 00  27 47 00 00 2E 47 00 00  4B 47 00 00 52 47 00 00  81 47 00 00 83 47 00 00  F..±F..'G...G..KG..RG..üG..âG..
00016A20  95 47 00 00 97 47 00 00  FB 47 00 00 57 48 00 00  63 48 00 00 65 48 00 00  67 48 00 00 69 48 00 00  òG..ùG..G..WH..cH..eH..gH..iH..
00016A40  6B 48 00 00 6D 48 00 00  6F 48 00 00 71 48 00 00  9B 48 00 00 9D 48 00 00  BC 48 00 00 BE 48 00 00  kH..mH..oH..qH..¢H..¥H..H..H..
00016A60  F5 48 00 00 03 49 00 00  41 49 00 00 50 49 00 00  5E 49 00 00 6F 49 00 00  91 49 00 00 C0 49 00 00  H..I..AI..PI..^I..oI..æI..I..
00016A80  C2 49 00 00 D3 49 00 00  D5 49 00 00 B9 4A 00 00  BB 4A 00 00 E6 4A 00 00  E8 4A 00 00 03 4B 00 00  I..I..I..J..J..µJ..ΦJ..K..
00016AA0  21 4B 00 00 3C 4B 00 00  4B 4B 00 00 5A 4B 00 00  75 4B 00 00 91 4B 00 00  A3 4B 00 00 C8 4B 00 00  !K..<K..KK..ZK..uK..æK..úK..K..
00016AC0  D0 4B 00 00 E8 4B 00 00  F4 4B 00 00 20 4C 00 00  22 4C 00 00 35 4C 00 00  37 4C 00 00 3F 4D 00 00  K..ΦK..K.. L.."L..5L..7L..?M..
00016AE0  41 4D 00 00 6B 4D 00 00  6D 4D 00 00 80 4D 00 00  82 4D 00 00 F8 F8 F8 F8  F8 F8 F3 F3 F3 F3 F3 F3  AM..kM..mM..ÇM..éM..°°°°°°
00016B00  F3 F3 F3 F3 F3 F3 F3 F3  F3 E9 DF D5 D5 D5 D5 D5  D5 D5 D5 CA C0 F3 BB F3  F3 F3 B1 B1 B1 B1 B1 B1  Θ
00016B20  B1 B1 B1 B1 B1 B1 B1 F3  F3 F3 AC F3 F3 F3 A2 98  09 00 00 01 90 24 D3 00  0F 08 00 02 10 0E 50 19  ¼óÿ..É$..P
00016B40  00 00 00 00 09 00 00 01  90 24 0D 01 0F 08 00 02  10 0E 50 19 00 00 00 00  04 00 04 FF 90 24 D7 02  ......É$.P..... É$
00016B60  00 00 09 00 00 01 90 24  D3 00 0F 08 00 02 D0 02  E0 10 00 00 00 00 04 00  04 FF 90 24 DE 02 00 00  ....É$..α..... É$..
00016B80  09 00 00 01 90 24 F0 00  0F 08 00 02 40 0B 56 13  00 00 00 00 0A 00 00 01  90 24 F0 00 0F 0B 00 03  ..É$..@V......É$..
00016BA0  32 0A A8 0C B0 13 00 00  00 00 09 00 00 01 90 24  D3 00 0F 08 00 02 F4 0B  E8 17 00 00 00 00 09 00  2¿......É$..Φ.....
00016BC0  00 01 90 24 D3 00 0F 08  00 02 F4 0B 34 17 00 00  00 00 09 00 00 01 90 24  0D 01 0F 08 00 02 F4 0B  .É$..4......É$.
00016BE0  34 17 00 00 00 00 04 00  00 01 90 24 F0 00 00 00  07 00 00 01 90 24 D3 00  0F 05 00 01 E0 10 00 3C  4......É$.....É$..α.<
00016C00  82 4D 00 00 B1 4D 00 00  C8 4D 00 00 F7 4D 00 00  17 4E 00 00 56 4E 00 00  8F 4E 00 00 91 4E 00 00  éM..M..M..M..N..VN..ÅN..æN..
00016C20  A2 4E 00 00 A4 4E 00 00  D2 4F 00 00 D4 4F 00 00  7B 52 00 00 7D 52 00 00  16 53 00 00 18 53 00 00  óN..ñN..O..O..{R..}R..S..S..
00016C40  44 53 00 00 6C 53 00 00  94 53 00 00 BD 53 00 00  E6 53 00 00 0F 54 00 00  3C 54 00 00 6D 54 00 00  DS..lS..öS..S..µS..T..<T..mT..
00016C60  9E 54 00 00 BE 54 00 00  DA 54 00 00 F6 54 00 00  14 55 00 00 30 55 00 00  4C 55 00 00 69 55 00 00  T..T..T..÷T..U..0U..LU..iU..
00016C80  6B 55 00 00 B2 56 00 00  B4 56 00 00 CC 56 00 00  CE 56 00 00 E9 58 00 00  EB 58 00 00 3B 59 00 00  kU..V..V..V..V..ΘX..δX..;Y..
00016CA0  3D 59 00 00 5B 59 00 00  5D 59 00 00 C1 59 00 00  D4 5A 00 00 D6 5A 00 00  02 5B 00 00 04 5B 00 00  =Y..[Y..]Y..Y..Z..Z..[..[..
00016CC0  5E 5B 00 00 60 5B 00 00  BD 5B 00 00 CC 5B 00 00  CE 5B 00 00 D7 5C 00 00  D9 5C 00 00 04 5D 00 00  ^[..`[..[..[..[..\..\..]..
00016CE0  06 5D 00 00 30 5D 00 00  32 5D 00 00 96 5E 00 00  98 5E 00 00 BC 5E 00 00  F2 5E 00 00 F4 5E 00 00  ]..0]..2]..û^..ÿ^..^..^..^..
00016D00  B8 5F 00 00 BA 5F 00 00  E4 5F 00 00 E6 5F 00 00  F0 60 00 00 F2 60 00 00  22 61 00 00 53 61 00 00  _.._..Σ_..µ_..`..`.."a..Sa..
00016D20  55 61 00 00 F6 F6 F6 F6  F6 F6 F1 F1 F1 EC F1 E7  F1 E2 F1 DD D8 D8 D8 D8  D8 D8 D8 D8 D8 D8 D8 D8  Ua..÷÷÷÷÷÷±±±±τ±Γ±
00016D40  D8 D8 D8 F1 D3 F1 F1 F1  CE F1 F1 F1 C9 F1 F1 C4  F1 F1 F1 F1 F1 BC BC F1  C4 F1 C9 F1 F1 F1 D3 F1  ±±±±±±±±±±±±±±±±±±±±
00016D60  D8 D8 F1 E2 F1 F1 F1 C4  F1 D8 D8 F1 00 00 00 00  00 00 00 00 00 00 00 00  07 00 00 01 90 24 F0 00  ±Γ±±±±±..............É$.
00016D80  11 68 01 13 98 FE 00 00  04 00 00 03 90 24 F0 00  00 00 04 00 00 00 00 00  00 00 00 00 04 00 00 06  hÿ....É$..............
00016DA0  90 24 F0 00 00 00 04 00  00 04 90 24 F0 00 00 00  04 00 00 01 90 24 D3 00  00 00 04 00 00 01 90 24  É$.....É$.....É$.....É$
00016DC0  F7 00 00 00 04 00 00 02  90 24 F0 00 00 00 04 00  04 FF 90 24 9E 06 00 00  04 00 04 FF 90 24 D7 02  .....É$.... É$... É$
00016DE0  00 00 04 00 00 01 90 24  F0 00 00 00 09 00 00 01  90 24 D3 00 0F 08 00 02  10 0E 50 19 00 00 00 48  ....É$.....É$..P...H
00016E00  55 61 00 00 58 63 00 00  5A 63 00 00 15 64 00 00  17 64 00 00 22 64 00 00  24 64 00 00 32 64 00 00  Ua..Xc..Zc..§d..d.."d..$d..2d..
00016E20  4C 64 00 00 56 64 00 00  58 64 00 00 5A 64 00 00  69 64 00 00 83 64 00 00  8D 64 00 00 8F 64 00 00  Ld..Vd..Xd..Zd..id..âd..ìd..Åd..
00016E40  11 65 00 00 13 65 00 00  1D 65 00 00 1F 65 00 00  3D 65 00 00 4E 65 00 00  50 65 00 00 53 65 00 00  e..e..e..e..=e..Ne..Pe..Se..
00016E60  B7 65 00 00 6C 67 00 00  6E 67 00 00 AC 67 00 00  F1 67 00 00 F3 67 00 00  55 68 00 00 9F 68 00 00  e..lg..ng..¼g..±g..g..Uh..ƒh..
00016E80  A1 68 00 00 BF 68 00 00  C1 68 00 00 D8 68 00 00  12 69 00 00 14 69 00 00  33 69 00 00 35 69 00 00  íh..h..h..h..i..i..3i..5i..
00016EA0  4C 69 00 00 52 69 00 00  67 69 00 00 69 69 00 00  81 69 00 00 83 69 00 00  EC 6A 00 00 EE 6A 00 00  Li..Ri..gi..ii..üi..âi..j..εj..
00016EC0  CB 6B 00 00 CD 6B 00 00  5D 6D 00 00 5F 6D 00 00  C1 6D 00 00 CE 6D 00 00  D0 6D 00 00 C9 6E 00 00  k..k..]m.._m..m..m..m..n..
00016EE0  CB 6E 00 00 CD 6E 00 00  CF 6E 00 00 D1 6E 00 00  D3 6E 00 00 D5 6E 00 00  D7 6E 00 00 D9 6E 00 00  n..n..n..n..n..n..n..n..
00016F00  E8 6E 00 00 EA 6E 00 00  09 6F 00 00 12 6F 00 00  ED 71 00 00 EF 71 00 00  FC 71 00 00 FE 71 00 00  Φn..Ωn..o..o..φq..q..q..q..
00016F20  72 72 00 00 74 72 00 00  1F 73 00 00 21 73 00 00  FB F6 F1 F6 F6 F6 EC EC  EC EC EC EC EC EC F6 E7  rr..tr..s..!s..÷±÷÷÷÷τ
00016F40  F6 F6 F6 EC EC F6 E2 F6  FB F6 DA DA F6 F6 F6 F6  F6 F6 D2 D2 F6 F6 F6 D2  D2 D2 F6 F6 F6 CD F6 C8  ÷÷÷÷Γ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
00016F60  F6 CD F6 F6 F6 F6 C8 F6  F6 F6 F6 F6 F6 F6 F6 F6  F6 F6 F6 C3 F6 F6 F6 BE  F6 BE F6 00 04 00 00 02  ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷...
00016F80  90 24 F0 00 00 00 04 00  00 08 90 24 F0 00 00 00  04 00 00 03 90 24 F0 00  00 00 04 00 00 04 90 24  É$.....É$.....É$.....É$
00016FA0  F0 00 00 00 07 00 00 01  90 24 D3 00 0F 05 00 01  40 0B 00 00 07 00 00 01  90 24 D3 00 0F 05 00 01  .....É$..@....É$..
00016FC0  10 0E 00 00 04 00 00 00  00 00 00 00 00 00 04 00  00 02 90 24 F7 00 00 00  04 00 00 01 90 24 D3 00  .............É$.....É$.
00016FE0  00 00 04 00 04 FF 90 24  E7 01 00 00 04 00 00 01  90 24 F0 00 00 00 04 00  00 05 90 24 F0 00 00 4B  ... É$τ....É$.....É$..K
00017000  21 73 00 00 76 73 00 00  78 73 00 00 EF 73 00 00  F1 73 00 00 07 74 00 00  09 74 00 00 E8 75 00 00  !s..vs..xs..s..±s..t..t..Φu..
00017020  EA 75 00 00 13 77 00 00  15 77 00 00 F4 77 00 00  F6 77 00 00 D0 78 00 00  D2 78 00 00 3F 79 00 00  Ωu..w..§w..w..÷w..x..x..?y..
00017040  41 79 00 00 7C 79 00 00  7E 79 00 00 80 79 00 00  82 79 00 00 84 79 00 00  86 79 00 00 AA 79 00 00  Ay..|y..~y..Çy..éy..äy..åy..¬y..
00017060  AC 79 00 00 0F 7A 00 00  52 7A 00 00 54 7A 00 00  8A 7A 00 00 8C 7A 00 00  E3 7A 00 00 E5 7A 00 00  ¼y..z..Rz..Tz..èz..îz..πz..σz..
00017080  52 7C 00 00 54 7C 00 00  B2 7C 00 00 B4 7C 00 00  1B 7E 00 00 1D 7E 00 00  71 7F 00 00 73 7F 00 00  R|..T|..|..|..~..~..q..s..
000170A0  0E 80 00 00 10 80 00 00  20 80 00 00 22 80 00 00  64 80 00 00 66 80 00 00  22 81 00 00 24 81 00 00  Ç..Ç.. Ç.."Ç..dÇ..fÇ.."ü..$ü..
000170C0  FC 81 00 00 FE 81 00 00  9D 82 00 00 9F 82 00 00  C4 82 00 00 C6 82 00 00  ED 82 00 00 EF 82 00 00  ü..ü..¥é..ƒé..é..é..φé..é..
000170E0  1B 83 00 00 1D 83 00 00  56 83 00 00 58 83 00 00  AA 83 00 00 AC 83 00 00  F2 83 00 00 F4 83 00 00  â..â..Vâ..Xâ..¬â..¼â..â..â..
00017100  35 84 00 00 37 84 00 00  75 84 00 00 77 84 00 00  B5 84 00 00 B7 84 00 00  F4 84 00 00 F6 84 00 00  5ä..7ä..uä..wä..ä..ä..ä..÷ä..
00017120  48 85 00 00 4A 85 00 00  81 85 00 00 83 85 00 00  E6 85 00 00 1D 86 00 00  1F 86 00 00 58 86 00 00  Hà..Jà..üà..âà..µà..å..å..Xå..
00017140  5A 86 00 00 87 86 00 00  89 86 00 00 A2 86 00 00  A4 86 00 00 E5 86 00 00  E7 86 00 00 1E 87 00 00  Zå..çå..ëå..óå..ñå..σå..τå..ç..
00017160  FB FB F6 FB FB FB F1 FB  EC FB EC FB E7 FB FB FB  FB FB FB FB FB FB FB FB  FB FB FB FB FB FB FB E2  ÷±τΓ
00017180  FB FB FB E2 FB E2 FB F6  FB FB FB FB FB F6 FB F6  FB F6 FB FB FB FB FB FB  FB DD FB DD FB DD FB DD  ΓΓ÷÷÷÷
000171A0  FB FB FB DD FB DD FB DD  FB FB FB FB FB FB DD FB  FB FB FB FB DD FB FB 00  00 00 04 00 00 01 90 24  .....É$
000171C0  F7 00 00 00 04 00 00 04  90 24 F0 00 00 00 04 00  00 03 90 24 F0 00 00 00  04 00 04 FF 90 24 D7 02  .....É$.....É$.... É$
000171E0  00 00 04 00 00 05 90 24  F0 00 00 00 04 00 00 02  90 24 F0 00 00 00 04 00  00 01 90 24 F0 00 00 57  ....É$.....É$.....É$..W
00017200  1E 87 00 00 20 87 00 00  97 88 00 00 99 88 00 00  64 89 00 00 66 89 00 00  6F 89 00 00 71 89 00 00  ç.. ç..ùê..Öê..dë..fë..oë..që..
00017220  99 89 00 00 9B 89 00 00  6E 8A 00 00 70 8A 00 00  D1 8A 00 00 D3 8A 00 00  DD 8A 00 00 DF 8A 00 00  Öë..¢ë..nè..pè..è..è..è..è..
00017240  F1 8A 00 00 07 8B 00 00  09 8B 00 00 50 8B 00 00  52 8B 00 00 5C 8B 00 00  5E 8B 00 00 70 8B 00 00  ±è..ï..ï..Pï..Rï..\ï..^ï..pï..
00017260  86 8B 00 00 88 8B 00 00  8E 8C 00 00 90 8C 00 00  12 8D 00 00 14 8D 00 00  1E 8D 00 00 20 8D 00 00  åï..êï..Äî..Éî..ì..ì..ì.. ì..
00017280  4A 8D 00 00 4C 8D 00 00  B0 8D 00 00 EA 8D 00 00  EC 8D 00 00 FD 8D 00 00  0E 8E 00 00 10 8E 00 00  Jì..Lì..ì..Ωì..ì..²ì..Ä..Ä..
000172A0  49 8E 00 00 4B 8E 00 00  60 8E 00 00 62 8E 00 00  66 8F 00 00 68 8F 00 00  78 8F 00 00 7A 8F 00 00  IÄ..KÄ..`Ä..bÄ..fÅ..hÅ..xÅ..zÅ..
000172C0  99 8F 00 00 9B 8F 00 00  B2 8F 00 00 B4 8F 00 00  CE 8F 00 00 D0 8F 00 00  E2 8F 00 00 E4 8F 00 00  ÖÅ..¢Å..Å..Å..Å..Å..ΓÅ..ΣÅ..
000172E0  FA 8F 00 00 FC 8F 00 00  12 90 00 00 14 90 00 00  85 90 00 00 87 90 00 00  AE 90 00 00 B0 90 00 00  ·Å..Å..É..É..àÉ..çÉ..«É..É..
00017300  0A 91 00 00 0C 91 00 00  82 92 00 00 84 92 00 00  27 93 00 00 29 93 00 00  4E 93 00 00 6E 93 00 00  æ..æ..éÆ..äÆ..'ô..)ô..Nô..nô..
00017320  70 93 00 00 FB 94 00 00  FD 94 00 00 14 95 00 00  26 95 00 00 46 95 00 00  FB F6 FB F1 FB EC FB FB  pô..ö..²ö..ò..&ò..Fò..÷±
00017340  FB E7 FB FB FB FB FB E2  E2 FB DD FB FB FB E2 E2  FB D8 FB E7 FB FB FB E2  FB FB FB FB E2 E2 FB EC  τΓΓΓΓτΓΓΓ
00017360  FB FB FB D3 FB FB FB EC  FB EC FB EC FB FB FB EC  FB EC FB CE FB DD FB FB  FB F6 FB E7 FB C3 C3 FB  ÷τ
00017380  F6 FB C3 C3 C3 00 0A 00  00 01 90 24 D3 00 0F 0B  00 03 D0 02 40 0B 80 16  00 00 00 00 04 00 04 FF  ÷...É$..@Ç..... 
000173A0  90 24 E7 01 00 00 04 00  04 FF 90 24 D7 02 00 00  04 00 00 03 90 24 F0 00  00 00 04 00 00 00 00 00  É$τ... É$....É$........
000173C0  00 00 00 00 04 00 00 01  90 24 D3 00 00 00 04 00  00 02 90 24 F0 00 00 00  04 00 00 01 90 24 F7 00  ......É$.....É$.....É$.
000173E0  00 00 04 00 00 02 90 24  F7 00 00 00 04 00 00 04  90 24 F0 00 00 00 04 00  00 01 90 24 F0 00 00 4D  ....É$.....É$.....É$..M
00017400  46 95 00 00 56 95 00 00  66 95 00 00 68 95 00 00  FA 96 00 00 FC 96 00 00  55 97 00 00 61 97 00 00  Fò..Vò..fò..hò..·û..û..Uù..aù..
00017420  63 97 00 00 4F 9A 00 00  51 9A 00 00 74 9A 00 00  76 9A 00 00 F5 9A 00 00  F7 9A 00 00 21 9B 00 00  cù..OÜ..QÜ..tÜ..vÜ..Ü..Ü..!¢..
00017440  23 9B 00 00 99 9B 00 00  9B 9B 00 00 31 9C 00 00  33 9C 00 00 D2 9C 00 00  D4 9C 00 00 4E 9E 00 00  #¢..Ö¢..¢¢..1£..3£..£..£..N..
00017460  50 9E 00 00 66 9E 00 00  68 9E 00 00 C6 9E 00 00  DD 9E 00 00 DF 9E 00 00  F8 9E 00 00 FA 9E 00 00  P..f..h........°..·..
00017480  AA 9F 00 00 AC 9F 00 00  BB 9F 00 00 C9 9F 00 00  CB 9F 00 00 E4 A0 00 00  E6 A0 00 00 F0 A0 00 00  ¬ƒ..¼ƒ..ƒ..ƒ..ƒ..Σá..µá..á..
000174A0  F2 A0 00 00 E3 A1 00 00  E5 A1 00 00 F4 A1 00 00  FE A1 00 00 00 A2 00 00  0F A2 00 00 11 A2 00 00  á..πí..σí..í..í...ó..ó..ó..
000174C0  10 A3 00 00 12 A3 00 00  25 A3 00 00 27 A3 00 00  F3 A3 00 00 F5 A3 00 00  F0 A4 00 00 F2 A4 00 00  ú..ú..%ú..'ú..ú..ú..ñ..ñ..
000174E0  0A A5 00 00 17 A5 00 00  21 A5 00 00 24 A5 00 00  26 A5 00 00 5A A5 00 00  5C A5 00 00 8E A5 00 00  Ñ..Ñ..!Ñ..$Ñ..&Ñ..ZÑ..\Ñ..ÄÑ..
00017500  90 A5 00 00 BA A5 00 00  DF A5 00 00 44 A6 00 00  46 A6 00 00 72 A6 00 00  F5 F5 F0 EB F0 F0 F0 F0  ÉÑ..Ñ..Ñ..Dª..Fª..rª..δ
00017520  E6 F0 F0 F0 E1 F0 F0 F0  DC F0 DC F0 DC F0 D7 F0  F0 F0 D2 F0 F0 F0 F0 DC  F0 CD CD F0 C8 F0 F0 F0  µß
00017540  C3 F0 CD CD F0 F0 F0 C8  F0 F0 F0 E1 F0 BE F0 CD  CD CD CD F0 F0 F0 B9 CD  CD B4 AF F0 F0 00 04 00  ß»..
00017560  00 03 90 24 D3 00 00 00  04 00 00 02 90 24 D3 00  00 00 04 00 00 01 90 24  0D 01 00 00 04 00 00 03  .É$.....É$.....É$....
00017580  90 24 F0 00 00 00 04 00  04 FF 90 24 D7 02 00 00  04 00 04 FF 90 24 DE 02  00 00 04 00 00 01 90 24  É$.... É$... É$....É$
000175A0  D3 00 00 00 04 00 00 01  90 24 F7 00 00 00 04 00  04 FF 90 24 D6 03 00 00  04 00 04 FF 90 24 E7 01  .....É$.... É$... É$τ
000175C0  00 00 04 00 00 02 90 24  F0 00 00 00 04 00 00 08  90 24 F0 00 00 00 04 00  00 04 90 24 F0 00 00 00  ....É$.....É$.....É$...
000175E0  04 00 00 01 90 24 F0 00  00 00 0A 00 00 01 90 24  D3 00 0F 0B 00 03 D0 02  40 0B 80 16 00 00 00 45  ..É$.....É$..@Ç...E
00017600  72 A6 00 00 74 A6 00 00  95 A6 00 00 A8 A6 00 00  BF A6 00 00 C1 A6 00 00  FC A7 00 00 FE A7 00 00  rª..tª..òª..¿ª..ª..ª..º..º..
00017620  08 A8 00 00 0A A8 00 00  B0 A9 00 00 B2 A9 00 00  08 AA 00 00 4D AA 00 00  4F AA 00 00 A6 AA 00 00  ¿..¿......¬..M¬..O¬..ª¬..
00017640  D6 AA 00 00 D8 AA 00 00  EE AA 00 00 F0 AA 00 00  B8 AC 00 00 BA AC 00 00  62 AD 00 00 64 AD 00 00  ¬..¬..ε¬..¬..¼..¼..b¡..d¡..
00017660  79 AD 00 00 7B AD 00 00  3C AE 00 00 3E AE 00 00  4E AE 00 00 50 AE 00 00  31 B0 00 00 33 B0 00 00  y¡..{¡..<«..>«..N«..P«..1..3..
00017680  45 B0 00 00 47 B0 00 00  40 B1 00 00 42 B1 00 00  48 B2 00 00 4A B2 00 00  6E B2 00 00 70 B2 00 00  E..G..@..B..H..J..n..p..
000176A0  4C B3 00 00 4E B3 00 00  5F B3 00 00 61 B3 00 00  67 B4 00 00 69 B4 00 00  88 B4 00 00 8A B4 00 00  L..N.._..a..g..i..ê..è..
000176C0  FC B4 00 00 FE B4 00 00  10 B5 00 00 12 B5 00 00  37 B6 00 00 39 B6 00 00  52 B6 00 00 54 B6 00 00  ........7..9..R..T..
000176E0  8E B7 00 00 77 B9 00 00  79 B9 00 00 87 B9 00 00  89 B9 00 00 B6 B9 00 00  B8 B9 00 00 10 BA 00 00  Ä..w..y..ç..ë........
00017700  37 BA 00 00 39 BA 00 00  6B BA 00 00 FB F1 E6 E6  DE D9 FB FB FB D4 FB CF  CF FB CF CF FB FB FB CA  7..9..k..±µµ
00017720  FB C5 FB FB FB C0 FB FB  FB BB FB FB FB B6 FB B6  FB FB FB B6 FB FB FB B6  FB FB FB C0 FB FB FB B1  
00017740  FB FB FB AC CA FB FB FB  A7 FB FB FB FB FB 04 00  00 01 90 24 D3 00 00 00  04 00 00 03 90 24 F0 00  ¼º..É$.....É$.
00017760  00 00 04 00 04 FF 90 24  D7 02 00 00 04 00 04 FF  90 24 DE 02 00 00 04 00  04 FF 90 24 CD 04 00 00  ... É$... É$... É$..
00017780  04 00 00 02 90 24 F7 00  00 00 04 00 00 02 90 24  F0 00 00 00 04 00 00 05  90 24 F0 00 00 00 04 00  ..É$.....É$.....É$....
000177A0  00 01 90 24 F7 00 00 00  04 00 04 FF 90 24 C6 04  00 00 04 00 04 FF 90 24  C7 03 00 00 07 00 00 01  .É$.... É$... É$....
000177C0  90 24 F0 00 0F 05 00 01  AE 06 00 00 0A 00 00 01  90 24 D3 00 0F 0B 00 03  84 03 A0 05 32 0A 00 00  É$..«....É$..äá2..
000177E0  00 00 09 00 00 01 90 24  D3 00 0F 08 00 02 84 03  32 0A 00 00 00 00 04 00  00 01 90 24 F0 00 00 42  ....É$..ä2......É$..B
00017800  6B BA 00 00 6D BA 00 00  B4 BA 00 00 B6 BA 00 00  E0 BA 00 00 E2 BA 00 00  22 BB 00 00 24 BB 00 00  k..m......α..Γ.."..$..
00017820  4B BB 00 00 76 BB 00 00  96 BB 00 00 B6 BB 00 00  D6 BB 00 00 0A BC 00 00  0C BC 00 00 6C BC 00 00  K..v..û..........l..
00017840  6E BC 00 00 93 BC 00 00  95 BC 00 00 C9 BC 00 00  CB BC 00 00 C8 BD 00 00  CA BD 00 00 E8 BD 00 00  n..ô..ò..........Φ..
00017860  EA BD 00 00 FB BD 00 00  FD BD 00 00 16 BE 00 00  2C BE 00 00 2E BE 00 00  3C BE 00 00 5B BE 00 00  Ω....²....,.....<..[..
00017880  5D BE 00 00 66 BE 00 00  6C BE 00 00 6E BE 00 00  70 BE 00 00 9C BE 00 00  9E BE 00 00 E0 BE 00 00  ]..f..l..n..p..£....α..
000178A0  F0 BE 00 00 21 BF 00 00  55 BF 00 00 89 BF 00 00  BD BF 00 00 F3 BF 00 00  29 C0 00 00 6F C0 00 00  ..!..U..ë......)..o..
000178C0  71 C0 00 00 91 C0 00 00  93 C0 00 00 62 C2 00 00  64 C2 00 00 9B C3 00 00  9D C3 00 00 DE C4 00 00  q..æ..ô..b..d..¢..¥....
000178E0  E0 C4 00 00 3B C5 00 00  6C C5 00 00 6E C5 00 00  B7 C5 00 00 C6 C5 00 00  01 C6 00 00 3F C6 00 00  α..;..l..n........?..
00017900  7D C6 00 00 BC C6 00 00  F6 C6 00 00 36 C7 00 00  76 C7 00 00 B6 C7 00 00  F0 C7 00 00 30 C8 00 00  }....÷..6..v......0..
00017920  70 C8 00 00 B0 C8 00 00  DF C8 00 00 10 C9 00 00  4B C9 00 00 4D C9 00 00  71 C9 00 00 FB FB FB FB  p........K..M..q..
00017940  FB FB FB F6 F6 F6 F6 F6  F6 FB FB FB F1 FB FB FB  EC FB FB FB FB FB F6 F6  F6 F6 F6 F6 F6 F6 FB FB  ÷÷÷÷÷÷±÷÷÷÷÷÷÷÷
00017960  FB F6 E7 DC DC DC DC DC  DC DC DC FB FB FB D7 FB  D2 FB CD FB FB FB FB F6  C5 C5 C5 C5 C5 C5 C5 C5  ÷τ÷
00017980  C5 C5 C5 C5 C5 C5 C5 C5  FB FB 07 00 00 01 90 24  D3 00 0F 05 00 01 B0 13  00 00 04 00 00 04 90 24  ..É$......É$
000179A0  F0 00 00 00 04 00 00 03  90 24 F7 00 00 00 04 00  04 FF 90 24 BE 04 00 00  0A 00 00 01 90 24 D3 00  .....É$.... É$....É$.
000179C0  0F 0B 00 03 68 01 38 04  E0 10 00 00 00 00 04 00  00 01 90 24 0D 01 00 00  04 00 00 03 90 24 F0 00  .h8α......É$....É$.
000179E0  00 00 04 00 00 01 90 24  22 01 00 00 04 00 00 01  90 24 D3 00 00 00 04 00  00 01 90 24 F0 00 00 4E  ....É$"....É$.....É$..N
00017A00  71 C9 00 00 73 C9 00 00  5D CA 00 00 5F CA 00 00  2B CB 00 00 2D CB 00 00  14 CD 00 00 16 CD 00 00  q..s..].._..+..-......
00017A20  7F CD 00 00 81 CD 00 00  B1 CD 00 00 B3 CD 00 00  FE CD 00 00 50 CE 00 00  A2 CE 00 00 AF CE 00 00  ..ü........P..ó..»..
00017A40  EA CE 00 00 28 CF 00 00  70 CF 00 00 B8 CF 00 00  00 D0 00 00 48 D0 00 00  9A D0 00 00 EC D0 00 00  Ω..(..p.......H..Ü....
00017A60  3E D1 00 00 90 D1 00 00  E2 D1 00 00 2A D2 00 00  75 D2 00 00 C0 D2 00 00  0B D3 00 00 4C D3 00 00  >..É..Γ..*..u......L..
00017A80  80 D3 00 00 B4 D3 00 00  E8 D3 00 00 1C D4 00 00  1E D4 00 00 4C D4 00 00  4E D4 00 00 82 D4 00 00  Ç....Φ......L..N..é..
00017AA0  84 D4 00 00 A7 D4 00 00  A9 D4 00 00 3E D5 00 00  40 D5 00 00 09 D7 00 00  0B D7 00 00 2D D7 00 00  ä..º....>..@......-..
00017AC0  2F D7 00 00 8C D7 00 00  8E D7 00 00 C0 D7 00 00  C2 D7 00 00 5C D8 00 00  5E D8 00 00 54 D9 00 00  /..î..Ä......\..^..T..
00017AE0  56 D9 00 00 06 DA 00 00  08 DA 00 00 20 DA 00 00  22 DA 00 00 2A DB 00 00  2C DB 00 00 49 DB 00 00  V...... .."..*..,..I..
00017B00  4B DB 00 00 A1 DC 00 00  A3 DC 00 00 1E DE 00 00  20 DE 00 00 38 DE 00 00  54 DE 00 00 56 DE 00 00  K..í..ú.... ..8..T..V..
00017B20  58 DE 00 00 FB F6 FB F1  FB EC FB FB FB E7 E2 DD  DD DD DD DD DD DD DD DD  DD DD DD DD DD DD DD DD  X..÷±τΓ
00017B40  DD DD DD DD DD DD DD DD  DD DD DD FB FB FB D8 FB  EC FB FB FB D3 FB D3 FB  CE FB C9 FB F1 FB E7 FB  ±τ
00017B60  F6 FB FB FB C4 FB C4 FB  BF BF FB BF 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 04 00  ÷...................
00017B80  00 01 90 24 D3 00 00 00  04 00 00 04 90 24 F0 00  00 00 04 00 04 FF 90 24  D7 02 00 00 04 00 04 FF  .É$.....É$.... É$... 
00017BA0  90 24 CA 01 00 00 04 00  00 01 90 24 F7 00 00 00  04 00 00 02 90 24 F7 00  00 00 04 00 00 01 90 24  É$....É$.....É$.....É$
00017BC0  AA 00 00 00 04 00 00 01  90 24 CA 00 00 00 04 00  00 00 00 00 00 00 00 00  04 00 04 FF 90 24 C6 04  ¬.....É$............. É$
00017BE0  00 00 04 00 00 02 90 24  F0 00 00 00 04 00 00 03  90 24 F0 00 00 00 04 00  00 01 90 24 F0 00 00 48  ....É$.....É$.....É$..H
00017C00  58 DE 00 00 8B DE 00 00  B6 DE 00 00 C2 DE 00 00  E6 DE 00 00 04 DF 00 00  45 DF 00 00 5C DF 00 00  X..ï......µ....E..\..
00017C20  86 DF 00 00 B5 DF 00 00  BF DF 00 00 C1 DF 00 00  C3 DF 00 00 C5 DF 00 00  0C E0 00 00 4D E0 00 00  å............α..Mα..
00017C40  59 E0 00 00 9C E0 00 00  AD E0 00 00 CA E0 00 00  E7 E0 00 00 FB E0 00 00  22 E1 00 00 F5 EA DB CC  Yα..£α..¡α..α..τα..α.."ß..Ω
00017C60  CC BB AA CC 99 87 79 6F  6F 6F 65 56 48 56 56 56  56 56 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ¬ÖçyoooeVHVVVVV..............
00017C80  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  0D 00 00 01 90 24 D3 00  0F 11 00 05 D8 09 10 0E  ..................É$..
00017CA0  64 14 80 16 50 19 00 00  01 02 00 00 0E 00 00 01  90 24 D3 00 05 03 0F 11  00 05 D8 09 10 0E 18 15  dÇP......É$..§
00017CC0  50 19 A4 1F 00 00 02 00  03 00 09 00 00 01 90 24  D3 00 0F 08 00 02 D8 09  18 15 00 01 00 00 09 00  Pñ......É$..§....
00017CE0  00 01 90 24 D3 00 0F 08  00 02 70 08 18 15 00 01  00 00 0D 00 00 01 90 24  D3 00 05 03 0F 0E 00 04  .É$..p§.....É$..
00017D00  F4 0B FC 12 18 15 58 20  00 03 02 03 00 00 11 00  00 01 90 24 D3 00 05 03  0F 17 00 07 D8 09 5C 0D  §X .....É$..\
00017D20  EE 11 72 15 50 19 58 20  CE 22 00 00 03 02 00 03  00 00 10 00 00 01 90 24  D3 00 0F 17 00 07 24 09  εr§PX ".......É$..$
00017D40  D8 09 5C 0D CC 15 50 19  58 20 CE 22 00 00 00 02  00 03 00 00 10 00 00 01  90 24 D3 00 05 03 0F 14  \§PX "........É$.
00017D60  00 06 D8 09 5C 0D 72 15  50 19 FE 1F CE 22 00 00  02 00 03 00 00 00 10 00  00 01 90 24 D3 00 05 03  .\r§P"........É$.
00017D80  0F 14 00 06 D8 09 5C 0D  10 0E 50 19 FE 1F CE 22  00 00 02 00 03 00 00 00  0E 00 00 01 90 24 D3 00  .\P"........É$.
00017DA0  05 03 0F 11 00 05 D8 09  5C 0D 72 15 50 19 CE 22  00 00 02 00 00 00 0E 00  00 01 90 24 D3 00 05 03  .\r§P".......É$.
00017DC0  0F 11 00 05 D8 09 5C 0D  50 19 58 20 CE 22 00 00  00 03 00 00 0A 00 00 01  90 24 D3 00 0F 0B 00 03  .\PX ".......É$..
00017DE0  2A 03 5C 0D 50 19 00 00  00 00 0A 00 00 01 90 24  D3 00 0F 0B 00 03 70 08  5C 0D 48 12 00 00 00 16  *\P......É$..p\H...
00017E00  22 E1 00 00 35 E1 00 00  3E E1 00 00 40 E1 00 00  42 E1 00 00 0C E3 00 00  0E E3 00 00 10 E3 00 00  "ß..5ß..>ß..@ß..Bß..π..π..π..
00017E20  12 E3 00 00 14 E3 00 00  16 E3 00 00 30 E3 00 00  32 E3 00 00 3A E4 00 00  3C E4 00 00 5F E4 00 00  π..π..π..0π..2π..:Σ..<Σ.._Σ..
00017E40  89 E4 00 00 AF E4 00 00  B1 E4 00 00 D5 E4 00 00  F9 E4 00 00 1D E5 00 00  47 E5 00 00 6D E5 00 00  ëΣ..»Σ..Σ..Σ..Σ..σ..Gσ..mσ..
00017E60  6F E5 00 00 B6 E5 00 00  B8 E5 00 00 D2 E5 00 00  EC E5 00 00 06 E6 00 00  3F E6 00 00 41 E6 00 00  oσ..σ..σ..σ..σ..µ..?µ..Aµ..
00017E80  8D E6 00 00 8F E6 00 00  A9 E6 00 00 C7 E6 00 00  C9 E6 00 00 BC E7 00 00  BE E7 00 00 74 E9 00 00  ìµ..ŵ..µ..µ..µ..τ..τ..tΘ..
00017EA0  76 E9 00 00 29 EA 00 00  2B EA 00 00 06 EB 00 00  08 EB 00 00 C9 EB 00 00  CB EB 00 00 1A ED 00 00  vΘ..)Ω..+Ω..δ..δ..δ..δ..φ..
00017EC0  1C ED 00 00 1E ED 00 00  28 ED 00 00 2A ED 00 00  66 ED 00 00 68 ED 00 00  99 ED 00 00 CA ED 00 00  φ..φ..(φ..*φ..fφ..hφ..Öφ..φ..
00017EE0  CC ED 00 00 28 EE 00 00  2A EE 00 00 14 EF 00 00  16 EF 00 00 B3 EF 00 00  B5 EF 00 00 D9 EF 00 00  φ..(ε..*ε............
00017F00  DB EF 00 00 FD EF 00 00  FF EF 00 00 40 F0 00 00  81 F0 00 00 C2 F0 00 00  03 F1 00 00 05 F1 00 00  ..².. ..@..ü....±..±..
00017F20  2B F1 00 00 2D F1 00 00  72 F1 00 00 F1 E2 D6 D6  D1 CC CC CC CC CC C7 C7  C7 C7 BD BD BD BD BD BD  +±..-±..r±..±Γ
00017F40  BD BD BD C7 C7 C7 C7 C7  C7 C7 C7 C7 C7 C7 C7 C7  C7 C7 C7 C7 C7 C7 C7 C7  C7 C7 C7 C7 C7 C7 C7 C7  
00017F60  C7 C7 C7 C7 C7 C7 C7 C7  C7 C7 C7 C7 C7 C7 C7 C7  C7 C7 C7 C7 C7 C7 00 00  00 00 09 00 00 00 00 00  .........
00017F80  00 00 0F 08 00 02 A0 05  86 10 00 00 00 00 04 00  00 00 00 00 00 00 00 00  04 00 00 01 90 24 F0 00  ...áå...............É$.
00017FA0  00 00 04 00 04 FF 90 24  C6 04 00 00 0B 00 00 01  90 24 F0 00 05 03 0F 0B  00 03 D8 09 A8 0C 18 15  ... É$....É$..¿§
00017FC0  00 03 02 00 0E 00 00 01  90 24 D3 00 05 03 0F 11  00 05 D8 09 10 0E 18 15  50 19 A4 1F 00 00 02 00  ....É$..§Pñ...
00017FE0  03 00 0E 00 00 01 90 24  D3 00 05 03 0F 11 00 05  1C 02 A8 0C 10 0E E8 17  50 19 02 00 00 00 00 4A  ...É$..¿ΦP....J
00018000  72 F1 00 00 B3 F1 00 00  D1 F1 00 00 D3 F1 00 00  0E F2 00 00 10 F2 00 00  A2 F3 00 00 A4 F3 00 00  r±..±..±..±......ó..ñ..
00018020  08 F4 00 00 55 F4 00 00  57 F4 00 00 76 F4 00 00  78 F4 00 00 B3 F4 00 00  FF F4 00 00 3A F5 00 00  ..U..W..v..x.... ..:..
00018040  3D F5 00 00 4A F5 00 00  4C F5 00 00 21 F7 00 00  23 F7 00 00 25 F7 00 00  3B F7 00 00 52 F7 00 00  =..J..L..!..#..%..;..R..
00018060  68 F7 00 00 6A F7 00 00  71 F7 00 00 77 F7 00 00  84 F7 00 00 96 F7 00 00  98 F7 00 00 A2 F7 00 00  h..j..q..w..ä..û..ÿ..ó..
00018080  C9 F7 00 00 E3 F7 00 00  FF F7 00 00 01 F8 00 00  0A F8 00 00 1F F8 00 00  36 F8 00 00 4D F8 00 00  ..π.. ..°..°..°..6°..M°..
000180A0  4F F8 00 00 55 F8 00 00  6F F8 00 00 82 F8 00 00  A3 F8 00 00 A5 F8 00 00  AB F8 00 00 B9 F8 00 00  O°..U°..o°..é°..ú°..Ѱ..½°..°..
000180C0  C2 F8 00 00 D7 F8 00 00  D9 F8 00 00 DB F8 00 00  DE F8 00 00 F9 F8 00 00  08 F9 00 00 1C F9 00 00  °..°..°..°..°..°......
000180E0  30 F9 00 00 43 F9 00 00  45 F9 00 00 4C F9 00 00  69 F9 00 00 75 F9 00 00  92 F9 00 00 9E F9 00 00  0..C..E..L..i..u..Æ....
00018100  A0 F9 00 00 AC F9 00 00  B7 F9 00 00 FB FB FB FB  FB FB FB FB FB FB FB FB  FB FB FB FB FB FB FB FB  á..¼....
00018120  F5 F5 F5 F5 D2 F5 F5 F5  F5 D2 F5 F5 F5 F5 D2 F5  F5 F5 F5 D2 F5 F5 F5 F5  D2 F5 F5 F5 F5 D2 FB FB  
00018140  F5 F5 F5 F5 F5 A9 F5 F5  F5 F5 F5 A9 F5 F5 00 00  00 00 28 00 00 00 00 00  00 00 18 01 19 01 94 6C  ....(.......öl
00018160  00 9A 3F 00 05 A3 FF F3  06 43 0E 76 14 8B 1A A0  20 00 00 09 00 09 00 09  00 09 00 00 00 09 00 09  .Ü?.ú Cvïá .........
00018180  00 09 00 09 00 00 00 09  00 09 00 09 00 09 00 00  00 09 00 09 00 09 00 09  00 00 00 09 00 09 00 09  ...................
000181A0  00 09 00 00 22 00 00 00  00 00 00 00 18 01 19 01  94 6C 00 9A 33 00 04 94  FF 25 05 49 0E 6D 17 91  ...".......öl.Ü3.ö %Imæ
000181C0  20 00 00 09 00 09 00 09  00 09 00 00 00 09 00 09  00 09 00 09 00 00 00 09  00 09 00 09 00 09 00 00   ...................
000181E0  00 09 00 09 00 09 00 09  00 00 05 00 00 00 00 00  00 00 18 01 00 00 04 00  00 00 00 00 00 00 00 42  .......................B
00018200  B7 F9 00 00 C0 F9 00 00  CA F9 00 00 D6 F9 00 00  D8 F9 00 00 F2 F9 00 00  01 FA 00 00 0D FA 00 00  ............·..·..
00018220  17 FA 00 00 23 FA 00 00  25 FA 00 00 27 FA 00 00  32 FA 00 00 3E FA 00 00  4A FA 00 00 58 FA 00 00  ·..#·..%·..'·..2·..>·..J·..X·..
00018240  5A FA 00 00 5C FA 00 00  73 FA 00 00 82 FA 00 00  8F FA 00 00 9C FA 00 00  9E FA 00 00 AB FA 00 00  Z·..\·..s·..é·..Å·..£·..·..½·..
00018260  B4 FA 00 00 C0 FA 00 00  CC FA 00 00 D2 FA 00 00  FA FA FA D1 FA FA FA FA  FA A8 FA FA FA FA FA 7F  ·..·..·..·..········¿·····
00018280  FA FA FA FA FA 56 FA FA  FA FA FA 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ·····V·····.....................
000182A0  00 00 00 00 00 00 00 00  00 00 00 00 28 00 00 00  00 00 00 00 18 01 19 01  94 6C 00 9A 3F 00 05 A3  ............(.......öl.Ü?.ú
000182C0  FF F3 06 43 0E 76 14 8B  1A A0 20 00 00 00 00 09  00 00 00 09 00 00 00 09  00 00 00 00 00 09 00 00   Cvïá .................
000182E0  00 09 00 09 00 00 00 09  00 00 00 09 00 09 00 00  00 09 00 00 00 09 00 09  00 00 00 09 00 00 28 00  .....................(.
00018300  00 00 00 00 00 00 18 01  19 01 94 6C 00 9A 3F 00  05 A3 FF F3 06 43 0E 76  14 8B 1A A0 20 00 00 00  ......öl.Ü?.ú Cvïá ...
00018320  00 09 00 00 00 09 00 00  00 09 00 00 00 09 00 09  00 00 00 09 00 09 00 09  00 09 00 00 00 09 00 09  .....................
00018340  00 09 00 09 00 00 00 09  00 09 00 09 00 09 00 00  28 00 00 00 00 00 00 00  18 01 19 01 94 6C 00 9A  ..........(.......öl.Ü
00018360  3F 00 05 A3 FF F3 06 43  0E 76 14 8B 1A A0 20 00  00 09 00 09 00 00 00 09  00 00 00 09 00 00 00 09  ?.ú Cvïá ............
00018380  00 09 00 00 00 09 00 09  00 09 00 09 00 00 00 09  00 09 00 09 00 09 00 00  00 09 00 09 00 09 00 09  ...................
000183A0  00 00 28 00 00 00 00 00  00 00 18 01 19 01 94 6C  00 9A 3F 00 05 A3 FF F3  06 43 0E 76 14 8B 1A A0  ..(.......öl.Ü?.ú Cvïá
000183C0  20 00 00 09 00 09 00 00  00 09 00 00 00 09 00 09  00 00 00 09 00 00 00 09  00 09 00 00 00 09 00 00   ......................
000183E0  00 09 00 09 00 00 00 09  00 00 00 09 00 09 00 00  00 09 00 00 05 00 00 00  00 00 00 00 18 01 00 1B  ......................
00018400  D2 FA 00 00 D4 FA 00 00  ED FA 00 00 FE FA 00 00  0E FB 00 00 1D FB 00 00  27 FB 00 00 29 FB 00 00  ·..·..φ·..·......'..)..
00018420  2B FB 00 00 2D FB 00 00  4B FB 00 00 4D FB 00 00  79 FB 00 00 7B FB 00 00  A0 FB 00 00 A2 FB 00 00  +..-..K..M..y..{..á..ó..
00018440  BE FB 00 00 C0 FB 00 00  E3 FB 00 00 E5 FB 00 00  1C FC 00 00 1E FC 00 00  30 FC 00 00 32 FC 00 00  ....π..σ......0..2..
00018460  50 FC 00 00 51 FC 00 00  AF FC 00 00 B1 FC 00 00  B3 FC 00 00 16 FD 00 00  3D FD 00 00 60 FD 00 00  P..Q..»......²..=²..`²..
00018480  83 FD 00 00 A1 FD 00 00  A3 FD 00 00 A5 FD 00 00  D4 FD 00 00 EA FD 00 00  FC FD 00 00 FE FD 00 00  â²..í²..ú²..Ѳ..²..Ω²..²..²..
000184A0  27 FE 00 00 44 FE 00 00  58 FE 00 00 61 FE 00 00  D7 D1 D1 D1 D1 D1 A8 A3  A3 A3 A3 A3 A3 A3 A3 A3  '..D..X..a..¿úúúúúúúúú
000184C0  A3 A3 A3 A3 A3 A3 A3 A3  98 93 A3 A3 A3 8D 8D 8D  8D A3 A3 A3 8D 8D A3 A3  88 7E 6E 00 0F 2D 00 00  úúúúúúúúÿôúúúììììúúúììúúê~n.-..
000184E0  00 00 00 00 05 01 11 00  00 13 00 00 18 01 0F 0A  01 F4 0B 02 08 07 BC 07  00 00 00 00 09 2D 00 00  ............-..
00018500  00 00 00 00 18 01 0F 07  01 F4 0B 01 70 08 00 00  04 0C 00 00 00 00 00 00  00 00 05 02 00 00 00 00  ....p..............
00018520  00 00 11 D0 02 00 04 14  00 00 00 00 00 00 00 00  0A FE 00 00 00 00 00 00  1D 10 1B D1 02 31 BB 00  .................1.
00018540  25 02 2E 01 00 00 04 00  00 00 00 00 00 00 00 00  28 00 00 00 00 00 00 00  18 01 19 01 94 6C 00 9A  %............(.......öl.Ü
00018560  3F 00 05 A3 FF F3 06 43  0E 76 14 8B 1A A0 20 00  00 09 00 09 00 09 00 09  00 00 00 09 00 09 00 09  ?.ú Cvïá ..........
00018580  00 09 00 00 00 09 00 09  00 09 00 09 00 00 00 09  00 09 00 09 00 09 00 00  00 09 00 09 00 09 00 09  ...................
000185A0  00 00 05 00 00 00 00 00  00 00 18 01 00 00 28 00  00 00 00 00 00 00 18 01  19 01 94 6C 00 9A 3F 00  ...........(.......öl.Ü?.
000185C0  05 A3 FF F3 06 43 0E 76  14 8B 1A A0 20 00 00 09  00 09 00 09 00 00 00 00  00 09 00 09 00 09 00 09  ú Cvïá ............
000185E0  00 00 00 09 00 09 00 09  00 09 00 00 00 09 00 09  00 09 00 09 00 00 00 09  00 09 00 09 00 09 00 2B  ...................+
00018600  61 FE 00 00 63 FE 00 00  86 FE 00 00 8A FE 00 00  8C FE 00 00 B3 FE 00 00  B7 FE 00 00 B9 FE 00 00  a..c..å..è..î........
00018620  DF FE 00 00 E3 FE 00 00  E5 FE 00 00 0E FF 00 00  12 FF 00 00 14 FF 00 00  2A FF 00 00 2E FF 00 00  ..π..σ.. .. .. ..* ... ..
00018640  30 FF 00 00 3B FF 00 00  3F FF 00 00 41 FF 00 00  54 FF 00 00 58 FF 00 00  5A FF 00 00 7F FF 00 00  0 ..; ..? ..A ..T ..X ..Z .. ..
00018660  83 FF 00 00 85 FF 00 00  A9 FF 00 00 AD FF 00 00  AF FF 00 00 C7 FF 00 00  CB FF 00 00 CD FF 00 00  â ..à .. ..¡ ..» .. .. .. ..
00018680  E5 FF 00 00 E9 FF 00 00  EB FF 00 00 FE FF 00 00  02 00 01 00 04 00 01 00  13 00 01 00 17 00 01 00  σ ..Θ ..δ .. ..........
000186A0  19 00 01 00 38 00 01 00  3C 00 01 00 3E 00 01 00  58 00 01 00 5C 00 01 00  5E 00 01 00 76 00 01 00  ..8..<..>..X..\..^..v..
000186C0  7A 00 01 00 7C 00 01 00  A5 00 01 00 A7 00 01 00  A9 00 01 00 D2 00 01 00  D6 00 01 00 D8 00 01 00  z..|..Ñ..º..........
000186E0  05 01 01 00 09 01 01 00  0B 01 01 00 37 01 01 00  3B 01 01 00 3D 01 01 00  67 01 01 00 6B 01 01 00  ...7.;.=.g.k.
00018700  E9 DF CF B8 AF CF B8 AF  CF B8 AF CF B8 AF CF B8  DF CF B8 DF CF B8 DF CF  B8 DF CF B8 DF CF B8 DF  Θ»»»»
00018720  CF B8 DF A1 B8 DF A1 B8  DF A1 B8 DF A1 B8 DF A1  B8 DF A1 B8 DF A1 B8 DF  A1 B8 DF A1 B8 DF A1 00  íííííííííí.
00018740  00 00 0D 2D 00 00 00 00  00 00 05 01 11 00 00 13  00 00 18 01 0F 07 01 F4  0B 01 08 07 00 00 08 2D  ..-............-
00018760  00 00 00 00 00 00 18 01  0F 05 00 01 70 08 00 00  16 00 00 00 00 00 00 00  18 01 19 01 94 48 00 9A  .......p.........öH.Ü
00018780  1B 00 02 12 00 E8 17 88  1D 00 00 00 00 09 00 00  00 09 00 00 00 00 00 00  00 00 00 09 00 00 0F 2D  ..Φê..................-
000187A0  00 00 00 00 00 00 05 01  11 00 00 13 00 00 18 01  0F 0A 01 F4 0B 02 08 07  BC 07 00 00 00 00 09 2D  ..............-
000187C0  00 00 00 00 00 00 18 01  0F 07 01 F4 0B 01 70 08  00 00 16 00 00 00 00 00  00 00 18 01 19 01 94 48  ......p.........öH
000187E0  00 9A 1B 00 02 12 00 E8  17 88 1D 00 00 09 00 09  00 09 00 09 00 00 00 09  00 00 00 09 00 09 00 3F  .Ü..Φê.............?
00018800  6B 01 01 00 6D 01 01 00  AC 01 01 00 B0 01 01 00  B2 01 01 00 CA 01 01 00  CE 01 01 00 D0 01 01 00  k.m.¼......
00018820  EC 01 01 00 F0 01 01 00  F2 01 01 00 0E 02 01 00  12 02 01 00 14 02 01 00  3C 02 01 00 40 02 01 00  ......<.@.
00018840  42 02 01 00 5F 02 01 00  63 02 01 00 65 02 01 00  81 02 01 00 85 02 01 00  87 02 01 00 B9 02 01 00  B._.c.e.ü.à.ç..
00018860  BD 02 01 00 BF 02 01 00  E0 02 01 00 E4 02 01 00  E6 02 01 00 11 03 01 00  15 03 01 00 17 03 01 00  ..α.Σ.µ..§..
00018880  52 03 01 00 56 03 01 00  58 03 01 00 80 03 01 00  84 03 01 00 86 03 01 00  B1 03 01 00 B5 03 01 00  R.V.X.Ç.ä.å...
000188A0  B7 03 01 00 CD 03 01 00  D1 03 01 00 D3 03 01 00  EA 03 01 00 EE 03 01 00  F0 03 01 00 23 04 01 00  ....Ω.ε..#.
000188C0  27 04 01 00 29 04 01 00  35 04 01 00 37 04 01 00  39 04 01 00 63 04 01 00  77 04 01 00 E9 DF D1 E9  '.).5.7.9.c.w.ΘΘ
000188E0  DF D1 E9 DF D1 E9 DF D1  E9 DF D1 E9 DF D1 E9 DF  D1 E9 DF D1 E9 DF D1 E9  DF D1 E9 DF D1 E9 DF D1  ΘΘΘΘΘΘΘΘΘΘ
00018900  E9 DF D1 E9 DF D1 E9 DF  D1 E9 DF D1 E9 C6 B7 A0  9B DF 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ΘΘΘΘΘá¢..............
00018920  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 04 0C  00 00 00 00 00 00 00 00  ..............................
00018940  16 00 00 00 00 00 00 00  18 01 19 01 94 48 00 9A  1B 00 02 12 00 E8 17 88  1D 00 00 00 00 09 00 09  .......öH.Ü..Φê.....
00018960  00 09 00 00 00 00 00 00  00 09 00 09 00 00 0E 2D  00 00 00 00 00 00 05 01  08 00 11 00 00 13 00 00  ...........-...........
00018980  18 01 0F 07 01 F4 0B 01  08 07 00 00 0A 2D 00 00  00 00 00 00 08 00 18 01  0F 07 01 F4 0B 01 70 08  ..-.......p
000189A0  00 00 0D 2D 00 00 00 00  00 00 05 01 11 00 00 13  00 00 18 01 0F 07 01 F4  0B 01 08 07 00 00 09 2D  ..-............-
000189C0  00 00 00 00 00 00 18 01  0F 07 01 F4 0B 01 70 08  00 00 16 00 00 00 00 00  00 00 18 01 19 01 94 48  ......p.........öH
000189E0  00 9A 1B 00 02 12 00 E8  17 88 1D 00 00 00 00 09  00 00 00 09 00 00 00 00  00 00 00 00 00 09 00 36  .Ü..Φê.................6
00018A00  77 04 01 00 80 04 01 00  82 04 01 00 98 04 01 00  9C 04 01 00 9E 04 01 00  B6 04 01 00 BA 04 01 00  w.Ç.é.ÿ.£....
00018A20  BC 04 01 00 D2 04 01 00  D6 04 01 00 D8 04 01 00  F3 04 01 00 F7 04 01 00  F9 04 01 00 18 05 01 00  ........
00018A40  1C 05 01 00 1E 05 01 00  3E 05 01 00 42 05 01 00  44 05 01 00 5D 05 01 00  61 05 01 00 63 05 01 00  ..>.B.D.].a.c.
00018A60  82 05 01 00 86 05 01 00  88 05 01 00 A7 05 01 00  AB 05 01 00 AD 05 01 00  CD 05 01 00 D1 05 01 00  é.å.ê.º.½.¡...
00018A80  D3 05 01 00 F5 05 01 00  F9 05 01 00 FB 05 01 00  27 06 01 00 29 06 01 00  2B 06 01 00 54 06 01 00  ....'.).+.T.
00018AA0  58 06 01 00 5A 06 01 00  83 06 01 00 87 06 01 00  89 06 01 00 B6 06 01 00  BA 06 01 00 BC 06 01 00  X.Z.â.ç.ë....
00018AC0  E8 06 01 00 EC 06 01 00  EE 06 01 00 1B 07 01 00  1F 07 01 00 21 07 01 00  45 07 01 00 49 07 01 00  Φ..ε...!.E.I.
00018AE0  4B 07 01 00 6A 07 01 00  6E 07 01 00 70 07 01 00  8A 07 01 00 8E 07 01 00  90 07 01 00 AE 07 01 00  K.j.n.p.è.Ä.É.«.
00018B00  B2 07 01 00 B4 07 01 00  D7 07 01 00 DB 07 01 00  F0 D9 CF C1 AA CF C1 AA  CF C1 AA CF C1 AA CF C1  ....¬¬¬¬
00018B20  AA CF C1 AA CF C1 AA CF  C1 AA CF C1 AA CF C1 AA  CF C1 AA CF C1 AA CF C1  AA CF C1 AA CF C1 AA CF  ¬¬¬¬¬¬¬¬¬¬¬
00018B40  C1 AA CF C1 AA CF C1 AA  CF C1 AA CF C1 AA CF C1  AA CF C1 00 16 00 00 00  00 00 00 00 18 01 19 01  ¬¬¬¬¬¬........
00018B60  94 48 00 9A 1B 00 02 12  00 E8 17 88 1D 00 00 00  00 09 00 00 00 09 00 00  00 00 00 00 00 00 00 09  öH.Ü..Φê................
00018B80  00 00 0D 2D 00 00 00 00  00 00 05 01 11 00 00 13  00 00 18 01 0F 07 01 F4  0B 01 08 07 00 00 09 2D  ..-............-
00018BA0  00 00 00 00 00 00 18 01  0F 07 01 F4 0B 01 70 08  00 00 16 00 00 00 00 00  00 00 18 01 19 01 94 48  ......p.........öH
00018BC0  00 9A 1B 00 02 12 00 E8  17 88 1D 00 00 09 00 09  00 09 00 09 00 00 00 09  00 00 00 09 00 09 00 00  .Ü..Φê..............
00018BE0  0F 2D 00 00 00 00 00 00  05 01 11 00 00 13 00 00  18 01 0F 0A 01 F4 0B 02  08 07 BC 07 00 00 00 43  -.............C
00018C00  DB 07 01 00 DD 07 01 00  F8 07 01 00 FC 07 01 00  FE 07 01 00 19 08 01 00  1D 08 01 00 1F 08 01 00  ..°......
00018C20  4D 08 01 00 51 08 01 00  53 08 01 00 6E 08 01 00  72 08 01 00 74 08 01 00  A5 08 01 00 A9 08 01 00  M.Q.S.n.r.t.Ñ..
00018C40  AB 08 01 00 D8 08 01 00  DC 08 01 00 DE 08 01 00  FF 08 01 00 03 09 01 00  05 09 01 00 28 09 01 00  ½.... ...(.
00018C60  2A 09 01 00 2C 09 01 00  5A 09 01 00 5E 09 01 00  60 09 01 00 74 09 01 00  78 09 01 00 7A 09 01 00  *.,.Z.^.`.t.x.z.
00018C80  A5 09 01 00 A9 09 01 00  AB 09 01 00 DC 09 01 00  E0 09 01 00 E2 09 01 00  FC 09 01 00 00 0A 01 00  Ñ..½..α.Γ....
00018CA0  02 0A 01 00 40 0A 01 00  44 0A 01 00 46 0A 01 00  60 0A 01 00 64 0A 01 00  66 0A 01 00 77 0A 01 00  .@.D.F.`.d.f.w.
00018CC0  7B 0A 01 00 7D 0A 01 00  A3 0A 01 00 A7 0A 01 00  A9 0A 01 00 CD 0A 01 00  D1 0A 01 00 D3 0A 01 00  {.}.ú.º.....
00018CE0  FD 0A 01 00 11 0B 01 00  E9 DF D1 E9 DF D1 E9 DF  D1 E9 DF D1 E9 DF D1 E9  DF D1 E9 DF D1 E9 DF D1  ²..ΘΘΘΘΘΘΘΘ
00018D00  E9 DF D1 E9 DF D1 E9 DF  D1 E9 DF D1 E9 DF D1 E9  DF D1 E9 DF D1 E9 DF D1  E9 DF D1 E9 C6 B7 A0 9B  ΘΘΘΘΘΘΘΘΘΘá¢
00018D20  DF 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 04 0C  00 00 00 00 00 00 00 00  .............................
00018D40  16 00 00 00 00 00 00 00  18 01 19 01 94 48 00 9A  1B 00 02 12 00 E8 17 88  1D 00 00 00 00 09 00 09  .......öH.Ü..Φê.....
00018D60  00 09 00 00 00 00 00 00  00 09 00 09 00 00 0E 2D  00 00 00 00 00 00 05 01  08 00 11 00 00 13 00 00  ...........-...........
00018D80  18 01 0F 07 01 F4 0B 01  08 07 00 00 0A 2D 00 00  00 00 00 00 08 00 18 01  0F 07 01 F4 0B 01 70 08  ..-.......p
00018DA0  00 00 0D 2D 00 00 00 00  00 00 05 01 11 00 00 13  00 00 18 01 0F 07 01 F4  0B 01 08 07 00 00 09 2D  ..-............-
00018DC0  00 00 00 00 00 00 18 01  0F 07 01 F4 0B 01 70 08  00 00 16 00 00 00 00 00  00 00 18 01 19 01 94 48  ......p.........öH
00018DE0  00 9A 1B 00 02 12 00 E8  17 88 1D 00 00 00 00 09  00 00 00 09 00 00 00 00  00 00 00 00 00 09 00 39  .Ü..Φê.................9
00018E00  11 0B 01 00 1A 0B 01 00  1C 0B 01 00 42 0B 01 00  46 0B 01 00 48 0B 01 00  82 0B 01 00 86 0B 01 00  ...B.F.H.é.å.
00018E20  88 0B 01 00 A7 0B 01 00  AB 0B 01 00 AD 0B 01 00  CC 0B 01 00 D0 0B 01 00  D2 0B 01 00 02 0C 01 00  ê.º.½.¡.....
00018E40  06 0C 01 00 08 0C 01 00  29 0C 01 00 2D 0C 01 00  2F 0C 01 00 4D 0C 01 00  51 0C 01 00 53 0C 01 00  ..).-./.M.Q.S.
00018E60  74 0C 01 00 78 0C 01 00  7A 0C 01 00 95 0C 01 00  99 0C 01 00 9B 0C 01 00  BC 0C 01 00 BE 0C 01 00  t.x.z.ò.Ö.¢...
00018E80  C0 0C 01 00 DF 0C 01 00  E3 0C 01 00 E5 0C 01 00  FA 0C 01 00 FE 0C 01 00  00 0D 01 00 23 0D 01 00  ..π.σ.·....#.
00018EA0  27 0D 01 00 29 0D 01 00  56 0D 01 00 5A 0D 01 00  5C 0D 01 00 84 0D 01 00  88 0D 01 00 8A 0D 01 00  '.).V.Z.\.ä.ê.è.
00018EC0  C0 0D 01 00 C4 0D 01 00  C6 0D 01 00 EA 0D 01 00  EC 0D 01 00 EE 0D 01 00  0D 0E 01 00 11 0E 01 00  ...Ω..ε...
00018EE0  13 0E 01 00 28 0E 01 00  2C 0E 01 00 2E 0E 01 00  51 0E 01 00 55 0E 01 00  57 0E 01 00 80 0E 01 00  .(.,...Q.U.W.Ç.
00018F00  84 0E 01 00 86 0E 01 00  B3 0E 01 00 B7 0E 01 00  F0 D9 CF C1 AA CF C1 AA  CF C1 AA CF C1 AA CF C1  ä.å...¬¬¬¬
00018F20  AA CF C1 AA CF C1 AA CF  C1 AA CF C1 AA CF C1 AA  CF C1 AA CF C1 AA CF C1  AA CF C1 AA CF C1 AA CF  ¬¬¬¬¬¬¬¬¬¬¬
00018F40  C1 AA CF C1 AA CF C1 AA  CF C1 AA CF C1 AA CF C1  AA CF C1 00 16 00 00 00  00 00 00 00 18 01 19 01  ¬¬¬¬¬¬........
00018F60  94 48 00 9A 1B 00 02 12  00 E8 17 88 1D 00 00 00  00 09 00 00 00 09 00 00  00 00 00 00 00 00 00 09  öH.Ü..Φê................
00018F80  00 00 0D 2D 00 00 00 00  00 00 05 01 11 00 00 13  00 00 18 01 0F 07 01 F4  0B 01 08 07 00 00 09 2D  ..-............-
00018FA0  00 00 00 00 00 00 18 01  0F 07 01 F4 0B 01 70 08  00 00 16 00 00 00 00 00  00 00 18 01 19 01 94 48  ......p.........öH
00018FC0  00 9A 1B 00 02 12 00 E8  17 88 1D 00 00 09 00 09  00 09 00 09 00 00 00 09  00 00 00 09 00 09 00 00  .Ü..Φê..............
00018FE0  0F 2D 00 00 00 00 00 00  05 01 11 00 00 13 00 00  18 01 0F 0A 01 F4 0B 02  08 07 BC 07 00 00 00 43  -.............C
00019000  B7 0E 01 00 B9 0E 01 00  E4 0E 01 00 E8 0E 01 00  EA 0E 01 00 1D 0F 01 00  21 0F 01 00 23 0F 01 00  ..Σ.Φ.Ω..!.#.
00019020  41 0F 01 00 43 0F 01 00  45 0F 01 00 69 0F 01 00  6D 0F 01 00 6F 0F 01 00  97 0F 01 00 9B 0F 01 00  A.C.E.i.m.o.ù.¢.
00019040  9D 0F 01 00 C2 0F 01 00  C6 0F 01 00 C8 0F 01 00  F1 0F 01 00 F5 0F 01 00  F7 0F 01 00 35 10 01 00  ¥....±...5.
00019060  39 10 01 00 3B 10 01 00  7D 10 01 00 81 10 01 00  83 10 01 00 A2 10 01 00  A4 10 01 00 A6 10 01 00  9.;.}.ü.â.ó.ñ.ª.
00019080  CA 10 01 00 CE 10 01 00  D0 10 01 00 F8 10 01 00  FC 10 01 00 FE 10 01 00  23 11 01 00 27 11 01 00  ...°...#.'.
000190A0  29 11 01 00 52 11 01 00  56 11 01 00 58 11 01 00  96 11 01 00 9A 11 01 00  9C 11 01 00 DE 11 01 00  ).R.V.X.û.Ü.£..
000190C0  E2 11 01 00 E4 11 01 00  0F 12 01 00 13 12 01 00  15 12 01 00 2D 12 01 00  31 12 01 00 33 12 01 00  Γ.Σ...§.-.1.3.
000190E0  5D 12 01 00 71 12 01 00  E9 DF D1 E9 DF D1 E9 DF  D1 E9 DF D1 E9 DF D1 E9  DF D1 E9 DF D1 E9 DF D1  ].q.ΘΘΘΘΘΘΘΘ
00019100  E9 DF D1 E9 DF D1 E9 DF  D1 E9 DF D1 E9 DF D1 E9  DF D1 E9 DF D1 E9 DF D1  E9 DF D1 E9 C6 B7 A0 9B  ΘΘΘΘΘΘΘΘΘΘá¢
00019120  DF 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 04 0C  00 00 00 00 00 00 00 00  .............................
00019140  16 00 00 00 00 00 00 00  18 01 19 01 94 48 00 9A  1B 00 02 12 00 E8 17 88  1D 00 00 00 00 09 00 09  .......öH.Ü..Φê.....
00019160  00 09 00 00 00 00 00 00  00 09 00 09 00 00 0E 2D  00 00 00 00 00 00 05 01  08 00 11 00 00 13 00 00  ...........-...........
00019180  18 01 0F 07 01 F4 0B 01  08 07 00 00 0A 2D 00 00  00 00 00 00 08 00 18 01  0F 07 01 F4 0B 01 70 08  ..-.......p
000191A0  00 00 0D 2D 00 00 00 00  00 00 05 01 11 00 00 13  00 00 18 01 0F 07 01 F4  0B 01 08 07 00 00 09 2D  ..-............-
000191C0  00 00 00 00 00 00 18 01  0F 07 01 F4 0B 01 70 08  00 00 16 00 00 00 00 00  00 00 18 01 19 01 94 48  ......p.........öH
000191E0  00 9A 1B 00 02 12 00 E8  17 88 1D 00 00 00 00 09  00 00 00 09 00 00 00 00  00 00 00 00 00 09 00 39  .Ü..Φê.................9
00019200  71 12 01 00 7A 12 01 00  7C 12 01 00 94 12 01 00  98 12 01 00 9A 12 01 00  B3 12 01 00 B7 12 01 00  q.z.|.ö.ÿ.Ü...
00019220  B9 12 01 00 E6 12 01 00  EA 12 01 00 EC 12 01 00  1A 13 01 00 1E 13 01 00  20 13 01 00 4A 13 01 00  .µ.Ω.... .J.
00019240  4E 13 01 00 50 13 01 00  7B 13 01 00 7F 13 01 00  81 13 01 00 B0 13 01 00  B4 13 01 00 B6 13 01 00  N.P.{..ü....
00019260  E6 13 01 00 EA 13 01 00  EC 13 01 00 10 14 01 00  12 14 01 00 14 14 01 00  38 14 01 00 3C 14 01 00  µ.Ω.....8.<.
00019280  3E 14 01 00 66 14 01 00  6A 14 01 00 6C 14 01 00  91 14 01 00 95 14 01 00  97 14 01 00 C0 14 01 00  >.f.j.l.æ.ò.ù..
000192A0  C4 14 01 00 C6 14 01 00  04 15 01 00 08 15 01 00  0A 15 01 00 4C 15 01 00  50 15 01 00 52 15 01 00  ..§.§.§.L§.P§.R§.
000192C0  77 15 01 00 79 15 01 00  7B 15 01 00 9F 15 01 00  A3 15 01 00 A5 15 01 00  CD 15 01 00 D1 15 01 00  w§.y§.{§.ƒ§.ú§.ѧ.§.§.
000192E0  D3 15 01 00 F8 15 01 00  FC 15 01 00 FE 15 01 00  27 16 01 00 2B 16 01 00  2D 16 01 00 6B 16 01 00  §.°§.§.§.'.+.-.k.
00019300  6F 16 01 00 71 16 01 00  B3 16 01 00 B7 16 01 00  F0 D9 CF C1 AA CF C1 AA  CF C1 AA CF C1 AA CF C1  o.q...¬¬¬¬
00019320  AA CF C1 AA CF C1 AA CF  C1 AA CF C1 AA CF C1 AA  CF C1 AA CF C1 AA CF C1  AA CF C1 AA CF C1 AA CF  ¬¬¬¬¬¬¬¬¬¬¬
00019340  C1 AA CF C1 AA CF C1 AA  CF C1 AA CF C1 AA CF C1  AA CF C1 00 16 00 00 00  00 00 00 00 18 01 19 01  ¬¬¬¬¬¬........
00019360  94 48 00 9A 1B 00 02 12  00 E8 17 88 1D 00 00 00  00 09 00 00 00 09 00 00  00 00 00 00 00 00 00 09  öH.Ü..Φê................
00019380  00 00 0D 2D 00 00 00 00  00 00 05 01 11 00 00 13  00 00 18 01 0F 07 01 F4  0B 01 08 07 00 00 09 2D  ..-............-
000193A0  00 00 00 00 00 00 18 01  0F 07 01 F4 0B 01 70 08  00 00 16 00 00 00 00 00  00 00 18 01 19 01 94 48  ......p.........öH
000193C0  00 9A 1B 00 02 12 00 E8  17 88 1D 00 00 09 00 09  00 09 00 09 00 00 00 09  00 00 00 09 00 09 00 00  .Ü..Φê..............
000193E0  0F 2D 00 00 00 00 00 00  05 01 11 00 00 13 00 00  18 01 0F 0A 01 F4 0B 02  08 07 BC 07 00 00 00 43  -.............C
00019400  B7 16 01 00 B9 16 01 00  E4 16 01 00 E8 16 01 00  EA 16 01 00 06 17 01 00  0A 17 01 00 0C 17 01 00  ..Σ.Φ.Ω....
00019420  41 17 01 00 43 17 01 00  45 17 01 00 63 17 01 00  65 17 01 00 67 17 01 00  8B 17 01 00 8F 17 01 00  A.C.E.c.e.g.ï.Å.
00019440  91 17 01 00 B9 17 01 00  BD 17 01 00 BF 17 01 00  E4 17 01 00 E8 17 01 00  EA 17 01 00 13 18 01 00  æ....Σ.Φ.Ω..
00019460  17 18 01 00 19 18 01 00  57 18 01 00 5B 18 01 00  5D 18 01 00 9F 18 01 00  A3 18 01 00 A5 18 01 00  ..W.[.].ƒ.ú.Ñ.
00019480  CC 18 01 00 D0 18 01 00  D2 18 01 00 F8 18 01 00  FC 18 01 00 FE 18 01 00  1D 19 01 00 21 19 01 00  ...°....!.
000194A0  23 19 01 00 52 19 01 00  56 19 01 00 58 19 01 00  82 19 01 00 96 19 01 00  9F 19 01 00 A1 19 01 00  #.R.V.X.é.û.ƒ.í.
000194C0  E9 DF D1 E9 DF D1 E9 C5  D1 E9 C5 D1 E9 DF D1 E9  DF D1 E9 DF D1 E9 DF D1  E9 DF D1 E9 DF D1 E9 DF  ΘΘΘΘΘΘΘΘΘΘΘ
000194E0  D1 E9 DF D1 E9 DF D1 E9  DF D1 AE A9 DF 99 82 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ΘΘΘ«Öé.................
00019500  00 00 00 00 16 00 00 00  00 00 00 00 18 01 19 01  94 48 00 9A 1B 00 02 12  00 E8 17 88 1D 00 00 09  ...........öH.Ü..Φê..
00019520  00 09 00 00 00 09 00 00  00 09 00 00 00 00 00 09  00 00 0F 2D 00 00 00 00  00 00 05 01 11 00 00 13  ..............-........
00019540  00 00 18 01 0F 0A 01 F4  0B 02 08 07 BC 07 00 00  00 00 04 0C 00 00 00 00  00 00 00 00 16 00 00 00  .................
00019560  00 00 00 00 18 01 19 01  94 48 00 9A 1B 00 02 12  00 E8 17 88 1D 00 00 00  00 09 00 09 00 09 00 00  ....öH.Ü..Φê........
00019580  00 00 00 00 00 09 00 09  00 00 0B 2D 00 00 00 00  00 00 18 01 0F 0A 01 F4  0B 02 70 08 96 1E 00 00  ........-......pû..
000195A0  00 00 0D 2D 00 00 00 00  00 00 05 01 11 00 00 13  00 00 18 01 0F 07 01 F4  0B 01 08 07 00 00 09 2D  ..-............-
000195C0  00 00 00 00 00 00 18 01  0F 07 01 F4 0B 01 70 08  00 00 16 00 00 00 00 00  00 00 18 01 19 01 94 48  ......p.........öH
000195E0  00 9A 1B 00 02 12 00 E8  17 88 1D 00 00 00 00 09  00 00 00 09 00 00 00 00  00 00 00 00 00 09 00 2F  .Ü..Φê................./
00019600  A1 19 01 00 B3 19 01 00  B5 19 01 00 B7 19 01 00  DB 19 01 00 DF 19 01 00  E1 19 01 00 09 1A 01 00  í......ß..
00019620  0D 1A 01 00 0F 1A 01 00  34 1A 01 00 38 1A 01 00  3A 1A 01 00 63 1A 01 00  67 1A 01 00 69 1A 01 00  ..4.8.:.c.g.i.
00019640  A7 1A 01 00 AB 1A 01 00  AD 1A 01 00 EF 1A 01 00  F3 1A 01 00 F5 1A 01 00  19 1B 01 00 1B 1B 01 00  º.½.¡......
00019660  1D 1B 01 00 69 1B 01 00  6D 1B 01 00 6F 1B 01 00  B8 1B 01 00 BC 1B 01 00  BE 1B 01 00 F6 1B 01 00  .i.m.o....÷.
00019680  FA 1B 01 00 FC 1B 01 00  31 1C 01 00 35 1C 01 00  37 1C 01 00 4A 1C 01 00  4C 1C 01 00 4E 1C 01 00  ·..1.5.7.J.L.N.
000196A0  72 1C 01 00 76 1C 01 00  78 1C 01 00 A0 1C 01 00  A4 1C 01 00 A6 1C 01 00  CB 1C 01 00 CF 1C 01 00  r.v.x.á.ñ.ª...
000196C0  D1 1C 01 00 FA 1C 01 00  FE 1C 01 00 00 1D 01 00  3E 1D 01 00 42 1D 01 00  44 1D 01 00 86 1D 01 00  .·....>.B.D.å.
000196E0  8A 1D 01 00 8C 1D 01 00  F3 E4 CD C3 B5 9E C3 B5  9E C3 B5 9E C3 B5 9E C3  B5 9E C3 B5 9E C3 B5 9E  è.î.Σ
00019700  92 B5 9E 92 B5 9E 92 B5  9E 92 B5 9E 92 B5 9E C3  B5 9E C3 B5 9E C3 B5 9E  C3 B5 9E C3 B5 9E C3 B5  ÆÆÆÆÆ
00019720  9E 00 00 00 0B 2D 00 00  00 00 00 00 18 01 0F 0A  01 F4 0B 02 70 08 96 1E  00 00 00 00 16 00 00 00  ...-......pû.......
00019740  00 00 00 00 18 01 19 01  94 48 00 9A 1B 00 02 12  00 E8 17 88 1D 00 00 00  00 09 00 00 00 09 00 00  ....öH.Ü..Φê.........
00019760  00 00 00 00 00 00 00 09  00 00 0D 2D 00 00 00 00  00 00 05 01 11 00 00 13  00 00 18 01 0F 07 01 F4  .........-..........
00019780  0B 01 08 07 00 00 09 2D  00 00 00 00 00 00 18 01  0F 07 01 F4 0B 01 70 08  00 00 16 00 00 00 00 00  ..-......p.......
000197A0  00 00 18 01 19 01 94 48  00 9A 1B 00 02 12 00 E8  17 88 1D 00 00 09 00 09  00 00 00 09 00 00 00 09  ..öH.Ü..Φê.........
000197C0  00 00 00 00 00 09 00 00  0E 2D 00 00 00 00 00 00  05 01 08 00 11 00 00 13  00 00 18 01 0F 07 01 F4  .......-...........
000197E0  0B 01 08 07 00 00 0C 2D  00 00 00 00 00 00 08 00  18 01 0F 0A 01 F4 0B 02  70 08 96 1E 00 00 00 39  ..-.......pû...9
00019800  8C 1D 01 00 B1 1D 01 00  B3 1D 01 00 B5 1D 01 00  01 1E 01 00 05 1E 01 00  07 1E 01 00 50 1E 01 00  î.......P.
00019820  54 1E 01 00 56 1E 01 00  8E 1E 01 00 92 1E 01 00  94 1E 01 00 C9 1E 01 00  CD 1E 01 00 CF 1E 01 00  T.V.Ä.Æ.ö....
00019840  01 1F 01 00 05 1F 01 00  07 1F 01 00 35 1F 01 00  39 1F 01 00 3B 1F 01 00  5D 1F 01 00 61 1F 01 00  ...5.9.;.].a.
00019860  63 1F 01 00 79 1F 01 00  7D 1F 01 00 7F 1F 01 00  99 1F 01 00 9D 1F 01 00  9F 1F 01 00 B9 1F 01 00  c.y.}..Ö.¥.ƒ..
00019880  BB 1F 01 00 BD 1F 01 00  E9 1F 01 00 ED 1F 01 00  EF 1F 01 00 0A 20 01 00  0E 20 01 00 10 20 01 00  ..Θ.φ.. . . .
000198A0  2B 20 01 00 2F 20 01 00  31 20 01 00 49 20 01 00  4B 20 01 00 4D 20 01 00  78 20 01 00 7C 20 01 00  + ./ .1 .I .K .M .x .| .
000198C0  7E 20 01 00 AE 20 01 00  B2 20 01 00 B4 20 01 00  F7 20 01 00 FB 20 01 00  FD 20 01 00 36 21 01 00  ~ .« . . . . .² .6!.
000198E0  3A 21 01 00 3C 21 01 00  7E 21 01 00 82 21 01 00  F6 E8 D1 C5 E8 D1 C5 E8  D1 C5 E8 D1 C5 E8 D1 F6  :!.<!.~!.é!.÷ΦΦΦΦΦ÷
00019900  E8 D1 F6 E8 D1 F6 E8 D1  F6 E8 D1 F6 E8 D1 F6 E8  D1 F6 E8 D1 F6 E8 D1 F6  E8 D1 F6 E8 D1 F6 E8 D1  Φ÷Φ÷Φ÷Φ÷Φ÷Φ÷Φ÷Φ÷Φ÷Φ÷Φ
00019920  F6 E8 D1 F6 E8 D1 F6 E8  D1 BA AB 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ÷Φ÷Φ÷Φ½.....................
00019940  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 0E 2D  00 00 00 00 00 00 05 01  ......................-......
00019960  08 00 11 00 00 13 00 00  18 01 0F 07 01 F4 0B 01  08 07 00 00 0A 2D 00 00  00 00 00 00 08 00 18 01  .......-.......
00019980  0F 07 01 F4 0B 01 70 08  00 00 0B 2D 00 00 00 00  00 00 18 01 0F 0A 01 F4  0B 02 70 08 96 1E 00 00  p..-......pû..
000199A0  00 00 16 00 00 00 00 00  00 00 18 01 19 01 94 48  00 9A 1B 00 02 12 00 E8  17 88 1D 00 00 00 00 09  .........öH.Ü..Φê....
000199C0  00 00 00 09 00 00 00 00  00 00 00 00 00 09 00 00  0D 2D 00 00 00 00 00 00  05 01 11 00 00 13 00 00  ..............-..........
000199E0  18 01 0F 07 01 F4 0B 01  08 07 00 00 09 2D 00 00  00 00 00 00 18 01 0F 07  01 F4 0B 01 70 08 00 3B  ..-......p.;
00019A00  82 21 01 00 84 21 01 00  AE 21 01 00 C2 21 01 00  CB 21 01 00 CD 21 01 00  F3 21 01 00 F7 21 01 00  é!.ä!.«!.!.!.!.!.!.
00019A20  F9 21 01 00 1E 22 01 00  22 22 01 00 24 22 01 00  3B 22 01 00 3F 22 01 00  41 22 01 00 70 22 01 00  !."."".$".;".?".A".p".
00019A40  74 22 01 00 76 22 01 00  A0 22 01 00 A4 22 01 00  A6 22 01 00 BF 22 01 00  C3 22 01 00 C5 22 01 00  t".v".á".ñ".ª".".".".
00019A60  F4 22 01 00 F8 22 01 00  FA 22 01 00 22 23 01 00  26 23 01 00 28 23 01 00  44 23 01 00 48 23 01 00  ".°".·"."#.&#.(#.D#.H#.
00019A80  4A 23 01 00 6F 23 01 00  83 23 01 00 8C 23 01 00  8E 23 01 00 AA 23 01 00  E9 E4 DA CA B3 DA A5 8E  J#.o#.â#.î#.Ä#.¬#.ΘΣÑÄ
00019AA0  DA A5 8E DA A5 8E DA A5  8E DA A5 8E DA A5 8E DA  A5 8E DA A5 8E DA A5 E9  E4 84 7A 63 84 00 00 00  ÑÄÑÄÑÄÑÄÑÄÑÄÑÄÑΘΣäzcä...
00019AC0  00 00 00 00 00 00 16 00  00 00 00 00 00 00 18 01  19 01 94 48 00 9A 1B 00  02 24 00 E8 17 88 1D 00  .............öH.Ü.$.Φê.
00019AE0  00 09 00 09 00 09 00 09  00 00 00 09 00 00 00 09  00 09 00 00 09 2D 00 00  00 00 00 00 05 01 11 00  .............-.......
00019B00  00 13 00 00 18 01 00 00  09 2D 00 00 00 00 00 00  18 01 0F 07 01 F4 0B 01  A8 0C 00 00 16 00 00 00  .....-......¿.....
00019B20  00 00 00 00 18 01 19 01  94 48 00 9A 1B 00 02 12  00 E8 17 88 1D 00 00 00  00 09 00 00 00 09 00 00  ....öH.Ü..Φê.........
00019B40  00 00 00 00 00 00 00 09  00 00 0D 2D 00 00 00 00  00 00 05 01 11 00 00 13  00 00 18 01 0F 07 01 F4  .........-..........
00019B60  0B 01 08 07 00 00 16 00  00 00 00 00 00 00 18 01  19 01 94 48 00 9A 1B 00  02 12 00 E8 17 88 1D 00  .........öH.Ü..Φê.
00019B80  00 09 00 09 00 09 00 09  00 00 00 09 00 00 00 09  00 09 00 00 0F 2D 00 00  00 00 00 00 05 01 11 00  .............-.......
00019BA0  00 13 00 00 18 01 0F 0A  01 F4 0B 02 08 07 BC 07  00 00 00 00 09 2D 00 00  00 00 00 00 18 01 0F 07  .......-......
00019BC0  01 F4 0B 01 70 08 00 00  04 0C 00 00 00 00 00 00  00 00 16 00 00 00 00 00  00 00 18 01 19 01 94 48  p.................öH
00019BE0  00 9A 1B 00 02 12 00 E8  17 88 1D 00 00 00 00 09  00 09 00 09 00 00 00 00  00 00 00 09 00 09 00 25  .Ü..Φê...............%
00019C00  AA 23 01 00 AE 23 01 00  B0 23 01 00 C7 23 01 00  CB 23 01 00 CD 23 01 00  D9 23 01 00 DD 23 01 00  ¬#.«#.#.#.#.#.#.#.
00019C20  DF 23 01 00 F4 23 01 00  F8 23 01 00 FA 23 01 00  1C 24 01 00 20 24 01 00  22 24 01 00 4E 24 01 00  #.#.°#.·#.$. $."$.N$.
00019C40  52 24 01 00 54 24 01 00  68 24 01 00 6C 24 01 00  6E 24 01 00 88 24 01 00  8C 24 01 00 8E 24 01 00  R$.T$.h$.l$.n$.ê$.î$.Ä$.
00019C60  A3 24 01 00 A7 24 01 00  A9 24 01 00 C7 24 01 00  CB 24 01 00 CD 24 01 00  F2 24 01 00 F4 24 01 00  ú$.º$.$.$.$.$.$.$.
00019C80  F6 24 01 00 0E 25 01 00  12 25 01 00 14 25 01 00  3B 25 01 00 3F 25 01 00  41 25 01 00 50 25 01 00  ÷$.%.%.%.;%.?%.A%.P%.
00019CA0  54 25 01 00 56 25 01 00  6E 25 01 00 72 25 01 00  74 25 01 00 8C 25 01 00  90 25 01 00 92 25 01 00  T%.V%.n%.r%.t%.î%.É%.Æ%.
00019CC0  B3 25 01 00 B7 25 01 00  B9 25 01 00 D6 25 01 00  DA 25 01 00 DC 25 01 00  F1 25 01 00 F5 25 01 00  %.%.%.%.%.%.±%.%.
00019CE0  F7 25 01 00 10 26 01 00  14 26 01 00 16 26 01 00  38 26 01 00 3C 26 01 00  3E 26 01 00 45 26 01 00  %.&.&.&.8&.<&.>&.E&.
00019D00  49 26 01 00 4B 26 01 00  53 26 01 00 57 26 01 00  59 26 01 00 6E 26 01 00  72 26 01 00 74 26 01 00  I&.K&.S&.W&.Y&.n&.r&.t&.
00019D20  7B 26 01 00 7F 26 01 00  81 26 01 00 A4 26 01 00  A8 26 01 00 AA 26 01 00  D2 26 01 00 D6 26 01 00  {&.&.ü&.ñ&.¿&.¬&.&.&.
00019D40  D8 26 01 00 EE 26 01 00  F2 26 01 00 F4 26 01 00  13 27 01 00 17 27 01 00  F9 E2 D8 F9 E2 D8 F9 E2  &.ε&.&.&.'.'.ΓΓΓ
00019D60  D8 F9 E2 D8 F9 E2 D8 F9  E2 D8 F9 E2 D8 F9 E2 D8  F9 E2 D8 F9 E2 D8 F9 E2  D8 F9 E2 D8 F9 E2 D8 F9  ΓΓΓΓΓΓΓΓΓΓ
00019D80  E2 D8 F9 E2 D8 F9 E2 D8  F9 E2 D8 F9 E2 D8 F9 E2  D8 F9 E2 D8 F9 E2 D8 F9  E2 D8 F9 E2 D8 F9 E2 D8  ΓΓΓΓΓΓΓΓΓΓΓ
00019DA0  F9 E2 D8 F9 E2 D8 F9 E2  D8 F9 E2 D8 F9 00 00 00  09 2D 00 00 00 00 00 00  18 01 0F 07 01 F4 0B 01  ΓΓΓΓ...-......
00019DC0  A8 0C 00 00 16 00 00 00  00 00 00 00 18 01 19 01  94 48 00 9A 1B 00 02 24  00 E8 17 88 1D 00 00 00  ¿.........öH.Ü.$.Φê...
00019DE0  00 09 00 00 00 09 00 00  00 00 00 00 00 00 00 09  00 00 06 2D 00 00 00 00  00 00 05 01 18 01 00 55  ...............-.......U
00019E00  17 27 01 00 19 27 01 00  20 27 01 00 24 27 01 00  26 27 01 00 2E 27 01 00  32 27 01 00 34 27 01 00  '.'. '.$'.&'..'.2'.4'.
00019E20  45 27 01 00 47 27 01 00  49 27 01 00 73 27 01 00  77 27 01 00 79 27 01 00  A3 27 01 00 A7 27 01 00  E'.G'.I'.s'.w'.y'.ú'.º'.
00019E40  A9 27 01 00 D3 27 01 00  D7 27 01 00 D9 27 01 00  FC 27 01 00 00 28 01 00  02 28 01 00 1F 28 01 00  '.'.'.'.'..(.(.(.
00019E60  23 28 01 00 25 28 01 00  40 28 01 00 44 28 01 00  46 28 01 00 65 28 01 00  69 28 01 00 6B 28 01 00  #(.%(.@(.D(.F(.e(.i(.k(.
00019E80  A4 28 01 00 A8 28 01 00  AA 28 01 00 CD 28 01 00  D1 28 01 00 D3 28 01 00  04 29 01 00 18 29 01 00  ñ(.¿(.¬(.(.(.(.).).
00019EA0  21 29 01 00 23 29 01 00  46 29 01 00 4A 29 01 00  4C 29 01 00 85 29 01 00  89 29 01 00 8B 29 01 00  !).#).F).J).L).à).ë).ï).
00019EC0  BD 29 01 00 C1 29 01 00  C3 29 01 00 E0 29 01 00  E4 29 01 00 E6 29 01 00  E9 DF D8 E9 DF D8 E9 DF  ).).).α).Σ).µ).ΘΘΘ
00019EE0  D8 E9 DF D8 E9 DF D8 E9  DF D8 E9 DF D8 E9 DF D8  E9 DF D8 E9 DF D8 E9 DF  D8 E9 CD C5 AE A9 DF 9F  ΘΘΘΘΘΘΘΘΘ«ƒ
00019F00  88 DF D8 E9 DF D8 E9 DF  D8 E9 DF D8 E9 00 00 00  16 00 00 00 00 00 00 00  18 01 19 01 94 48 00 9A  êΘΘΘΘ..........öH.Ü
00019F20  1B 00 02 24 00 E8 17 88  1D 00 00 09 00 09 00 09  00 09 00 00 00 09 00 00  00 09 00 09 00 00 09 2D  .$.Φê..............-
00019F40  00 00 00 00 00 00 05 01  11 00 00 13 00 00 18 01  00 00 04 0C 00 00 00 00  00 00 00 00 16 00 00 00  .......................
00019F60  00 00 00 00 18 01 19 01  94 48 00 9A 1B 00 02 24  00 E8 17 88 1D 00 00 00  00 09 00 09 00 09 00 00  ....öH.Ü.$.Φê........
00019F80  00 00 00 00 00 09 00 09  00 00 07 2D 00 00 00 00  00 00 05 01 08 00 18 01  00 00 0A 2D 00 00 00 00  ........-.........-....
00019FA0  00 00 08 00 18 01 0F 07  01 F4 0B 01 A8 0C 00 00  06 2D 00 00 00 00 00 00  05 01 18 01 00 00 09 2D  ...¿..-........-
00019FC0  00 00 00 00 00 00 18 01  0F 07 01 F4 0B 01 A8 0C  00 00 16 00 00 00 00 00  00 00 18 01 19 01 94 48  ......¿.........öH
00019FE0  00 9A 1B 00 02 24 00 E8  17 88 1D 00 00 00 00 09  00 00 00 09 00 00 00 00  00 00 00 00 00 09 00 35  .Ü.$.Φê.................5
0001A000  E6 29 01 00 F7 29 01 00  FB 29 01 00 FD 29 01 00  0F 2A 01 00 13 2A 01 00  15 2A 01 00 2A 2A 01 00  µ).).).²).*.*.§*.**.
0001A020  2E 2A 01 00 30 2A 01 00  4D 2A 01 00 51 2A 01 00  53 2A 01 00 6E 2A 01 00  72 2A 01 00 74 2A 01 00  .*.0*.M*.Q*.S*.n*.r*.t*.
0001A040  97 2A 01 00 9B 2A 01 00  9D 2A 01 00 B6 2A 01 00  BA 2A 01 00 BC 2A 01 00  D8 2A 01 00 DA 2A 01 00  ù*.¢*.¥*.*.*.*.*.*.
0001A060  DC 2A 01 00 F8 2A 01 00  FC 2A 01 00 FE 2A 01 00  17 2B 01 00 1B 2B 01 00  1D 2B 01 00 2D 2B 01 00  *.°*.*.*.+.+.+.-+.
0001A080  31 2B 01 00 33 2B 01 00  40 2B 01 00 44 2B 01 00  46 2B 01 00 61 2B 01 00  65 2B 01 00 67 2B 01 00  1+.3+.@+.D+.F+.a+.e+.g+.
0001A0A0  7C 2B 01 00 80 2B 01 00  82 2B 01 00 94 2B 01 00  98 2B 01 00 9A 2B 01 00  B6 2B 01 00 BA 2B 01 00  |+.Ç+.é+.ö+.ÿ+.Ü+.+.+.
0001A0C0  BC 2B 01 00 DC 2B 01 00  E0 2B 01 00 E2 2B 01 00  FD 2B 01 00 01 2C 01 00  03 2C 01 00 26 2C 01 00  +.+.α+.Γ+.²+.,.,.&,.
0001A0E0  2A 2C 01 00 2C 2C 01 00  53 2C 01 00 57 2C 01 00  59 2C 01 00 6A 2C 01 00  6E 2C 01 00 70 2C 01 00  *,.,,.S,.W,.Y,.j,.n,.p,.
0001A100  8A 2C 01 00 8E 2C 01 00  90 2C 01 00 AA 2C 01 00  AE 2C 01 00 B0 2C 01 00  D3 2C 01 00 D7 2C 01 00  è,.Ä,.É,.¬,.«,.,.,.,.
0001A120  D9 2C 01 00 E6 2C 01 00  EA 2C 01 00 EC 2C 01 00  0D 2D 01 00 11 2D 01 00  13 2D 01 00 37 2D 01 00  ,.µ,.Ω,.,.-.-.-.7-.
0001A140  3B 2D 01 00 3D 2D 01 00  69 2D 01 00 6D 2D 01 00  6F 2D 01 00 7F 2D 01 00  F6 EF D8 F6 EF D8 F6 EF  ;-.=-.i-.m-.o-.-.÷÷÷
0001A160  D8 F6 EF D8 F6 EF D8 F6  EF D8 F6 EF D8 F6 EF D8  F6 EF D8 F6 EF D8 F6 EF  D8 F6 EF D8 F6 EF D8 F6  ÷÷÷÷÷÷÷÷÷÷÷
0001A180  EF D8 F6 EF D8 F6 EF D8  F6 EF D8 F6 EF D8 F6 EF  D8 F6 EF D8 F6 EF D8 F6  EF D8 F6 EF D8 F6 EF D8  ÷÷÷÷÷÷÷÷÷÷
0001A1A0  F6 EF D8 F6 EF D8 F6 EF  D8 F6 EF D8 F6 00 00 00  16 00 00 00 00 00 00 00  18 01 19 01 94 48 00 9A  ÷÷÷÷÷..........öH.Ü
0001A1C0  1B 00 02 24 00 E8 17 88  1D 00 00 00 00 09 00 00  00 09 00 00 00 00 00 00  00 00 00 09 00 00 06 2D  .$.Φê..................-
0001A1E0  00 00 00 00 00 00 05 01  18 01 00 00 09 2D 00 00  00 00 00 00 18 01 0F 07  01 F4 0B 01 A8 0C 00 55  ........-......¿.U
0001A200  7F 2D 01 00 83 2D 01 00  85 2D 01 00 A6 2D 01 00  A8 2D 01 00 AA 2D 01 00  D7 2D 01 00 DB 2D 01 00  -.â-.à-.ª-.¿-.¬-.-.-.
0001A220  DD 2D 01 00 11 2E 01 00  15 2E 01 00 17 2E 01 00  53 2E 01 00 57 2E 01 00  59 2E 01 00 77 2E 01 00  -...§....S..W..Y..w..
0001A240  79 2E 01 00 7B 2E 01 00  7D 2E 01 00 7F 2E 01 00  BE 2E 01 00 C0 2E 01 00  C2 2E 01 00 C5 2E 01 00  y..{..}............
0001A260  C7 2E 01 00 3E 2F 01 00  40 2F 01 00 9D 2F 01 00  9F 2F 01 00 C2 2F 01 00  C4 2F 01 00 E3 2F 01 00  ..>/.@/.¥/.ƒ/././.π/.
0001A280  E6 2F 01 00 E8 2F 01 00  EA 2F 01 00 EC 2F 01 00  F9 2F 01 00 FB 2F 01 00  08 30 01 00 0A 30 01 00  µ/.Φ/.Ω/./././.0.0.
0001A2A0  0C 30 01 00 0E 30 01 00  F9 E2 D8 F9 E2 D8 F9 E2  D8 F9 E2 D8 F9 E2 CA BF  A8 A3 9E 99 9E 93 8E 9E  0.0.ΓΓΓΓΓ¿úÖôÄ
0001A2C0  89 9E 8E 9E 84 9E 79 79  9E 84 9E 84 9E 84 9E 9E  9E 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ëÄäyyäää...............
0001A2E0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 0A F3 00 00 00 00  00 00 1D 10 1B 69 01 31  ........................i1
0001A300  BB 00 25 02 2E 01 00 00  04 F2 00 00 00 00 00 00  00 00 04 00 00 01 90 24  F0 00 00 00 04 F2 00 01  .%.............É$....
0001A320  90 24 F0 00 00 00 05 00  00 01 90 24 F0 00 05 02  00 00 04 F5 00 00 00 00  00 00 00 00 04 00 00 00  É$.....É$..............
0001A340  00 00 00 00 00 00 04 1D  00 00 00 00 00 00 00 00  16 00 00 00 00 00 00 00  18 01 19 01 94 48 00 9A  .....................öH.Ü
0001A360  1B 00 02 24 00 E8 17 88  1D 00 00 00 00 09 00 09  00 09 00 00 00 00 00 09  00 09 00 09 00 00 0A 2D  .$.Φê...............-
0001A380  00 00 00 00 00 00 05 01  08 00 11 BB 00 13 45 FF  18 01 00 00 0D 2D 00 00  00 00 00 00 08 00 11 BB  ........E ..-.......
0001A3A0  00 13 45 FF 18 01 0F 07  01 F4 0B 01 A8 0C 00 00  09 2D 00 00 00 00 00 00  18 01 0F 07 01 F4 0B 01  .E ¿..-......
0001A3C0  A8 0C 00 00 16 00 00 00  00 00 00 00 18 01 19 01  94 48 00 9A 1B 00 02 24  00 E8 17 88 1D 00 00 00  ¿.........öH.Ü.$.Φê...
0001A3E0  00 09 00 00 00 09 00 00  00 00 00 00 00 00 00 09  00 00 06 2D 00 00 00 00  00 00 05 01 18 01 00 29  ...............-.......)
0001A400  21 00 9B 01 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  !.¢............................
0001A420  00 00 00 00 00 00 0D 4E  6F 72 6D 61 6C 4F 75 74  64 65 6E 74 04 6C 69 73  74 07 43 6F 6D 6D 61 6E  ......NormalOutdentlistComman
0001A440  64 0A 43 6D 64 53 65 63  74 69 6F 6E 07 50 72 6F  67 72 61 6D 08 43 6D 64  42 6C 75 72 62 09 54 61  dCmdSectionProgramCmdBlurbTa
0001A460  62 6C 65 54 65 78 74 09  54 61 62 6C 65 48 65 61  64 07 43 61 70 74 69 6F  6E 06 46 69 67 75 72 65  bleTextTableHeadCaptionFigure
0001A480  07 46 69 67 43 61 70 74  07 54 61 62 43 61 70 74  0D 43 6F 70 79 72 69 67  68 74 50 61 67 65 07 43  FigCaptTabCaptCopyrightPageC
0001A4A0  6F 64 65 44 65 66 0E 4E  6F 72 6D 61 6C 20 4F 75  74 64 65 6E 74 09 45 78  63 65 70 74 69 6F 6E 05  odeDefNormal OutdentException
0001A4C0  57 68 65 72 65 08 45 71  75 61 74 69 6F 6E 0A 46  69 67 75 72 65 54 65 78  74 0F 48 65 61 64 69 6E  WhereEquationFigureTextHeadin
0001A4E0  67 20 43 68 61 70 74 65  72 05 4C 69 73 74 32 0C  4E 6F 72 6D 61 6C 20 43  6C 6F 73 65 07 44 69 76  g ChapterList2Normal CloseDiv
0001A500  69 64 65 72 0B 4E 6F 72  6D 61 6C 43 6C 6F 73 65  05 43 6C 6F 73 65 04 74  65 78 74 0C 43 6D 64 48  iderNormalCloseClosetextCmdH
0001A520  65 61 64 69 6E 67 20 31  0A 50 73 65 75 64 6F 43  6F 64 65 0A 54 61 62 6C  65 4E 6F 74 65 73 0A 43  eading 1PseudoCodeTableNotesC
0001A540  6D 64 42 6F 78 54 65 78  74 0A 43 6D 64 42 6F 78  48 65 61 64 0C 43 6D 64  48 65 61 64 69 6E 67 20  mdBoxTextCmdBoxHeadCmdHeading 
0001A560  32 08 74 6F 63 20 70 61  72 74 04 4D 61 74 68 06  49 6E 64 65 6E 74 02 54  4D 02 52 54 02 4C 44 02  2toc partMathIndentTMRTLD
0001A580  54 31 02 42 54 02 45 50  02 42 50 02 46 50 02 46  54 0B 43 6C 6F 63 6B 20  43 6F 75 6E 74 DC 01 FF  T1BTEPBPFPFTClock Count 
0001A5A0  FF FF FF FF 07 00 00 04  00 00 00 12 07 00 00 04  00 00 00 12 FF FF FF FF  FF FF FF FF FF 07 00 00      ..........         ..
0001A5C0  06 00 07 00 12 FF 00 FF  FF FF FF FF FF FF FF FF  01 40 07 40 00 04 00 00  00 16 01 40 0E 41 00 46  .. .         @@....@A.F
0001A5E0  00 02 00 18 00 00 00 00  00 09 04 05 00 00 02 00  07 0E 00 00 42 00 02 00  00 00 00 00 00 00 09 04  ............B........
0001A600  05 00 00 02 00 07 05 00  00 02 00 07 0E 01 00 47  00 02 00 1C 00 00 04 00  00 09 04 00 0E 00 00 47  .......G.........G
0001A620  00 08 00 12 00 00 02 00  00 09 04 07 01 00 05 00  00 00 12 0E 00 00 46 00  02 00 10 00 00 00 00 00  ............F.......
0001A640  09 04 01 01 07 01 00 04  00 00 00 12 0E 00 00 46  00 02 00 0E 00 00 00 00  00 09 04 00 00 07 00 00  ......F...........
0001A660  04 00 00 00 0E 00 05 00  00 02 00 07 05 00 00 02  00 07 00 05 00 00 02 00  07 01 01 0E 41 00 46 00  ..............A.F.
0001A680  02 00 1C 00 00 00 00 00  09 04 00 05 00 00 02 00  07 0E 02 00 47 00 02 00  2C 00 00 01 00 00 09 04  ...........G..,....
0001A6A0  00 05 00 00 02 00 07 05  00 00 02 00 07 0E 01 00  46 00 02 00 1C 00 00 00  00 00 09 04 0E 00 00 46  ........F.........F
0001A6C0  00 02 00 12 00 00 00 00  00 09 04 00 00 00 0E 01  00 42 00 02 00 00 00 00  00 00 00 09 04 01 41 05  ...........B........A
0001A6E0  00 00 02 00 07 07 00 00  06 00 00 00 18 0B 00 00  14 00 00 00 0C 00 00 00  06 0E 00 00 42 00 02 00  ..................B..
0001A700  00 00 00 00 00 00 09 04  0E 00 00 42 00 02 00 00  00 00 00 00 00 09 04 0E  01 00 42 00 09 00 00 00  ........B.........B....
0001A720  00 00 00 00 09 04 0E 00  00 42 00 02 00 00 00 00  00 00 00 09 04 0E 00 00  46 00 05 00 0C 00 00 00  ......B..........F.....
0001A740  00 00 09 04 0E 00 00 42  00 02 00 00 00 00 00 00  00 09 04 0E 00 00 42 00  05 00 00 00 00 00 00 00  ....B..........B........
0001A760  09 04 0E 00 00 46 00 02  00 10 00 00 00 00 00 09  04 07 00 00 04 00 00 00  0C 55 04 FF FF FF FF FF  ..F............U     
0001A780  22 E4 00 00 00 00 00 00  05 03 07 01 10 40 02 11  60 0C 13 10 FC 14 4C FF  0F 09 02 58 20 C0 21 01  "Σ......@`L X !
0001A7A0  90 1B 08 20 E5 00 00 00  00 00 00 07 01 10 40 02  11 70 08 13 A0 FC 14 4C  FF 0F 09 02 58 20 C0 21  É σ......@páL X !
0001A7C0  01 90 1B 08 FF FF FF FF  FF FF FF FF FF 19 EF 00  00 00 00 00 00 05 03 11  68 01 13 98 FE 14 4C FF  É         ......hÿL 
0001A7E0  0F 05 00 01 68 01 C0 FF  07 F1 00 00 00 00 00 00  FF FF FF FF FF FF FF FF  FF 0A FB 00 00 00 00 00  .h ±......         .....
0001A800  00 14 00 00 1C FC 00 00  00 00 00 00 11 80 04 13  80 FB 14 12 01 15 85 01  0F 07 01 A8 03 01 80 04  .........Çǧà¿Ç
0001A820  00 16 FD 00 00 00 00 00  00 11 A8 03 13 58 FC 0F  07 01 D0 02 01 A8 03 00  1B FE 00 00 00 00 00 00  .²......¿X¿.......
0001A840  07 01 08 01 11 D0 02 13  30 FD 15 06 02 0F 05 00  01 D0 02 00 19 FF 00 00  00 00 00 00 05 03 11 68  0²§.. ......h
0001A860  01 14 24 FF 15 F0 00 0F  05 00 01 68 01 C0 07 00  00 00 00 00 00 00 13 01  00 00 00 00 00 00 05 03  $ §..h.............
0001A880  15 F0 00 0F 05 00 01 68  01 C0 1C 02 00 00 00 00  00 00 05 03 11 68 01 13  98 FE 14 24 FF 15 78 00  §..h......hÿ$ §x.
0001A8A0  0F 05 00 01 68 01 00 17  03 00 00 00 00 00 00 09  01 1D 40 11 60 03 13 A0  FC 14 3D 01 1A F0 FF 07  .h.......@`á= 
0001A8C0  04 00 00 00 00 00 00 17  05 00 00 00 00 00 00 11  40 0B 13 C0 F4 14 DC 00  0F 05 00 01 40 02 00 0E  ............@..@.
0001A8E0  06 00 00 00 00 00 00 07  01 09 00 10 18 15 11 07  00 00 00 00 00 00 07 01  08 01 15 3C 00 16 3C 00  .......§......§<.<.
0001A900  07 08 00 00 00 00 00 00  18 09 00 00 00 00 00 00  05 01 07 01 10 68 01 11  68 01 0F 05 00 01 68 01  ............hh.h
0001A920  C0 0D 0A 00 00 00 00 00  00 05 01 07 01 08 01 0A  0B 00 00 00 00 00 00 15  78 00 0F 0C 00 00 00 00  ............§x.....
0001A940  00 00 08 01 15 F0 00 16  78 00 14 0D 00 00 00 00  00 00 14 9E 00 15 78 00  0F 05 00 01 68 01 00 09  ..§.x........§x..h.
0001A960  0E 00 00 00 00 00 00 08  01 16 0F 00 00 00 00 00  00 05 03 14 24 FF 15 F0  00 0F 05 00 01 68 01 C0  ............$ §..h
0001A980  1F 10 00 00 00 00 00 00  05 03 11 40 0B 13 90 F7  14 03 01 15 78 00 0F 08  00 02 68 01 40 0B C0 00  ......@ɧx..h@.
0001A9A0  10 11 00 00 00 00 00 00  11 70 08 13 60 FA 14 03  01 22 12 00 00 00 00 00  00 05 03 14 03 01 15 78  ......p`·"......§x
0001A9C0  00 0F 11 00 05 68 01 D0  02 A0 05 70 08 88 1D C0  00 00 00 02 0F 13 00 00  00 00 00 00 05 00 15 F0  ..hápê..........§
0001A9E0  00 16 F0 00 0C 14 00 00  00 00 00 00 05 01 14 2C  01 0C 15 00 00 00 00 00  00 05 00 11 D0 02 0E 16  ........,§.......
0001AA00  00 00 00 00 00 00 0F 05  00 01 68 01 C0 19 17 00  00 00 00 00 00 1D 10 11  68 01 15 C8 00 1B D1 02  .......h......h§.
0001AA20  31 BB 00 25 02 2E 01 07  18 00 00 00 00 00 00 10  19 00 00 00 00 00 00 05  03 0F 05 00 01 68 01 C0  1.%..............h
0001AA40  11 1A 00 00 00 00 00 00  14 24 FF 0F 05 00 01 68  01 C0 0F 1B 00 00 00 00  00 00 09 01 15 F0 00 16  ......$ .h......§.
0001AA60  78 00 11 1C 00 00 00 00  00 00 11 68 01 0F 05 00  01 68 01 C0 13 1D 00 00  00 00 00 00 11 20 01 13  x.......h.h...... 
0001AA80  E0 FE 15 78 00 16 00 00  0D 1E 00 00 00 00 00 00  15 00 00 16 00 00 07 1F  00 00 00 00 00 00 0C 20  α§x.........§.......... 
0001AAA0  00 00 00 00 00 00 08 01  15 68 01 1C 21 00 00 00  00 00 00 05 01 08 01 10  00 00 15 F0 00 0F 09 02  ......§h!........§.
0001AAC0  58 20 C0 21 01 00 2D 02  14 22 00 00 00 00 00 00  15 78 00 0F 08 00 02 70  08 24 09 C2 C0 09 23 00  X !.-"......§x..p$#.
0001AAE0  00 00 00 00 00 05 03 07  24 00 00 00 00 00 00 25  25 00 00 00 00 00 00 05  03 14 F0 00 0F 17 00 07  .....$......%%........
0001AB00  38 04 A0 05 60 09 48 12  A8 1B 98 1C 90 24 00 00  00 00 02 00 02 1F 26 00  00 00 00 00 00 05 03 10  8á`H¿ÿÉ$.....&......
0001AB20  90 00 11 40 0B 13 C0 F4  14 F0 00 0F 08 00 02 70  08 40 0B 00 00 1A 27 00  00 00 00 00 00 14 F0 00  É.@..p@..'.......
0001AB40  0F 0E 00 04 78 0F 08 16  98 1C 28 23 01 01 01 01  1F 28 00 00 00 00 00 00  05 03 10 DB 01 11 A0 05  .xÿ(#(......á
0001AB60  13 60 FA 14 F0 00 0F 08  00 02 C0 03 A0 05 00 00  12 29 00 00 00 00 00 00  05 03 16 56 00 28 09 08  `·..á..)......V.(
0001AB80  2A 09 08 1C 2A 00 00 00  00 00 00 05 03 10 DB 01  11 C5 03 13 25 FE 14 F0  00 0F 05 00 01 C0 03 00  **......%...
0001ABA0  07 2B 00 00 00 00 00 00  0A 2C 00 00 00 00 00 00  14 F0 00 1A 2D 00 00 00  00 00 00 11 B4 00 13 4C  +......,.......-.......L
0001ABC0  FF 15 28 00 16 14 00 0F  05 00 01 F4 0B 00 4F 00  00 00 E0 00 00 00 00 00  00 00 00 E7 00 E7 00 00   §(....O...α........τ.τ..
0001ABE0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 EF EF F2 00  F3 00 00 00 F5 00 FF 00  ......................... .
0001AC00  FF 00 FF 00 FF 00 FF 00  00 FC 00 FD 00 FE 00 DE  FF 00 00 DE 01 00 00 00  06 DE 00 FD 05 DE 06 03   . . . ...².. ......²
0001AC20  07 DE 07 07 00 00 0A DE  00 09 01 09 0D 01 00 05  0F 00 00 00 11 02 00 00  13 0A 00 DE 15 02 16 00  ..........§.
0001AC40  17 DE 18 16 19 00 1A 00  00 DE 1C DE 1D 07 1E 07  1F 08 00 DE 21 E8 22 00  23 00 24 23 25 DE 26 DE  ....!Φ".#.$#%&
0001AC60  27 DE 28 DE 29 DE 2A DE  2B DE 2C DE 2D 07 B6 E2  00 00 8E 2E 01 00 01 00  00 00 00 00 3F 00 00 00  '()*+,-Γ..Ä.......?...
0001AC80  45 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  E...............................
0001ACA0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................................
0001ACC0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................................
0001ACE0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  3F 00 00 00 3F 00 00 00  ........................?...?...
0001AD00  3F 00 00 00 3F 00 00 00  3F 00 00 00 3F 00 00 00  3F 00 00 00 3F 00 00 00  3F 00 00 00 3F 00 00 00  ?...?...?...?...?...?...?...?...
0001AD20  3F 00 00 00 45 00 00 00  00 00 FF FF 00 00 01 00  00 00 00 00 FF FF 00 00  02 00 00 00 00 00 FF FF  ?...E.....  .......  .......  
0001AD40  00 00 02 00 00 00 00 00  FF FF 00 00 02 00 00 00  00 00 FF FF 00 00 01 00  00 00 00 00 FF FF 00 00  .......  .......  .......  ..
0001AD60  02 00 00 00 00 00 FF FF  00 00 03 00 00 00 00 00  FF FF 00 00 04 00 00 00  00 00 FF FF 00 00 05 00  .....  .......  .......  ...
0001AD80  00 00 00 00 FF FF 00 00  06 00 00 00 00 00 FF FF  00 00 07 00 00 00 00 00  FF FF 00 00 08 00 00 00  ....  .......  .......  .....
0001ADA0  00 00 FF FF 00 00 09 00  00 00 00 00 FF FF 00 00  0A 00 00 00 00 00 FF FF  00 00 0B 00 00 00 00 00  ..  .......  .......  .......
0001ADC0  FF FF 00 00 0C 00 00 00  00 00 FF FF 00 00 0D 00  00 00 00 00 FF FF 00 00  0E 00 00 00 00 00 FF FF    .......  .......  .......  
0001ADE0  00 00 0F 00 00 00 00 00  FF FF 00 00 10 00 00 00  00 00 FF FF 00 00 11 00  00 00 00 00 FF FF 00 00  .......  .......  .......  ..
0001AE00  12 00 00 00 00 00 FF FF  00 00 13 00 00 00 00 00  FF FF 00 00 14 00 00 00  00 00 FF FF 00 00 15 00  .....  .......  .......  ..§.
0001AE20  00 00 00 00 FF FF 00 00  16 00 00 00 00 00 FF FF  00 00 17 00 00 00 00 00  FF FF 00 00 18 00 00 00  ....  .......  .......  .....
0001AE40  02 00 FF FF 00 00 01 00  00 00 02 00 FF FF 00 00  19 00 00 00 02 00 FF FF  00 00 1A 00 00 00 02 00  .  ......  ......  ......
0001AE60  FF FF 00 00 01 00 00 00  02 00 FF FF 00 00 02 00  00 00 02 00 FF FF 00 00  03 00 00 00 02 00 FF FF    ......  ......  ......  
0001AE80  00 00 04 00 00 00 02 00  FF FF 00 00 05 00 00 00  02 00 FF FF 00 00 06 00  00 00 02 00 FF FF 00 00  ......  ......  ......  ..
0001AEA0  07 00 00 00 02 00 FF FF  00 00 08 00 00 00 02 00  FF FF 00 00 09 00 00 00  00 00 00 00 67 0D 00 00  ....  ......  .........g..
0001AEC0  D1 FA 00 00 8E 2E 01 00  0C 00 0E 30 01 00 0C 00  17 30 01 00 0D 00 25 30  01 00 00 00 00 00 3B 01  ·..Ä...0..0..%0.....;
0001AEE0  00 00 65 05 00 00 FD 0B  00 00 67 0D 00 00 97 18  00 00 F6 22 00 00 B2 30  00 00 3B 39 00 00 79 3F  ..e..²..g..ù..÷"..0..;9..y?
0001AF00  00 00 EF 46 00 00 24 4D  00 00 BE 57 00 00 5A 5B  00 00 D1 63 00 00 57 6D  00 00 02 78 00 00 2A 82  ..F..$M..W..Z[..c..Wm..x..*é
0001AF20  00 00 8A 89 00 00 08 8F  00 00 1B 9A 00 00 97 A3  00 00 BE AC 00 00 07 B8  00 00 EF BE 00 00 FF CB  ..èë..Å..Ü..ùú..¼...... 
0001AF40  00 00 02 CC 00 00 89 D8  00 00 94 E1 00 00 96 E1  00 00 9E EB 00 00 BE F3  00 00 D1 FA 00 00 A7 FC  ....ë..öß..ûß..δ....·..º
0001AF60  00 00 BA 02 01 00 54 09  01 00 B4 10 01 00 D9 17  01 00 05 20 01 00 CB 21  01 00 54 27 01 00 8E 2E  ...T... .!.T'.Ä.
0001AF80  01 00 08 02 FF FF 00 00  01 00 02 00 00 02 FF FF  00 00 02 00 13 00 0A 02  FF FF 00 00 03 00 29 00  .  .....  ....  ...).
0001AFA0  00 02 FF FF 00 00 04 00  00 00 18 02 FF FF 00 00  01 00 02 00 10 02 FF FF  00 00 02 00 1A 00 08 02  .  .....  ....  ....
0001AFC0  FF FF 00 00 03 00 02 00  00 02 FF FF 00 00 04 00  0D 00 08 02 FF FF 00 00  05 00 2A 00 00 02 FF FF    .....  ....  ...*..  
0001AFE0  00 00 06 00 02 00 08 02  FF FF 00 00 07 00 63 00  00 02 FF FF 00 00 08 00  1D 00 08 02 FF FF 00 00  ....  ...c..  ....  ..
0001B000  09 00 2A 00 00 02 FF FF  00 00 0A 00 02 00 08 02  FF FF 00 00 0B 00 02 00  00 02 FF FF 00 00 0C 00  .*..  ....  .....  ...
0001B020  02 00 08 02 FF FF 00 00  0D 00 02 00 00 02 FF FF  00 00 0E 00 46 00 08 02  FF FF 00 00 0F 00 26 00  .  .....  ...F.  ...&.
0001B040  00 02 FF FF 00 00 10 00  31 00 08 02 FF FF 00 00  11 00 0A 00 00 02 FF FF  00 00 12 00 10 00 08 02  .  ...1.  .....  ....
0001B060  FF FF 00 00 13 00 02 00  00 02 FF FF 00 00 14 00  02 00 08 02 FF FF 00 00  15 00 02 00 00 02 FF FF    .....  ....  ..§...  
0001B080  00 00 16 00 2F 00 08 02  FF FF 00 00 17 00 17 00  00 02 FF FF 00 00 18 00  02 00 0A 00 FF FF 00 00  .../.  .....  .....  ..
0001B0A0  19 00 00 00 0A 02 FF FF  00 00 18 00 48 00 02 02  FF FF 00 00 19 00 0C 00  0A 02 FF FF 00 00 1A 00  ...  ...H.  ....  ...
0001B0C0  00 00 12 04 FF FF 00 00  01 00 EE 04 1A 04 FF FF  00 00 02 00 29 00 02 04  FF FF 00 00 03 00 29 00  ..  ...ε  ...).  ...).
0001B0E0  0A 04 FF FF 00 00 04 00  29 00 02 04 FF FF 00 00  05 00 29 00 0A 04 FF FF  00 00 06 00 29 00 02 04    ...).  ...).  ...).
0001B100  FF FF 00 00 07 00 24 00  0A 04 FF FF 00 00 08 00  30 00 02 04 FF FF 00 00  09 00 00 00 00 00 00 00    ...$.  ...0.  .........
0001B120  07 00 00 00 80 00 00 00  DF 00 00 00 04 01 00 00  28 01 00 00 2C 01 00 00  3B 01 00 00 4A 01 00 00  ...Ç........(..,..;..J..
0001B140  50 01 00 00 80 01 00 00  CE 3A 00 00 93 64 00 00  DF 8A 00 00 12 A3 00 00  F3 B2 00 00 CB D6 00 00  P..Ç..:..ôd..è..ú......
0001B160  F2 F2 00 00 83 FF 00 00  39 04 01 00 DC 08 01 00  23 0D 01 00 0F 12 01 00  B3 16 01 00 6D 1B 01 00  ..â ..9..#...m.
0001B180  B2 20 01 00 3F 25 01 00  04 29 01 00 8A 2C 01 00  FE 2F 01 00 FA 36 01 00  9C 00 9D 00 9E 00 9F 00   .?%.).è,./.·6.£.¥..ƒ.
0001B1A0  A0 00 A1 00 A2 00 A3 00  A4 00 A5 00 A6 00 A7 00  A8 00 A9 00 AA 00 AB 00  AC 00 AD 00 AE 00 AF 00  á.í.ó.ú.ñ.Ñ.ª.º.¿..¬.½.¼.¡.«.».
0001B1C0  80 01 00 00 55 06 00 00  E4 0E 00 00 C4 28 00 00  C8 3A 00 00 DE 46 00 00  82 4D 00 00 55 61 00 00  Ç..U..Σ..(..:..F..éM..Ua..
0001B1E0  21 73 00 00 1E 87 00 00  46 95 00 00 72 A6 00 00  6B BA 00 00 71 C9 00 00  58 DE 00 00 22 E1 00 00  !s..ç..Fò..rª..k..q..X.."ß..
0001B200  72 F1 00 00 B7 F9 00 00  D2 FA 00 00 61 FE 00 00  6B 01 01 00 77 04 01 00  DB 07 01 00 11 0B 01 00  r±....·..a..k.w...
0001B220  B7 0E 01 00 71 12 01 00  B7 16 01 00 A1 19 01 00  8C 1D 01 00 82 21 01 00  AA 23 01 00 17 27 01 00  .q..í.î.é!.¬#.'.
0001B240  E6 29 01 00 7F 2D 01 00  0E 30 01 00 B0 00 B1 00  B2 00 B3 00 B4 00 B5 00  B6 00 B7 00 B8 00 B9 00  µ).-.0...........
0001B260  BA 00 BB 00 BC 00 BD 00  BE 00 BF 00 C0 00 C1 00  C2 00 C3 00 C4 00 C5 00  C6 00 C7 00 C8 00 C9 00  ................
0001B280  CA 00 CB 00 CC 00 CD 00  CE 00 CF 00 D0 00 D1 00  95 00 0A 12 00 54 6D 73  20 52 6D 6E 00 09 16 02  ........ò..Tms Rmn.
0001B2A0  53 79 6D 62 6F 6C 00 07  22 00 48 65 6C 76 00 0F  42 00 5A 61 70 66 43 68  61 6E 63 65 72 79 00 09  Symbol.".Helv.B.ZapfChancery.
0001B2C0  42 FF 53 63 72 69 70 74  00 0A 31 00 43 6F 75 72  69 65 72 00 0A 12 00 54  6D 73 20 52 6D 6E 00 0B  B Script.1.Courier..Tms Rmn.
0001B2E0  12 00 50 61 6C 61 74 69  6E 6F 00 0F 22 00 4C 65  74 74 65 72 47 6F 74 68  69 63 00 0D 90 00 74 69  .Palatino.".LetterGothic.É.ti
0001B300  6D 65 73 72 6F 6D 61 6E  00 12 16 00 54 69 6D 65  73 20 4E 65 77 20 52 6F  6D 61 6E 00 08 26 00 41  mesroman..Times New Roman.&.A
0001B320  72 69 61 6C 00 7C 05 00  00 83 05 00 00 64 0D 00  00 88 0D 00 00 9F 0D 00  00 F9 0D 00 00 10 0E 00  rial.|..â..d..ê..ƒ.....
0001B340  00 1B 0E 00 00 32 0E 00  00 44 0E 00 00 5B 0E 00  00 10 21 00 00 27 21 00  00 5B 21 00 00 72 21 00  ...2..D..[..!..'!..[!..r!.
0001B360  00 DA FA 00 00 F4 FA 00  00 F6 FA 00 00 F8 FA 00  00 10 FB 00 00 2C FB 00  00 FE 26 01 00 15 27 01  .·..·..÷·..°·....,..&.§'
0001B380  00 DD 27 01 00 F4 27 01  00 18 28 01 00 2F 28 01  00 6B 2C 01 00 82 2C 01  00 A7 2C 01 00 BE 2C 01  .'.'.(./(.k,.é,.º,.,
0001B3A0  00 8E 2E 01 00 13 0D 14  FF 15 8E 13 39 15 00 13  39 15 00 13 39 15 00 13  39 15 00 13 39 15 00 13  .Ä.. §Ä9§.9§.9§.9§.9§.
0001B3C0  39 15 00 13 03 14 FF 15  04 13 02 14 FF 15 04 13  39 15 04 13 39 15 04 13  39 15 04 13 39 15 04 13  9§. § §9§9§9§9§
0001B3E0  39 15 04 D2 00 00 00 D7  00 00 00 DA 00 00 00 F8  00 00 00 FD 00 00 00 FF  00 00 00 2F 01 00 00 34  9§.........°...²... .../..4
0001B400  01 00 00 36 01 00 00 3E  01 00 00 43 01 00 00 45  01 00 00 50 01 00 00 13  21 14 FF 15 00 13 21 14  ..6..>..C..E..P..! §.!
0001B420  FF 15 04 13 21 14 FF 15  00 13 21 14 FF 15 00 2D  00 04 68 65 72 65 0C 49  6E 74 65 67 65 72 54 61   §! §.! §.-.hereIntegerTa
0001B440  62 6C 65 09 74 5F 49 6E  74 50 61 69 72 02 6D 74  02 6D 33 08 74 5F 46 50  50 61 69 72 80 A0 00 00  blet_IntPairmtm3t_FPPairÇá..
0001B460  05 20 01 00 20 20 01 00  CA 21 01 00 CA 21 01 00  76 27 01 00 03 2D 01 00  00 00 02 00 01 00 03 00   .  .!.!.v'.-......
0001B480  04 00 05 00 80 A0 00 00  20 20 01 00 2E 20 01 00  CA 21 01 00 EF 21 01 00  76 27 01 00 03 2D 01 00  ..Çá..  .. .!.!.v'.-.
0001B4A0  00 00 48 50 20 4C 61 73  65 72 4A 65 74 20 34 53  69 2F 34 53 69 20 4D 58  00 4C 50 54 33 3A 00 48  ..HP LaserJet 4Si/4Si MX.LPT3:.H
0001B4C0  50 50 43 4C 35 45 00 48  50 20 4C 61 73 65 72 4A  65 74 20 34 53 69 2F 34  53 69 20 4D 58 00 00 00  PPCL5E.HP LaserJet 4Si/4Si MX...
0001B4E0  00 00 00 00 00 00 00 0A  03 05 00 44 00 AE 00 03  17 00 00 01 00 01 00 00  00 00 00 00 00 01 00 07  ........D.«............
0001B500  00 FC FF 00 00 01 00 00  00 00 00 1F 00 00 00 88  EF D7 15 01 00 01 00 01  00 00 00 00 00 00 00 00  . ..........ê§..........
0001B520  00 00 00 00 00 00 00 00  00 01 00 01 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ..............................
0001B540  00 00 00 00 00 00 00 00  00 00 00 01 00 2E 00 73  05 00 00 02 00 00 00 00  FF 00 02 00 00 00 01 00  ..............s...... .....
0001B560  00 00 01 58 02 00 00 00  00 00 00 03 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ..X..........................
0001B580  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................................
0001B5A0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 1F  00 38 07 00 00 B4 C8 3B  ........................8..;
0001B5C0  07 30 1C 39 80 3E 07 03  80 01 00 65 05 00 00 65  05 00 00 0B 00 00 80 00  80 65 05 00 00 00 00 00  09Ç>Ç.e..e....Ç.Çe.....
0001B5E0  00 31 01 00 00 22 00 02  00 03 03 08 00 00 00 A0  05 00 00 68 01 00 00 00  00 8B C3 E1 25 45 0C E3  .1..".....á..h....ïß%Eπ
0001B600  45 CB CB E2 A5 08 00 28  02 00 00 8B 2E 00 00 AA  20 01 00 26 00 00 00 00  00 39 00 00 00 11 61 70  EΓÑ.(..ï...¬ .&.....9...ap
0001B620  70 6E 6F 74 65 73 20 33  32 62 69 74 41 6F 70 00  00 00 0B 42 65 76 20 5A  61 68 61 72 69 65 0A 53  pnotes 32bitAop...Bev ZaharieS
0001B640  75 73 61 6E 20 48 75 6E  74 00 00 00 00 00 00 00  00 00                                             usan Hunt.........
[ RETURN TO DIRECTORY ]