Synopses & Reviews
This widely used, fully updated assembly language book provides basic information for the beginning programmer interested in computer architecture, operating systems, hardware manipulation, and compiler writing. Uses the Intel IA-32 processor family as its base, showing how to program for Windows and DOS. Is written in a clear and straightforward manner for high readability. Includes a companion CD-ROM with all sample programs, and Microsoft® Macro Assembler Version 8, along with an extensive companion Website maintained by the author. Covers machine architecture, processor architecture, assembly language fundamentals, data transfer, addressing and arithmetic, procedures, conditional processing, integer arithmetic, strings and arrays, structures and macros, 32-bit Windows programming, language interface, disk fundamentals, BIOS-level programming, MS-DOS programming, floating-point programming, and IA-32 instruction encoding. For embedded systems programmers and engineers, communication specialists, game programmers, and graphics programmers.
About the Author
Kip Irvine has written four computer programming textbooks, for Intel Assembly Language, C++, Visual Basic, and COBOL. His Assembly Language for Intel-Based Computers has been translated to six languages, and has been a best seller since 1990. Kip grew up in Hawaii as a surfer, sailor, and surfboard maker. He studied classical guitar and music composition at University of Hawaii, eventually earning his music doctorate from the University of Miami. He began programming computers for music synthesis around 1982, and taught at Miami-Dade Community College. He has a Masters degree in Computer Science from the University of Miami, and is currently on the computer science faculty at Florida International University.
Table of Contents
1. Basic Concepts.
Applications of assembly language. Basic concepts. Machine language. Data representation.
2. IA-32 Processor Architecture.
Basic microcomputer design. Instruction execution cycle. IA-32 processor architecture. IA-32 memory management. Components of a microcomputer.
The input-output system.
3. Assembly Language Fundamentals.
Introduction to assembly language. Linking and debugging. Defining constants and variables.
4. Data Transfers, Addressing, and Arithmetic.
Simple data transfer and arithmetic instructions. Assemble-link-execute cycle. Operators. Directives. Expressions. JMP and LOOP instructions. Indirect addressing.
Linking to an external library. Description of the book’s link library. Stack operations. Defining and using procedures. Flowcharts. Top-down structured design.
6. Conditional Processing.
Boolean and comparison instructions. Conditional jumps and loops. High-level logic structures. Finite state machines.
7. Integer Arithmetic.
Shift and rotate instructions with useful applications. Multiplication and division. Extended addition and subtraction. ASCII and packed decimal arithmetic.
8. Advanced Procedures.
Stack Parameters. Local Variables. Advanced PROC and INVOKE Directives. Recursion.
9. Strings and Arrays.
String Primitives. Manipulated Arrays of Characters and Integers. Two-dimensional arrays. Sorting. Searching.
10. Structures and Macros.
Structures. Macros. Conditional Assembly Directives. Defining Repeat Blocks.
11. MS-Windows Programming.
Protected Mode Memory Management Concepts. Using the Microsoft® Windows API to Display Text and Colors. Dynamic Memory Allocation.
12. High-Level Language Interface.
Parameter Passing Conventions. Inline Assembly Code. Linking Assembly Language Modules to C and C++ Programs.
13. 16-Bit MS-DOS Programming.
Calling MS-DOS Interrupts for Console and File Input-Output.
14. Disk Fundamentals.
Disk Storage Systems. Sectors. Clusters. Directories. File Allocation Tables. Handling MS-DOS Error Codes. Drive and Directory Manipulation.
15. BIOS-Level Programming.
Keyboard Input. Video Text, Graphics, and Mouse Programming.
16. Expert MS-DOS Programming.
Custom-Designed Segments. Runtime Program Structure. Interrupt Handling. Hardware Control Using I/O Ports.
17. Floating Point Programming and IA-32 Instruction Encoding.
Floating-point Binary Representation and Floating-Point Arithmetic. Learning to Program the IA-32 Floating-Point Unit. Understanding the Encoding of IA-32 Machine Instructions.
Appendix A: Installing and Using the Assembler.
Appendix B: The IA-32 Instruction Set.
Appendix C: BIOS and MS-DOS Interrupts.
Appendix D: MASM Reference.
Appendix E: Answers to Review Questions.