Assembly Language Step-by-Step-Programming with DOS and Linux, Second Edition
Introduction: "Why Would You Want to Do That?
Chapter 1: Another Pleasant Valley Saturday Understanding What Computers Really Do
Chapter 2: Alien Bases Getting Your Arms around Binary and Hexadecimal
Octal: How the Grinch Stole Eight and Nine
Hexadecimal: Solving the Digit Shortage
From Hex to Decimal and from Decimal to Hex
Hexadecimal as Shorthand for Binary
Chapter 3: Lifting the Hood Discovering What Computers Actually Are
Switches, Transistors, and Memory
The Shop Foreman and the Assembly Line
Chapter 4: The Right to Assemble The Process of Making Assembly Language Programs
The Assembly Language Development Process
NASM-IDE''''s Editor in Detail
Chapter 6: An Uneasy Alliance The x86 CPU and Its Segmented Memory System
The Three Major Assembly Programming Models
Reading and Changing Registers with DEBUG
Chapter 7: Following Your Instructions Meeting Machine Instructions up Close and Personal
Assembling and Executing Machine Instructions with DEBUG
Machine Instructions and Their Operands
Reading and Using an Assembly Language Reference
Chapter 8: Our Object All Sublime Creating Programs that Work
The Bones of an Assembly Language Program
Assembling and Running EAT.ASM
Last In, First Out via the Stack
Using DOS Services through INT
Chapter 9: Dividing and Conquering Using Procedures and Macros to Battle Complexity
Building External Libraries of Procedures
Chapter 10: Bits, Flags, Branches, and Tables Easing into Mainstream Assembly Programming
Bits Is Bits (and Bytes Is Bits)
Chapter 11: Stringing Them Up Those Amazing String Instructions
The Notion of an Assembly Language String
REP STOSW, the Software Machine Gun
The Semiautomatic Weapon: STOSW without REP
Storing Data to Discontinuous Strings
The make Utility and Dependencies
Understanding AT&T Instruction Mnemonics
Accessing Command-Line Arguments
Conclusion: Not the End, But Only the Beginning
Appendix A: Partial 8086/8088 Instruction Set Reference
Notes on the Instruction Set Reference
AAA Adjust AL after BCD Addition
ADC Arithmetic Addition with Carry
IMUL Signed Integer Multiplication
LOOPNZ/LOOPNE Loop While CX/ECX > 0 and ZF=0
LOOPZ/LOOPE Loop While CX/ECX > 0 and ZF=1
MOV Move (Copy) Right Operand into Left Operand
NEG Negate (Two''''s Complement; i.e., Multiply by −1)
NOT Logical NOT (One''''s Complement)
POP Pop Top of Stack into Operand
POPA Pop All 16-Bit Registers (286+)
POPF Pop Top of Stack into Flags
POPFD Pop Top of Stack into EFlags (386+)
PUSH Push Operand onto Top of Stack
PUSHA Push All 16-Bit GP Registers (286+)
PUSHAD Push All 32-Bit GP Registers (386+)
PUSHF Push 16-Bit Flags onto Stack
PUSHFD Push 32-Bit EFlags onto Stack (386+)
SBB Arithmetic Subtraction with Borrow
Appendix B: Segment Register Assumptions for Real Mode Segmented Model
Appendix C: Web URLs for Assembly Programmers
Appendix D: Segment Register Assumptions
Appendix E: What''''s on the CD-ROM?