============================================================================================================================================== 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 ☺.n◘n¼☺.◙.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-500♪◙♪◙Application♪◙Note♪◙♪◙♪ 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 1994♪◙♪◙♪◙♪◙♪◙♪◙The 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 Corporation♪◙○○Literatur 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 Sales♪◙○○P.O. Box 7641♪◙○○Mt. 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-7641♪◙♪◙○○or 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 Contents♪◙♪◙♪◙‼TOC 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 \o¶1. Introduction ○1♪◙♪◙2. 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Ö Processors○1♪◙2.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 Processor○1♪◙2.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 Prefetcher○1♪◙2.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 Decoder○1♪◙2.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 Core○1♪◙2.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 processor○1♪◙2.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 Pipeline○2♪◙2.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 e○2♪◙2.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 Unit○2♪◙2.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 cessor○2♪◙2.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 nes○3♪◙2.3.2. Caches○3♪◙2.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 Prefetcher○3♪◙2.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 Buffer○3♪◙2.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 ○3♪◙3. Integer Examples○4♪◙3.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 ssor○5♪◙3.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 Processor○6♪◙3.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 Processor○6♪◙3 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 cessor○7♪◙3.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 Processor○7♪◙3.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 Processor○7♪ 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 Strategy○9♪ 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 onsideration○10♪◙5.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 Register○10♪◙ 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 Usage○10♪◙5.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 dwidth○11♪◙5.4. Alignment○12♪◙5 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. Code○12♪◙5.4.2. Data○12♪ 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 Data○12♪◙5.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 Data○12♪◙5.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 Data○12♪◙5.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 12♪◙5.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 heduling○13♪◙5.6.1. Pairing○13♪ 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 lity○13♪◙○5.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)○13♪◙○5.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 ......14♪◙○5.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 ○14♪◙○5.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 gisters○14♪◙5.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 s○15♪◙5.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 Execution○16♪◙5.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 Selection○16♪◙♪◙♂♀6. 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 s○20♪◙6.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 Point○20♪◙6.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 Example○20♪◙6.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 Regulations○22♪◙6.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 Operands○23♪◙6.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 Stalls○23♪◙7. 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 mary○26♪◙♪◙Appendix 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. Introduction♪◙♪◙The 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 Intel386‼SYMBOL 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 the♪◙Intel386‼SYMBOL 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"§, Intel486‼SYMB 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 tium‼SYMBOL 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 processor♪◙micro 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 members♪◙and 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 Processors♪◙♪◙2.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 Processor♪◙♪◙The 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 full♪◙32-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 refetcher♪◙♪◙The 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 Decoder♪◙♪◙The 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 ore♪◙♪◙The 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 Processor♪◙♪◙The 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 Pipeline♪◙♪◙The 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 Cache♪◙♪◙The 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 Unit♪◙♪◙The 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 Intel486‼SYMBOL 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 Intel386‼SYMB 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 Processor♪◙♪◙T 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 Pipelines♪◙♪◙The 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 more♪◙detail 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. Caches♪◙♪◙The 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 Prefetcher♪◙♪◙The 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 Buffer♪◙♪◙The 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 xamples♪◙♪◙With 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 2○Sequence 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, eax○xor eax, eax○mov 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 0♪◙♪◙TopOfLoop: ○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, eax○○inc 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, 2○○inc 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 eax○○inc 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 eax○○cmp eax, 10○○inc 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, 2○○jl TopOfLoop○○mov 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, 10○○jnz 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 TopOfLoop♪◙♪◙Code 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 Processor♪◙♪◙The 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) with♪◙memory 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 ○; 1♪◙○shl 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 )○; 3♪◙○inc 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)○; 7♪◙○mov edx, eax○; 8♪◙○s 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)○; 10♪◙○inc 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)○; 14♪◙○inc 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○; 15♪◙○cmp eax, 10○; 16♪◙○j 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 0♪◙○mov 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 ration♪◙♪◙Total: 20 cycles♪◙♪◙Cy 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 r♪◙♪◙U 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○○; 1♪◙shl 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 ○○; 2♪◙inc 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 cycle♪◙shl edx, 2○○; 7♪◙inc 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 cycle♪◙cmp 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○; 12♪◙mov 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 iteration♪◙♪◙Tot 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 cycles♪◙♪◙Note 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 Processor♪◙♪◙inc 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)○; 4♪◙inc 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)○; 8♪◙inc eax○; 9♪◙cm 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○; 10♪◙jl 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♪◙○; 14♪◙inc 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 cycles♪◙♪◙On 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 base♪◙registers 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 Processor♪◙♪◙U 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)○; 5♪◙in 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○○; 6♪◙cmp eax, 10○jl 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○; 7♪◙inc 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 cycles♪◙♪◙The 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 ssor♪◙♪◙○mov 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]○; 3♪◙○inc 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○; 4♪◙○inc ecx○; 5♪◙○mov 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○; 6♪◙○mov [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 ○; 7♪◙○add 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 8♪◙○jnz 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♪◙ ○○; 12♪◙○mov 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 cycles♪◙♪◙The 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 Processor♪◙♪◙U 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]○; 1♪◙inc edx○inc 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○; 2♪◙mov [eax+40+a], edx○mov 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○; 3♪◙add 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 4○jnz TopOfLoop○; 4♪◙mov 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 iteration♪◙♪◙Total: 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 jump♪◙♪◙Reordering 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 Strategy♪◙♪◙Eve 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 on♪◙♪◙5.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 Register♪◙♪◙The 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 base♪◙mov 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 penalty♪◙♪◙It 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 ge♪◙♪◙1. 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 penalty♪◙♪◙Since 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 stall♪◙push ebx♪◙♪◙♪◙mov 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 l♪◙pop ebp♪◙♪◙Push 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 stall♪◙mov 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 an♪◙index 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 splacement♪◙mov 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 displacement♪◙♪◙4. 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 ○; 1♪◙mov [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 processor♪◙♪◙Example (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♪◙○; 2♪◙mov [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○; 3♪◙♪◙5.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 gnment♪◙♪◙5.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. Data♪◙♪◙A 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 codes♪◙♪◙On 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 heduling♪◙♪◙Instruction 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 stalls♪◙and 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 ty♪◙♪◙5.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 cl♪◙♪◙2. 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, div♪◙♪◙3. 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 , loopnz♪◙♪◙4. 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, fst♪◙♪◙5. 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 far♪◙♪◙5.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, test♪◙♪◙3. 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 V♪◙Pipe. 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, sbb♪◙♪◙2. 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 fld♪◙♪◙5.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. fxch♪◙♪◙5.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 Registers♪◙♪◙The 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 , eax♪◙♪◙♀2. 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 treated♪◙as 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, 0♪◙♪◙do 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/imm♪◙♪◙2. 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; call♪◙♪◙3. 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 reg♪◙♪◙Condition 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 ; jcc♪◙♪◙2. 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 ; jne♪◙♪◙Note 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 Execution♪◙♪◙There 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, meml○add 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-cycle♪◙♪◙The 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 ○; 5♪◙♪◙The 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 have♪◙completed.♪ 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 Selection♪◙♪◙The 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 ions♪◙♪◙Avoid 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 mple♪◙instructions 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 Short♪◙♪◙The 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, eax♪◙mov 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, mem♪◙♪◙If 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 mem♪◙♪◙The 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, reg♪◙push 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 Opcodes♪◙♪◙Use 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 nds♪◙♪◙With 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 pipe○○♪◙♪◙○○xor 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 ○; 1♪◙○○movw 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 ○movw○bx, [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 6♪◙♪◙The 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 + 3♪◙movsw ○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○; 5♪◙cmp ○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 mpares♪◙♪◙Use 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 for♪◙equality 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 ther♪◙forms 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 Calculations♪◙♪◙Pull 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 Register♪◙♪◙The 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 Divide♪◙♪◙Typically, 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 ces♪◙♪◙Be 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 Zero♪◙♪◙Often 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 Method♪◙♪◙In 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 Method♪◙♪◙This 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 previous♪◙result 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 pairing♪◙♪◙In 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)-1♪◙♪◙save 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_result♪◙♪◙After 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 Optimizations♪◙♪◙6.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 zations♪◙♪◙The 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 xample♪◙♪◙FORTRAN 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,n♪◙10 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) * z♪◙♪◙○re 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 turn♪◙○end♪◙♪◙♪◙Assembly 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 branch♪◙♪◙Total :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 iteration♪◙♪◙On 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 Regulations♪◙♪◙The 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 Stalls♪◙♪◙There 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 Clocks♪◙TopOfLoop: 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 I○○3♪◙ 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 fadds○14 - 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, 4○○1○○1♪◙ 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 TopOfLoop○○0 - 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 dd○3♪◙ ○ ------ 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 ------♪◙○○9○○○24♪◙♪ 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 Clocks♪◙TopOfLoop:♪◙ 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,AGI○10 - Wait for fadds♪◙Loop 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]○1○○3♪◙ 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 ○1○○3♪◙ add eax, 4○○1○○1♪◙ 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 TopOfLoop○○0 - Pairs with add○3 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 ♪◙○○-------○-------♪◙○○7○○20♪◙♪◙ 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 Stores♪◙♪◙A 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 here♪◙○fst 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 clocks♪◙♪◙○fadd 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 here♪◙○fst 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 clocks♪◙♪◙In 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 : 1♪◙○fld 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 ; 2♪◙○fxch 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 ; 2♪◙○fst 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 ; l♪◙○fadd 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,4♪◙♪◙3. 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 rlap♪◙♪◙fiadd [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) ; 2♪◙♪◙Using 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,4♪◙♪◙This 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 last♪◙floating-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 pipe○○♪◙♪◙○fadd 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 Summary♪◙♪◙The 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 Processor♪•Intel 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 Processor♪•PentiumTM 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 cessor♪•♪•Cache♪•None♪•8K 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 ed♪•8K Code, 8K Data♪•♪•Prefetch 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 access♪•2x6b 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 e♪•4x32b 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 •Decoder♪•3 deep decoded FIFO♪•p 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 pipeline♪•part 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 pipeline♪•♪•Core♪•some 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 overlap♪•5 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 r♪•♪•Math♪•Co-processor♪•On-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 Characteristics♪•Optimiz 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 ations♪•Intel386 Processor♪•Inte 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 Processor♪•Pentium 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 r♪•♪•Cache♪•Interleave 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-mem♪•don't care♪•Interleave 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 consecutive♪•don'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 Prefetcher♪•Alignment♪•0-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-16♪•don't care♪•♪•Pipeline 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 core♪•Base 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 care♪•use base♪•don'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 e♪•♪•♪•Avoid AGI♪•don't care♪•ne 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 instr♪•next 3 instr♪•♪•♪•Inst 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 selection♪•1 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 instr♪•short instr♪•♪•Su 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 perscalar♪•Pairing♪•don'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 care♪•pair♪•♪•Pipelined 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 FXCH♪•more scheduling♪•18 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 penalty♪•4 clk penalty♪•sch 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 edule♪•♪•♪◙♪◙Recommendations 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 nothing♪◙♪◙2. 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 s♪◙♪◙5. 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 sequence♪◙♪◙6. 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: pair♪◙♪◙7. 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 FXCH♪◙♀Appendix ‼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 ChapNum¶A§♂‼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 \* charformat¶Instruction 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 pipe♪◙PU○ 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 e♪◙UV○ù 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 FXCH♪◙NP○ù 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 ng♪◙INSTRUCTION○FORMAT♪•Pairing♪ 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 tion♪•NP♪•♪•AAD û 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 Division♪•NP♪•♪•AAM û 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 Multiply♪•N 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 P♪•♪•AAS û 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 Subtraction♪•NP♪•♪•ADC û 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 Carry♪•PU♪•♪•ADD û Add♪•UV♪•♪ 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 AND♪•UV♪•♪•ARPL û 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 Selector♪•N 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 P♪•♪•BOUND û 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 Bounds♪•NP♪•♪•BSF û 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 rward♪•NP♪•♪•BSR û 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 rse♪•NP♪•♪•BSWAP û Byte Swap♪•NP 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 Test♪•NP♪•♪•BTC û 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 Complement♪•NP♪•♪•BT 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 Reset♪•NP♪•♪•BT 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 Set♪•NP♪•♪•CALL 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)♪•♪•♪•ááádirect○1110 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 displacement♪•PV♪•♪•ááá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 indirect○1111 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 reg♪•NP♪•♪•ááámemory indirect○11 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/m♪•NP♪•♪•CAL 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)♪•NP♪•♪•CBW û 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 Doubleword♪•NP♪•♪•CLC û 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 Flag♪•NP♪•♪•CLD û 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 Flag♪•NP♪•♪•CLI û 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 Flag♪•NP♪•♪•CLTS û 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 CR0♪•NP♪• 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 Flag♪•N 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 P♪•♪•CMP û 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 •UV♪•♪•CMPS/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 Operands♪•NP♪•♪•C 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 NP♪•♪•CMPXCHG8B û 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 ♪•NP♪•♪•CWD û 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 Qword♪•NP♪•♪•DAA û 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 NP♪•♪•DAS û 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 Subtraction♪•NP♪•♪•DEC û 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 1♪•UV♪•♪•DIV û 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 Divide♪•NP♪•♪•ENTER û 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 s♪•NP♪•♪•HLT û Halt♪•♪•♪•♀Intege 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 )♪◙INSTRUCTION○FORMAT♪•Pairing♪• 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 Divide♪•NP♪•♪•IM 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 Multiply♪•NP♪•♪•INC 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 1♪•UV♪•♪•INT 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 ♪•NP♪•♪•INT û 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 3♪•NP♪•♪•IN 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 Overflow♪•NP 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 Cache♪•NP♪ 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 ♪•NP♪•♪•IRET/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 eturn♪•NP♪•♪•Jcc û 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 Met♪•PV♪•♪•JCXZ/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 Zero♪•NP♪•♪•JMP û 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)♪•♪•♪•áááshort○1110 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 displacement♪•PV♪•♪•ááá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 ect○1110 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 t♪•PV♪•♪•áááregister indirect○11 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 reg♪•NP♪•♪•ááá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 indirect○1111 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/m♪•NP♪•♪•JMP û 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 ter♪•NP♪•♪•LAR û 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 Byte♪•NP♪•♪•LDS û 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 DS♪•NP♪•♪•LEA û 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 Address♪•UV♪•♪•LEAVE û 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 Exit♪•NP♪•♪•LES 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 ♪•NP♪•♪•LF 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 ♪•NP♪•♪•L 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 Register♪•NP♪•♪•LGS û 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 ♪•NP♪•♪•LIDT û 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 ter♪•NP♪•♪•LLDT û 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 Register♪•NP♪•♪•LM 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 Word♪•N 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 P♪•♪•LOCK û 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 Prefix♪•♪•♪•LODS/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 Operand♪•NP♪•♪• 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 ♪•NP♪•♪•LOOPZ/ 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 ual♪•NP♪•♪•LOOPNZ/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/Equal♪•NP♪• 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 Limit♪•NP♪• 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 SS○0000 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 NP♪•♪•LTR û 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 NP♪•♪•MOV û Move Data♪•UV♪•♪•MOV 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 s♪•NP♪•♪•MOV û 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 Registers♪•NP♪•♪•♀Integer 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 TRUCTION○FORMAT♪•Pairing♪•♪•MOV 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 ♪•NP♪•♪•MOVS/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 ♪•NP♪•♪•MOVSX û 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 xtend♪•NP♪•♪•MOVZX û 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-Extend♪•NP♪•♪•MUL û 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 ♪•NP♪•♪•NEG û 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 egation♪•NP♪•♪•NOP û 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 n○1001 0000♪•UV♪•♪•NOT û 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 Negation♪•NP♪•♪•OR û 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 OR♪•UV♪•♪•POP û 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 áááreg○1000 1111 : 11 000 reg♪•U 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♪•♪•ááááááor○0101 1 reg♪•UV♪•♪• 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 ááámemory○1000 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 m♪•NP♪•♪•POP û 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 Stack♪•NP♪•♪•POPA 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 rs♪•NP♪•♪•POPF/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 NP♪•♪•PUSH û 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♪•♪•♪•áááreg○1111 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 reg♪•UV♪•♪•ááááááor○0101 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 reg♪•UV♪•♪•ááámemory○1111 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/m♪•NP♪•♪•ááá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 ate○0110 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 UV♪•♪•PUSH û 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 Stack♪•NP♪•♪•PUSHA/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 rs♪•NP♪•♪•PUSHF/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 Stack♪•NP♪ 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 1○1101 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 reg♪•PU♪•♪•ááámemory by 1○11 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/m♪•PU♪•♪•ááá 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 CL○1101 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 CL○1101 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/m♪•NP♪•♪•ááá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 count○1100 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 data♪•PU♪•♪•ááá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 count○1100 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 data♪•PU♪ 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 1○1101 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 reg♪•PU♪•♪•ááámemory by 1○1 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/m♪•PU♪•♪•áá 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 CL○1101 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 g♪•NP♪•♪•ááámemory by CL○1101 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/m♪•NP♪•♪•ááá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 count○1100 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 data♪•PU♪•♪•ááá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 count○1100 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 data♪•PU 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 Register♪•NP♪•♪•REP 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 String♪•NP♪•♪•♀Integer 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 TRUCTION○FORMAT♪•Pairing♪•♪•REP 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 String♪•NP♪•♪•REP 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 String♪•NP♪•♪•REPE 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)♪•NP♪•♪•REPE 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)♪•NP♪•♪•REPNE 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)♪•NP♪•♪•RET û 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)♪•NP♪•♪•ROL û 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 reg♪•PU♪•♪•áá 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 1○1101 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/m♪•PU♪•♪•áááreg by CL○1101 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 reg♪•NP♪•♪•ááá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 CL○1101 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 ta♪•PU♪•♪•ááá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 count○1100 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 data♪•PU♪•♪•ROR û 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 1○1101 000w : 11 001 reg♪•P 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 1○1101 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/m♪•PU♪•♪•ááá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 reg♪•NP♪•♪•áá 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 CL○1101 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/m♪•NP♪•♪•ááá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 count○1100 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 data♪•PU♪•♪•ááá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 count○1100 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 data♪•PU♪•♪•RSM û 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 de♪•NP♪•♪•SAHF û 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 lags♪•NP♪•♪•SAL û 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 Left○same 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 1○1101 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 reg♪•PU♪•♪•ááá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/m♪•PU♪•♪•á 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 CL○1101 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 eg♪•NP♪•♪•ááámemory by CL○1101 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/m♪•NP♪•♪•ááá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 count○1100 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 data♪•PU♪•♪•ááá 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 count○1100 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 data♪•P 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 U♪•♪•SBB û 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 Borrow♪•PU♪•♪•SCAS/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 String♪•NP♪•♪•SE 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 Condition♪•NP♪ 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 Register♪•NP♪•♪•♀Integer 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 ♪◙INSTRUCTION○FORMAT♪•Pairing♪•♪ 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 1○1101 000w : 11 100 reg♪•PU♪•♪ 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 1○1101 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/m♪•PU♪•♪•áááreg by CL○1101 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 reg♪•NP♪•♪•ááá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 CL○1101 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 m♪•NP♪•♪•ááá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 nt○1100 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 data♪•PU♪•♪•ááá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 count○1100 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 data♪•PU♪•♪•SHLD û 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 count○0000 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 : imm8♪•NP♪•♪•ááá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 count○0000 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 : imm8♪•NP♪•♪•áá 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 CL○0000 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 reg1♪•NP♪•♪•ááá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 CL○0000 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/m♪•NP♪•♪•SHR û 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 1○1101 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 reg♪•PU♪•♪•ááá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 1○1101 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 CL○1101 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 reg♪•NP♪•♪•ááá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/m♪•NP♪•♪• 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 count○1100 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 data♪•PU 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 data♪•PU♪•♪•SHRD û 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 count○0000 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 unt○0000 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 : imm8♪•NP♪•♪•ááá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 CL○0000 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 reg1♪•NP♪•♪•ááá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 CL○0000 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/m♪•NP♪•♪•SIDT û 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 •NP♪•♪•SLDT û 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 Register♪•NP♪•♪•SMSW 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 Word♪•NP♪ 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 Flag♪•NP♪•♪•S 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 Flag♪•NP♪•♪•S 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 Flag♪•♪•♪•STO 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 Data♪•NP♪•♪•STR û 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 Register♪•NP♪•♪•SUB û 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 btraction♪•UV♪•♪•TEST û 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 reg2○10 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 reg2♪•UV♪•♪•áá 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 register○1000 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/m♪•UV♪•♪•ááá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 register○1111 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 data♪•NP♪•♪•ááá 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 accumulator○1010 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 data♪•UV♪•♪•ááá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 memory○1111 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 data♪•NP 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)♪◙INSTRUCTION○FORMAT 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 ♪•Pairing♪•♪•VERR û 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 ♪•NP♪•♪•VERW û 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 Writing♪•NP 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 û Wait○1001 1011♪•NP♪•♪ 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 Cache♪•NP♪•♪•WRMSR û 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 NP♪•♪•XADD û Exchange and Add♪•N 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 P♪•♪•XCHG û 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 Register♪•NP♪•♪•XLAT/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 ♪•NP♪•♪•XOR û 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 OR♪•UV♪•♪•♀Floating-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 Pairing♪◙INSTRUCTION○FORMA 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 T♪•Pairing♪•♪•F2XM1 û 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) û 1♪•NP♪•♪•FABS û 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 Value♪•FX♪•♪•FADD û Add♪•FX♪•♪•F 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 Pop♪•FX♪•♪•FBLD û 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 Decimal♪•NP♪• 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 Pop♪•NP♪•♪•FCHS û 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 Sign♪•FX♪•♪•FCLEX û 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 ptions♪•NP♪•♪•FCOM û 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 l♪•FX♪•♪•FCOMP û 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 Pop♪•FX♪•♪•FCOMPP û 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 Twice♪•♪•♪•FCOS û 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)♪•NP♪•♪•FDECSTP û 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 Pointer♪•NP♪•♪ 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 û Divide♪•FX♪•♪•FDIVP û 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 Pop♪•FX♪•♪•FDIVR û 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 Divide♪•FX♪•♪•FDIVRP û 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 Pop♪•FX♪•♪•FFREE û 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) Register♪•NP♪•♪•FIAD 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 Integer♪•NP♪•♪•FICOM û 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 Integer♪•NP♪•♪•FICOMP û 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 Pop♪•NP♪•♪•FI 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 DIV♪•NP♪•♪•FIDIVR♪•NP♪•♪•FILD û 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 Integer♪•NP♪•♪•FIMUL♪•NP♪•♪ 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 er♪•NP♪•♪•FINIT û 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 Unit♪•NP♪•♪•FIST û 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 Integer♪•NP♪•♪•FISTP û 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 Pop♪•NP♪•♪•FISUB♪• 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 NP♪•♪•FISUBR♪•NP♪•♪•FLD û 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 memory○11011 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/m♪•FX♪•♪•ááá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 memory○11011 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 m♪•FX♪•♪•ááá80-bit memory○11011 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/m♪•NP♪•♪•ááá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 P♪•♪•FLDCW û 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 NP♪•♪•FLDENV û 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 ent♪•NP♪•♪•FLDL2E û 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)♪•NP♪•♪•FLDL2T û 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)♪•NP♪•♪•♀Floating-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)♪◙INSTRUCTION○FORMAT♪•Pairing♪ 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)♪•NP♪•♪•FLDLN2 û Load log‼SY 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)♪•NP♪•♪•FLDPI û 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 NP♪•♪•FMUL û Multiply♪•FX♪•♪•FMU 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 û Multiply♪•FX♪•♪•FNOP û 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 peration♪•NP♪•♪•FPATAN û 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 Arctangent♪•NP♪•♪•FPREM û 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 Remainder♪•NP♪•♪•FPREM1 û 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)♪•NP♪•♪•FPT 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 Tangent♪•NP♪•♪•FRND 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 Integer♪•♪•♪•FRST 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 State♪•NP♪•♪•FS 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 State♪•NP♪•♪•FSC 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 û Scale♪•NP♪•♪•FSIN û 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 NP♪•♪•FSINCOS û 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 •NP♪•♪•FSQRT û Square Root♪•NP♪• 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 Real♪•NP♪•♪•FSTCW 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 Word♪•NP♪•♪•FSTE 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 Environment♪•NP♪• 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 Pop♪•NP♪ 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 AX♪•NP♪•♪•FSTSW û 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 Memory♪•NP♪•♪•FSUB û 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 Subtract♪•FX♪•♪•FSUBP û 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 Pop♪•FX♪•♪•FSUBR û 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 Subtract♪•FX♪•♪•FSUBRP û 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 Pop♪•FX♪•♪•FTST û 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 Test♪•FX♪•♪•FUCOM û 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)♪•FX♪•♪•FUCOMP û 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 Pop♪•FX♪•♪•FUC 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 Twice♪•FX♪•♪•FXAM û Examine♪•N 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 P♪•♪•FXCH û 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 Significand♪•NP♪•♪•FYL 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))♪•NP♪•♪•FYL2XP1 û 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)♪•NP♪•♪•FWAIT û 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 ‼PAGE¶23§♪◙♪◙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 Confidential○○Page ‼PAGE¶3§ 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-‼PAGE¶9§♪◙♪◙○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 AGE¶1§♪◙♪◙♪◙♪◙◘Ç◘ìá♣Äá♣♪ê☺.}☺Ç*ì 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 á♣Äá♣↨u♦v☺ê☺.}☺Ç.ìá♣Äá♣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 ☼♂.♥h☺8♦α►....♦..☺É$♪☺..♦..♥É$≡. 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§P↓X ╬"..♥☻.♥..►..☺É$╙.☼↨.•$○ 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 ╪○\♪╠§P↓X ╬"...☻.♥..►..☺É$╙.♣♥☼¶ 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 ☼◄.♣╪○\♪P↓X ╬"...♥..◙..☺É$╙.☼♂.♥ 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 .Ü?.♣ú ≤♠C♫v¶ï→á ..○.○.○.○...○.○ 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.♦ö %♣I♫m↨æ 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 ≤♠C♫v¶ï→á ....○...○...○.....○.. 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.Ü?.♣ú ≤♠C♫v¶ï→á ... 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 ?.♣ú ≤♠C♫v¶ï→á ..○.○...○...○...○ 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.Ü?.♣ú ≤♠C♫v¶ï→á 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 ?.♣ú ≤♠C♫v¶ï→á ..○.○.○.○...○.○.○ 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 ♣ú ≤♠C♫v¶ï→á ..○.○.○.....○.○.○.○ 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 ..................◙≤......↔►←i☺1 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 ......♪NormalOutdent♦list•Comman 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 d◙CmdSection•Program◘CmdBlurb○Ta 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 bleText○TableHead•Caption♠Figure 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 •FigCapt•TabCapt♪CopyrightPage•C 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 odeDef♫Normal Outdent○Exception♣ 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 Where◘Equation◙FigureText☼Headin 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 Chapter♣List2♀Normal Close•Div 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 ider♂NormalClose♣Close♦text♀CmdH 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 1◙PseudoCode◙TableNotes◙C 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 mdBoxText◙CmdBoxHead♀CmdHeading 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 2◘toc part♦Math♠Indent☻TM☻RT☻LD☻ 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 T1☻BT☻EP☻BP☻FP☻FT♂Clock 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 •◘......↑○......♣☺•☺►h☺◄h☺☼♣.☺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 §♦‼!¶ §.‼!¶ §.-.♦here♀IntegerTa 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 ble○t_IntPair☻mt☻m3◘t_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 •0∟9Ç>•♥Ç☺.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 Zaharie◙S 0001B640 75 73 61 6E 20 48 75 6E 74 00 00 00 00 00 00 00 00 00 usan Hunt.........