【文件属性】:
文件名称:Itanium Architecture For Programmers
文件大小:1.29MB
文件格式:CHM
更新时间:2012-03-15 17:11:04
Itanium Architecture
Preface
Acknowledgments
Trademarks
Chapter 1. Architecture and Implementation
Section 1.1. Analogy: Piano Architecture
Section 1.2. Types of Computer Languages
Section 1.3. Why Study Assembly Language?
Section 1.4. Prefixes for Binary Multiples
Section 1.5. Instruction Set Architectures
Section 1.6. The Life Cycle of Computer Architectures
Section 1.7. SQUARES: A First Programming Example
Section 1.8. Review of Number Systems
Summary
References
Exercises
Chapter 2. Computer Structures and Data Representations
Section 2.1. Computer Structures
Section 2.2. Instruction Execution
Section 2.3. Classes of Instruction Set Architectures
Section 2.4. Migration to 64-Bit Architectures
Section 2.5. Itanium Information Units and Data Types
Summary
References
Exercises
Chapter 3. The Program Assembler and Debugger
Section 3.1. Programming Environments
Section 3.2. Program Development Steps
Section 3.3. Comparing Variants of a Source File
Section 3.4. Assembler Statement Types
Section 3.5. The Functions of a Symbolic Assembler
Section 3.6. The Assembly Process
Section 3.7. The Linking Process
Section 3.8. The Program Debugger
Section 3.9. Conventions for Writing Programs
Summary
References
Exercises
Chapter 4. Itanium Instruction Formats and Addressing
Section 4.1. Overview of Itanium Instruction Formats
Section 4.2. Integer Arithmetic Instructions
Section 4.3. Bit Encoding for Itanium Instructions
Section 4.4. HEXNUM: Using Arithmetic Instructions
Section 4.5. Data Access Instructions
Section 4.6. Other ALU Instructions
Section 4.7. DOTPROD: Using Data Access Instructions
Section 4.8. Itanium Addressing Modes
Section 4.9. Addressing in Other Architectures
Summary
References
Exercises
Chapter 5. Comparison, Branches, and Predication
Section 5.1. Hardware Basis for Control of Flow
Section 5.2. Integer Compare Instructions
Section 5.3. Program Branching
Section 5.4. DOTLOOP: Using a Counted Loop
Section 5.5. Stops, Instruction Groups, and Performance
Section 5.6. DOTCLOOP: Using the Loop Count Register
Section 5.7. Other Structured Programming Constructs
Section 5.8. MAXIMUM: Using Conditional Instructions
Summary
References
Exercises
Chapter 6. Logical Operations, Bit-Shifts, and Bytes
Section 6.1. Logical Functions
Section 6.2. HEXNUM2: Using Logical Masks
Section 6.3. Bit and Field Operations
Section 6.4. SCANTEXT: Processing Bytes
Section 6.5. Integer Multiplication and Division
Section 6.6. DECNUM: Converting an Integer to Decimal Format
Section 6.7. Using C for ASCII Input and Output
Section 6.8. BACKWARD: Using Byte Manipulations
Summary
References
Exercises
Chapter 7. Subroutines, Procedures, and Functions
Section 7.1. Memory Stacks
Section 7.2. DECNUM2: Using Stack Operations
Section 7.3. Register Stacks
Section 7.4. Program Segmentation
Section 7.5. Calling Conventions
Section 7.6. DECNUM3 and BOOTH: Making a Function
Section 7.7. Integer Quotients and Remainders
Section 7.8. RANDOM: A Callable Function
Summary
References
Exercises
Chapter 8. Floating-Point Operations
Section 8.1. Parallels Between Integer and Floating-Point Instructions
Section 8.2. Representations of Floating-Point Values
Section 8.3. Copying Floating-Point Data
Section 8.4. Floating-Point Arithmetic Instructions
Section 8.5. HORNER: Evaluating a Polynomial
Section 8.6. Predication Based on Floating-Point Values
Section 8.7. Integer Operations in Floating-Point Execution Units
Section 8.8. Approximations for Reciprocals and Square Roots
Section 8.9. APPROXPI: Using Floating-Point Instructions
Summary
References
Exercises
Chapter 9. Input and Output of Text
Section 9.1. File Systems
Section 9.2. Keyboard and Display I/O
Section 9.3. SCANTERM: Using C Standard I/O
Section 9.4. SORTSTR: Sorting Strings
Section 9.5. Text File I/O
Section 9.6. SCANFILE: Input and Output with Files
Section 9.7. SORTINT: Sorting Integers from a File
Section 9.8. Binary Files
Summary
References
Exercises
Chapter 10. Performance Considerations
Section 10.1. Processor-Level Parallelism
Section 10.2. Instruction-Level Parallelism
Section 10.3. Explicit Parallelism in the Itanium Processors
Section 10.4. Software-Pipelined Loops
Section 10.5. Modulo Scheduling a Loop
Section 10.6. Program Optimization Factors
Section 10.7. Fibonacci Numbers
Summary
References
Exercises
Chapter 11. Looking at Output from Compilers
Section 11.1. Compilers for RISC-like Systems
Section 11.2. Compiling a Simple Program
Section 11.3. Optimizing a Simple Program
Section 11.4. Inline Optimizations
Section 11.5. Profile-Guided or Other Optimizations
Section 11.6. Debugging Optimized Programs
Section 11.7. Recursion for Fibonacci Numbers Revisited
Summary
References
Exercises
Chapter 12. Parallel Operations
Section 12.1. Classification of Computing Systems
Section 12.2. Integer Parallel Operations
Section 12.3. Applications to Integer Multiplication
Section 12.4. Opportunities and Challenges
Section 12.5. Floating-Point Parallel Operations
Section 12.6. Semaphore Support for Parallel Processes
Summary
References
Exercises
Chapter 13. Variations Among Implementations
Section 13.1. Why Implementations Change
Section 13.2. How Implementations Change
Section 13.3. The Original Itanium Processor
Section 13.4. A Major Role for Software
Section 13.5. IA -32 Instruction Set Mode
Section 13.6. Determining Extensions and Implementation Version
Summary
References
Exercises
Appendix A. Command-Line Environments
Logging in
Logging out
Security
Text editing
Uploading files
Learning about commands
Learning about your environment
Inspecting an HP-UX or Linux file
References
Exercises
Appendix B. Suggested System Resources
Section B.1. System Hardware
Section B.2. System Software
Section B.3. Desktop Client Access Software
References
Appendix C. Itanium Instruction Set
References
Appendix D. Itanium Registers and Their Uses
Section D.1. Instruction Pointer
Section D.2. General Registers and NaT Bits
Section D.3. Predicate Registers
Section D.4. Branch Registers
Section D.5. Floating-Point Registers
Section D.6. Application Registers
Section D.7. State Management Registers
Section D.8. System Information Registers
Section D.9. System Control Registers
References
Appendix E. Conditional Assembly and Macros (GCC Assembler)
Section E.1. Interference from Explicit Stops
Section E.2. Repeat Blocks
Section E.3. Conditional Assembly
Section E.4. Macro Processing
Section E.5. Using Labels with Macros
Section E.6. Recursive Macros
Section E.7. Object File Sections
Section E.8. MONEY: A Macro Illustrating Sections
Summary
References
Exercises
Appendix F. Inline Assembly
Section F.1. HP-UX C Compilers
Section F.2. GCC Compiler for Linux
Section F.3. Intel Compilers for Linux
References
Bibliography
Answers and Hints for Selected Exercises
Chapter 1
Chapter 2
Chapter 3
Chapter 4
Chapter 5
Chapter 6
Chapter 7
Chapter 8
Chapter 9
Chapter 10
Chapter 11
Chapter 12
Chapter 13
Appendix E
About the Authors
网友评论
- 资料很偏 一般人用不到 要是amd 64估计对大家有帮助