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.
5. Procedures.
Linking to an external library. Description of the book? 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.