AMD64 Architecture Programmer's Manual, Volume 3, General

Total Page:16

File Type:pdf, Size:1020Kb

AMD64 Architecture Programmer's Manual, Volume 3, General AMD64 Technology AMD64 Architecture Programmer’s Manual Volume 3: General-Purpose and System Instructions Publication No. Revision Date 24594 3.10 February 2005 Advanced Micro Devices © 2002, 2003, 2004, 2005 Advanced Micro Devices, Inc. All rights reserved. The contents of this document are provided in connection with Advanced Micro Devices, Inc. (“AMD”) products. AMD makes no representations or warranties with respect to the accuracy or completeness of the contents of this publication and reserves the right to make changes to specifications and product descriptions at any time without notice. No license, whether express, implied, arising by estoppel or otherwise, to any intellectual property rights is granted by this publication. Except as set forth in AMD’s Standard Terms and Conditions of Sale, AMD assumes no liability whatsoever, and disclaims any express or implied warranty, relating to its products including, but not limited to, the implied warranty of merchantability, fitness for a particular pur- pose, or infringement of any intellectual property right. AMD’s products are not designed, intended, authorized or warranted for use as components in systems intended for surgical implant into the body, or in other applications intended to support or sustain life, or in any other application in which the failure of AMD’s product could create a situation where personal injury, death, or severe property or environmental damage may occur. AMD reserves the right to discontinue or make changes to its products at any time without notice. Trademarks AMD, the AMD arrow logo, and combinations thereof, and 3DNow! are trademarks, and AMD-K6 and AMD Athlon are registered trade- marks of Advanced Micro Devices, Inc. MMX is a trademark and Pentium is a registered trademark of Intel Corporation. Other product names used in this publication are for identification purposes only and may be trademarks of their respective companies. 24594 Rev. 3.10 February 2005 AMD64 Technology Contents Figures ix Tables xi Revision History xiii Preface xv About This Book . xv Audience . xv Contact Information. xv Organization . xv Definitions. xvi Related Documents . xxvii 1 Instruction Formats 1 1.1 Instruction Byte Order . 1 1.2 Instruction Prefixes. 3 Summary of Legacy Prefixes . 3 Operand-Size Override Prefix . 5 Address-Size Override Prefix . 6 Segment-Override Prefixes . 9 Lock Prefix . 10 Repeat Prefixes . 10 REX Prefixes . 14 1.3 Opcode . 20 1.4 ModRM and SIB Bytes . 20 1.5 Displacement Bytes. 22 1.6 Immediate Bytes . 23 1.7 RIP-Relative Addressing . 23 Encoding. 24 REX Prefix and RIP-Relative Addressing. 24 Address-Size Prefix and RIP-Relative Addressing. 25 2 Instruction Overview 27 2.1 Instruction Subsets . 27 2.2 Reference-Page Format . 28 2.3 Summary of Registers and Data Types . 30 General-Purpose Instructions. 30 System Instructions. 33 128-Bit Media Instructions . 35 64-Bit Media Instructions . 38 x87 Floating-Point Instructions . 40 2.4 Summary of Exceptions . 41 2.5 Notation . 43 Contents iii AMD64 Technology 24594 Rev. 3.10 February 2005 Mnemonic Syntax . 43 Opcode Syntax . 46 Pseudocode Definitions . 49 3 General-Purpose Instruction Reference 59 AAA . 61 AAD . 62 AAM . 63 AAS . 64 ADC. 65 ADD . 67 AND . 69 BOUND . 72 BSF . 74 BSR . 76 BSWAP . 78 BT . 79 BTC . 81 BTR . 83 BTS . 85 CALL (Near). 87 CALL (Far) . 89 CBW . 96 CWDE . 96 CDQE . 96 CWD . 97 CDQ. 97 CQO. 97 CLC . 98 CLD . 99 CLFLUSH. 100 CMC . 102 CMOVcc . 103 CMP . 107 CMPS . 110 CMPSB . 110 CMPSW. 110 CMPSD . 110 CMPSQ . 110 CMPXCHG . 113 CMPXCHG8B. 115 CMPXCHG16B. 115 CPUID. 117 DAA. 136 DAS . 137 DEC. 138 DIV . 140 ENTER . ..
Recommended publications
  • DISSERTATION Concepts for Scientific Computing
    DISSERTATION Concepts for Scientific Computing ausgefuhrt¨ zum Zwecke der Erlangung des akademischen Grades eines Doktors der technischen Wissenschaften eingereicht an der Technischen Universitat¨ Wien Fakultat¨ fur¨ Elektrotechnik und Informationstechnik von RENE´ HEINZL Rosensteingasse 7-9/2 A-1160 Wien, Osterreich¨ Matr. Nr. 9826031 geboren am 6. September 1977, Wien Wien, im Juli 2007 Abstract Scientific computing has traditionally been concerned with numerical issues such as the convergence of discrete approximations to partial differential equations, the stability of integration methods for time- dependent systems, and the computational efficiency of software implementations of these numerical methods. While computer performance is steadily increasing the additional complexity of these simulation models easily outgrows this gain in computational power. It is therefore of utmost importance to employ the latest techniques of software development to obtain high performance and thereby ensure adequate simulation times even for complex problems. As a consequence the development of high performance simulation software is quite challenging. Originating in the field of technology computer aided design as an important and complex area of sci- entific computing, this work is motivated by the fact, that different concepts were developed during the last decades for the field of scientific computing. The great diversity of physical phenomena present in semiconductor devices themselves and in the processes involved in their manufacture make the field of TCAD extremely challenging. Each of the phenomena can be described by differential equations of vary- ing complexity. The development of several different discretisation schemes has been necessary in order to best model the underlying physics and to accommodate the mathematical peculiarities of each of these equations while transferring them to the discrete world of digital computing.
    [Show full text]
  • HAIL: an Algorithm for the Hardware Accelerated Identification of Languages, Master's Thesis, May 2006
    Washington University in St. Louis Washington University Open Scholarship All Computer Science and Engineering Research Computer Science and Engineering Report Number: WUCSE-2006-36 2006-01-01 HAIL: An Algorithm for the Hardware Accelerated Identification of Languages, Master's Thesis, May 2006 Charles M. Kastner This thesis examines in detail the Hardware-Accelerated Identification of Languages (HAIL) project. The goal of HAIL is to provide an accurate means to identify the language and encoding used in streaming content, such as documents passed over a high-speed network. HAIL has been implemented on the Field-programmable Port eXtender (FPX), an open hardware platform developed at Washington University in St. Louis. HAIL can accurately identify the primary languages and encodings used in text at rates much higher than what can be achieved by software algorithms running on microprocessors. Follow this and additional works at: https://openscholarship.wustl.edu/cse_research Part of the Computer Engineering Commons, and the Computer Sciences Commons Recommended Citation Kastner, Charles M., " HAIL: An Algorithm for the Hardware Accelerated Identification of Languages, Master's Thesis, May 2006" Report Number: WUCSE-2006-36 (2006). All Computer Science and Engineering Research. https://openscholarship.wustl.edu/cse_research/187 Department of Computer Science & Engineering - Washington University in St. Louis Campus Box 1045 - St. Louis, MO - 63130 - ph: (314) 935-6160. Department of Computer Science & Engineering 2006-36 HAIL: An Algorithm for the Hardware Accelerated Identification of Languages, Master's Thesis, May 2006 Authors: Charles M. Kastner Corresponding Author: [email protected] Web Page: http://www.arl.wustl.edu/projects/fpx/reconfig.htm Abstract: This thesis examines in detail the Hardware-Accelerated Identification of Languages (HAIL) project.
    [Show full text]
  • North American Company Profiles 8X8
    North American Company Profiles 8x8 8X8 8x8, Inc. 2445 Mission College Boulevard Santa Clara, California 95054 Telephone: (408) 727-1885 Fax: (408) 980-0432 Web Site: www.8x8.com Email: [email protected] Fabless IC Supplier Regional Headquarters/Representative Locations Europe: 8x8, Inc. • Bucks, England U.K. Telephone: (44) (1628) 402800 • Fax: (44) (1628) 402829 Financial History ($M), Fiscal Year Ends March 31 1992 1993 1994 1995 1996 1997 1998 Sales 36 31 34 20 29 19 50 Net Income 5 (1) (0.3) (6) (3) (14) 4 R&D Expenditures 7 7 7 8 8 11 12 Capital Expenditures — — — — 1 1 1 Employees 114 100 105 110 81 100 100 Ownership: Publicly held. NASDAQ: EGHT. Company Overview and Strategy 8x8, Inc. is a worldwide leader in the development, manufacture and deployment of an advanced Visual Information Architecture (VIA) encompassing A/V compression/decompression silicon, software, subsystems, and consumer appliances for video telephony, videoconferencing, and video multimedia applications. 8x8, Inc. was founded in 1987. The “8x8” refers to the company’s core technology, which is based upon Discrete Cosine Transform (DCT) image compression and decompression. In DCT, 8-pixel by 8-pixel blocks of image data form the fundamental processing unit. 2-1 8x8 North American Company Profiles Management Paul Voois Chairman and Chief Executive Officer Keith Barraclough President and Chief Operating Officer Bryan Martin Vice President, Engineering and Chief Technical Officer Sandra Abbott Vice President, Finance and Chief Financial Officer Chris McNiffe Vice President, Marketing and Sales Chris Peters Vice President, Sales Michael Noonen Vice President, Business Development Samuel Wang Vice President, Process Technology David Harper Vice President, European Operations Brett Byers Vice President, General Counsel and Investor Relations Products and Processes 8x8 has developed a Video Information Architecture (VIA) incorporating programmable integrated circuits (ICs) and compression/decompression algorithms (codecs) for audio/video communications.
    [Show full text]
  • Management of Data Elements in Information Processing
    PB-249-530 MANAGEMENT OF DATA ELEMENTS IN INFORMATION PROCESSING U.S. DEPARTMENT OF COMMERCE / National Bureau of Standards SECOND NATIONAL SYMPOSIUM NATIONAL BUREAU OF STANDARDS GAITHERSBURG, MARYLAND 1975 OCTOBER 23-24 Available by purchase from the National Technical Information Service, 5285 Port Royal Road, Springfield, Va. 221 Price: $9.25 hardcopy; $2.25 microfiche. National Technical Information Service U. S. DEPARTMENT OF COMMERCE PB-249-530 Management of Data Elements in Information Processing Proceedings of a Second Symposium Sponsored by the American National Standards Institute and by The National Bureau of Standards 1975 October 23-24 NBS, Gaithersburg, Maryland Hazel E. McEwen, Editor Institute for Computer Sciences and Technology National Bureau of Standards Washington, D.C. 20234 U.S. DEPARTMENT OF COMMERCE, Elliot L. Richardson, Secrefary NATIONAL BUREAU OF STANDARDS, Ernest Ambler, Acfing Direc/or Table of Contents Page Introduction to the Program of the Second National Symposium on The Management of Data Elements in Information Processing ix David V. Savidge, Program Chairman On-Line Tactical Data Inputting: Research in Operator Training and Performance 1 Irving Alderman, Ph.D. "Turning the Corner" on MIS, A Proposed Program of Data Standards in Post-Secondary Education 9 Donald R. Arnold, Ph.D. ASCII - The Data Alphabet That Will Endure 17 Robert W. Bemer Techniques in Developing Standard Procedures for Data Editing 23 George W. Covill An Adaptive File Management Systems 45 Dennis L. Dance and Udo W. Pooch (Given by Dance) A Focus on the Role of the Data Manager 57 Ruth M, Davis, Ph.D. A Proposed Standard Routine for Generating Proposed Standard Check Characters 61 Paul -Andre Desjardins Methodology for Development of Standard Data Elements within Multiple Public Agencies 69 L.
    [Show full text]
  • Beyond MOV ADD XOR – the Unusual and Unexpected
    Beyond MOV ADD XOR the unusual and unexpected in x86 Mateusz "j00ru" Jurczyk, Gynvael Coldwind CONFidence 2013, Kraków Who • Mateusz Jurczyk o Information Security Engineer @ Google o http://j00ru.vexillium.org/ o @j00ru • Gynvael Coldwind o Information Security Engineer @ Google o http://gynvael.coldwind.pl/ o @gynvael Agenda • Getting you up to speed with new x86 research. • Highlighting interesting facts and tricks. • Both x86 and x86-64 discussed. Security relevance • Local vulnerabilities in CPU ↔ OS integration. • Subtle CPU-specific information disclosure. • Exploit mitigations on CPU level. • Loosely related considerations and quirks. x86 - introduction not required • Intel first ships 8086 in 1978 o 16-bit extension of the 8-bit 8085. • Only 80386 and later are used today. o first shipped in 1985 o fully 32-bit architecture o designed with security in mind . code and i/o privilege levels . memory protection . segmentation x86 - produced by... Intel, AMD, VIA - yeah, we all know these. • Chips and Technologies - left market after failed 386 compatible chip failed to boot the Windows operating system. • NEC - sold early Intel architecture compatibles such as NEC V20 and NEC V30; product line transitioned to NEC internal architecture http://www.cpu-collection.de/ x86 - other manufacturers Eastern Bloc KM1810BM86 (USSR) http://www.cpu-collection.de/ x86 - other manufacturers Transmeta, Rise Technology, IDT, National Semiconductor, Cyrix, NexGen, Chips and Technologies, IBM, UMC, DM&P Electronics, ZF Micro, Zet IA-32, RDC Semiconductors, Nvidia, ALi, SiS, GlobalFoundries, TSMC, Fujitsu, SGS-Thomson, Texas Instruments, ... (via Wikipedia) At first, a simple architecture... At first, a simple architecture... x86 bursted with new functions • No eXecute bit (W^X, DEP) o completely redefined exploit development, together with ASLR • Supervisor Mode Execution Prevention • RDRAND instruction o cryptographically secure prng • Related: TPM, VT-d, IOMMU Overall..
    [Show full text]
  • Application Programming
    AMD64 Technology AMD64 Architecture Programmer’s Manual Volume 1: Application Programming Publication No. Revision Date 24592 3.14 September 2007 Advanced Micro Devices AMD64 Technology 24592—Rev. 3.14—September 2007 © 2002 – 2007 Advanced Micro Devices, Inc. All rights reserved. The contents of this document are provided in connection with Advanced Micro Devices, Inc. (“AMD”) products. AMD makes no representations or warranties with respect to the accuracy or completeness of the contents of this publication and reserves the right to make changes to specifications and product descriptions at any time without notice. The information contained herein may be of a preliminary or advance nature and is subject to change without notice. No license, whether express, implied, arising by estoppel or otherwise, to any intellectual property rights is granted by this publication. Except as set forth in AMD’s Standard Terms and Conditions of Sale, AMD assumes no liability whatsoever, and disclaims any express or implied warranty, relating to its products including, but not limited to, the implied warranty of merchantability, fitness for a particular purpose, or infringement of any intellectual property right. AMD’s products are not designed, intended, authorized or warranted for use as components in systems intended for surgical implant into the body, or in other appli- cations intended to support or sustain life, or in any other application in which the failure of AMD’s product could create a situation where personal injury, death, or severe property or environmental damage may occur. AMD reserves the right to discontinue or make changes to its products at any time without notice.
    [Show full text]
  • "Design Rules, Volume 2: How Technology Shapes Organizations
    Design Rules, Volume 2: How Technology Shapes Organizations Chapter 17 The Wintel Standards-based Platform Carliss Y. Baldwin Working Paper 20-055 Design Rules, Volume 2: How Technology Shapes Organizations Chapter 17 The Wintel Standards-based Platform Carliss Y. Baldwin Harvard Business School Working Paper 20-055 Copyright © 2019 by Carliss Y. Baldwin Working papers are in draft form. This working paper is distributed for purposes of comment and discussion only. It may not be reproduced without permission of the copyright holder. Copies of working papers are available from the author. Funding for this research was provided in part by Harvard Business School. © Carliss Y. Baldwin Comments welcome. Please do not circulate or quote. Design Rules, Volume 2: How Technology Shapes Organizations Chapter 17 The Wintel Standards-based Platform By Carliss Y. Baldwin Note to Readers: This is a draft of Chapter 17 of Design Rules, Volume 2: How Technology Shapes Organizations. It builds on prior chapters, but I believe it is possible to read this chapter on a stand-alone basis. The chapter may be cited as: Baldwin, C. Y. (2019) “The Wintel Standards-based Platform,” HBS Working Paper (November 2019). I would be most grateful for your comments on any aspect of this chapter! Thank you in advance, Carliss. Abstract The purpose of this chapter is to use the theory of bottlenecks laid out in previous chapters to better understand the dynamics of an open standards-based platform. I describe how the Wintel platform evolved from 1990 through 2000 under joint sponsorship of Intel and Microsoft. I first describe a series of technical bottlenecks that arose in the early 1990s concerning the “bus architecture” of IBM-compatible PCs.
    [Show full text]
  • The Design of TEX and METAFONT: a Retrospective
    The design of TEX and METAFONT: A retrospective Nelson H. F. Beebe University of Utah Department of Mathematics, 110 LCB 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA WWW URL: http://www.math.utah.edu/~beebe Telephone: +1 801 581 5254 FAX: +1 801 581 4148 Internet: [email protected], [email protected], [email protected] Abstract This article looks back at the design of TEX and METAFONT, and analyzes how they were affected by architectures, operating systems, programming languages, and resource limits of the computing world at the time of their creation by a remarkable programmer and human being, Donald E. Knuth. This paper is dedicated to him, with deep gratitude for the continued inspiration and learning that I’ve received from his software, his scientific writing, and our occasional personal encounters over the last 25+ years. 1 Introduction 501 arrived, he was so disappointed that he wrote [68, 2 Computers and people 502 p. 5]: 3TheDECPDP-10 502 I didn’t know what to do. I had spent 15 4 Resource limits 505 years writing those books, but if they were 5 Choosing a programming language 506 going to look awful I didn’t want to write 6 Switching programming languages 510 any more. How could I be proud of such a 7 Switching languages, again 513 product? A few months later, he learned of some new de- 8 TEX’s progeny 514 vices that used digital techniques to create letter 9 METAFONT’s progeny 514 images, and the close connection to the 0s and 1s 10 Wrapping up 515 of computer science led him to think about how 11 Bibliography 515 he himself might design systems to place characters −−∗−− on a page, and draw the individual characters as a matrix of black and white dots.
    [Show full text]
  • SRI ARC Journal : 32929-32972
    JMB 8-JUL-75 13:06 32929 1 This is an impromptu message to demonstrate Sendmail items. 1 JMB 8-JUL-75 13:06 32929 (J32929) 8-JUL-75 13:06;;;; Title: Author(s): Jeanne M. Bec</JMB; Distribution: /PAw2( [ InFQ-ONLY ] ) ; Sub-Collections: SRI-APC; Cleric JMB; RA3Y 8-JUL-75 13:09 32930 archiving commands In NLS too 1 ThanKs for the note on archiving# Glenn. I wasn't aware of archiving processes in Ienex that prevent archiving. As it turns out# all these commands are also available in NLS. To see them type Archive File filename# then hit the Control-u, You will be prompted for an option. If you hit the ? then# a list will be presented, 1 1 RA3Y 8-JUL-75 13509 32930 archiving commands in NLS too CJ32930) 8-JUL-75 13:09;?;; Title; Author(s): Raymond P. Panko/RA 3 Y ; Distribution; /G A S2 ( [ INFO-ONLY 1 ) : Sub-collections: SRI-ABC; Clerk: RA3Y; JMB 8-JUL-75 13J10 32931 menu 1 MENU 1 la APPETIZERS la lal ANTIPASTO lal la2 ASPARAGUS V IN AIGRETTE 1a2 la3 ESCARGOT la3 la4 BROILED MUSHROOMS 1a4 lb SOUPS lb Ibl cold soups Ibl Ibla V ICHiSUISSE Ibla lblb BORSCHT lblb lblc GAZpACHO lblc Ibid AVOCADO Ibid 1b2 HOT SOUPS lb2 lb2a BORSCHT 1b2a 1b2a1 WITH SOUR CREAM lb2a1 lb2b CHICKEN lb2b lb2b1 WITH DUMPLINGS lb2b1 lb2c SPINACH lb2c lc SALADS lc lcl CAESAR lcl 1c2 GREEK 1c2 lc2a WITH ANCHOVIES lc2a 1C3 TOSSED GREEN 1c3 Id ENTREES Id 1d 1 FISH AND SHELLFISH 1d 1 1 JMB 8-JUL-75 1 3: 10 32931 menu Id la SOLE 1dl a 1d lb SCALLOPS ldlb ldlbl BROILED ldlbl 1d1 b 2 SAUTEED 1d 1 b2 Idle LOBSTER Idle ldlel I LB.
    [Show full text]
  • Jargon File, Version 4.0.0, 24 Jul 1996
    JARGON FILE, VERSION 4.0.0, 24 JUL 1996 This is the Jargon File, a comprehensive compendium of hacker slang illuminating many aspects of hackish tradition, folklore, and humor. This document (the Jargon File) is in the public domain, to be freely used, shared, and modified. There are (by intention) no legal restraints on what you can do with it, but there are traditions about its proper use to which many hackers are quite strongly attached. Please extend the courtesy of proper citation when you quote the File, ideally with a version number, as it will change and grow over time. (Examples of appropriate citation form: "Jargon File 4.0.0" or "The on-line hacker Jargon File, version 4.0.0, 24 JUL 1996".) The Jargon File is a common heritage of the hacker culture. Over the years a number of individuals have volunteered considerable time to maintaining the File and been recognized by the net at large as editors of it. Editorial responsibilities include: to collate contributions and suggestions from others; to seek out corroborating information; to cross-reference related entries; to keep the file in a consistent format; and to announce and distribute updated versions periodically. Current volunteer editors include: Eric Raymond [email protected] Although there is no requirement that you do so, it is considered good form to check with an editor before quoting the File in a published work or commercial product. We may have additional information that would be helpful to you and can assist you in framing your quote to reflect not only the letter of the File but its spirit as well.
    [Show full text]
  • PCM-5823 at Our Website: Click HERE PCM-5823
    Full-service, independent repair center -~ ARTISAN® with experienced engineers and technicians on staff. TECHNOLOGY GROUP ~I We buy your excess, underutilized, and idle equipment along with credit for buybacks and trade-ins. Custom engineering Your definitive source so your equipment works exactly as you specify. for quality pre-owned • Critical and expedited services • Leasing / Rentals/ Demos equipment. • In stock/ Ready-to-ship • !TAR-certified secure asset solutions Expert team I Trust guarantee I 100% satisfaction Artisan Technology Group (217) 352-9330 | [email protected] | artisantg.com All trademarks, brand names, and brands appearing herein are the property o f their respective owners. Find the Advantech PCM-5823 at our website: Click HERE PCM-5823 NS Geode Single Board Computer with CPU SVGA/LCD, Dual Ethernet Interface Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com Copyright Notice This document is copyrighted, 2000. All rights are reserved. The original manufacturer reserves the right to make improvements to the products described in this manual at any time without notice. No part of this manual may be reproduced, copied, translated or transmitted in any form or by any means without the prior written permission of the original manufacturer. Information provided in this manual is intended to be accurate and reliable. However, the original manufacturer assumes no responsibility for its use, nor for any infringements upon the rights of third parties which may result from its use. Acknowledgements AMD is a trademark of Advanced Micro Devices, Inc. Award is a trademark of Award Software International, Inc. IBM, PC/AT, PS/2 and VGA are trademarks of International Business Machines Corporation.
    [Show full text]
  • Fonts & Encodings
    Fonts & Encodings Yannis Haralambous To cite this version: Yannis Haralambous. Fonts & Encodings. O’Reilly, 2007, 978-0-596-10242-5. hal-02112942 HAL Id: hal-02112942 https://hal.archives-ouvertes.fr/hal-02112942 Submitted on 27 Apr 2019 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. ,title.25934 Page iii Friday, September 7, 2007 10:44 AM Fonts & Encodings Yannis Haralambous Translated by P. Scott Horne Beijing • Cambridge • Farnham • Köln • Paris • Sebastopol • Taipei • Tokyo ,copyright.24847 Page iv Friday, September 7, 2007 10:32 AM Fonts & Encodings by Yannis Haralambous Copyright © 2007 O’Reilly Media, Inc. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (safari.oreilly.com). For more information, contact our corporate/institutional sales department: (800) 998-9938 or [email protected]. Printing History: September 2007: First Edition. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. Fonts & Encodings, the image of an axis deer, and related trade dress are trademarks of O’Reilly Media, Inc.
    [Show full text]