Assembly Instruction Set
The core of the reference covers the full assembly instruction set for x86 processors, with particular focus on the 8088. Each instruction entry details its operation, affected flags, and encoding where relevant.
Key categories include data movement instructions (MOV, PUSH, POP, XCHG), arithmetic and logic operations (ADD, SUB, AND, OR, XOR), control transfer (JMP, CALL, RET, conditional jumps), and string and I/O instructions.
Effective Address & Clock Cycles
Effective Address (EA) calculations determine the actual memory operand location from the components of an instruction's addressing mode. The reference documents how the 8088 computes EAs from base registers (BX, BP), index registers (SI, DI), and displacements.
Clock cycle tables provide per-instruction timing for the 8088, helping programmers estimate execution speed for performance-critical code paths.
Low Memory Usage
The low-memory region (segment 0000) holds critical system data including the interrupt vector table, BIOS data area, and system ID byte. The reference maps these structures so programmers can inspect or interact with them directly.
Flags Register
Detailed breakdown of the 16-bit FLAGS register: Carry (CF), Parity (PF), Auxiliary Carry (AF), Zero (ZF), Sign (SF), Trap (TF), Interrupt Enable (IF), Direction (DF), and Overflow (OF). Each flag's bit position, meaning, and the instructions that affect it are documented.
System ID Byte
Located at a known low-memory address, the System ID Byte identifies the machine type. The reference lists the values and their corresponding system models, useful for runtime hardware detection in assembly programs.
MASM Pseudo-Ops
Microsoft Macro Assembler (MASM) pseudo-operations are directives that control the assembly process rather than generating machine code. Covered directives include:
SEGMENT/ENDS— define logical segmentsASSUME— set segment register assumptionsPROC/ENDP— define proceduresEQU— define symbolic constantsDB,DW,DD— define data bytes, words, doublewordsMACRO/ENDM— define macros
Operator Precedence
MASM expressions follow a defined operator precedence. The reference table orders operators from highest to lowest priority, covering parentheses, unary operators, multiplicative operators, additive operators, relational tests, and logical operators. Understanding precedence is essential for writing correct assembly-time expressions.
Reserved Words
A complete listing of MASM reserved words — tokens that cannot be used as user-defined identifiers. These include instruction mnemonics, register names, pseudo-op keywords, and predefined symbols. The reference helps programmers avoid naming conflicts in their source code.