Word Register Reference AX - DB Value BX - DB Position CX - Displacement Value/DB Value DX - Displacement Value/DB Position Backup Byte Register Reference AL - DB Type Byte Other Registers Unused Operational Data Reference Bytes Description 2 Pointer DB Start 2 Pointer DB End 2 Pointer DB Position 1 Pointer Type 2 Pointer Data 2 Range DB Start 2 Range DB End 2 Range DB Poisition 1 Range Type 2 Range Start 2 Range End 2 Displacement Start 2 Displacement End 2 Displacement Value Pointer Type Byte Specification A 0x0, 0x6-FF - Empty Word 0x1 - Byte Relative 0x2 - Word Relative 0x3 - Word Absolute 0x4 - Byte Relative to Word Relative (B2W) 0x5 - Word Relative to Byte Relative (W2B) Range Type Byte Specification A Range : Consists of Start Word Pointer, End Word Pointer 0x0 - 0x3-FF - Empty DoubleWord 0x1 - Inactive Range 0x2 - Active Range Pointer Calculation Procedure Specification A 0x: Omit Data Here (0 Bytes) Jump Description Aa Limit Check CMP Pointer DB Position with Pointer DB End JGE Exit (Ba) JMP/0x Read Type Ba Read Type MOV [BX] → AL Read Pointer Data INC BX MOV [BX] → CX Check Displacement CMP CX ⇄ Displacement Start (Ca) JB Check Type Zero CMP CX ⇄ Displacement End (Ca) JA Check Type Zero JMP/0x Add Displacement Add Displacement ADD Displacement → CX (Ca) JMP/0x Check Type Zero Ca Check Type Zero CMP AL ⇄ 0x0 (?a/?b) JA Next Field (Da/Db) JMP/0x Check Type Empty (Pointer/Range) Da Check Type Empty (Pointer) CMP AL ⇄ 0x5 (?a) JA Next Field (Pointer) (Ea) JMP/0x Check Type 0x1 (Pointer) Db Check Type Empty (Range) CMP AL ⇄ 0x2 (?a) JA Next Field (Range) (Eb) JMP/0x Check Type 0x1 (Range) Ea Check Type 0x1 (Pointer) CMP AL ⇄ 0x1 (?a) JE Check Convert 0x1 (Pointer) (?a) JMP/0x Check Type 0x2 (Pointer) Fa Check Type 0x1 (Range) CMP AL ⇄ 0x1 (?a) JE Check Convert 0x1 (Range) (?a) JMP/0x Check Type 0x3 (Range) Eb Check Type 0x2 (Pointer) CMP AL ⇄ 0x2 (?a) JE Check Convert 0x2 (Pointer) (?a) JMP/0x Check Type 0x3 (Pointer) Fb Check Type 0x2 (Range) CMP AL ⇄ 0x2 (?a) JE Check Convert 0x2 (Range) (?a) JMP/0x Check Type 0x3 (Range) Gb Next Field (Range) ADD BX + 0x4 (Aa) JMP/0x Limit Check Ec Check Type 0x3 (Pointer) CMP AL ⇄ 0x3 (?a) JE Check Convert 0x3 (Pointer) (?a) JMP/0x Check Type 0x4 (Pointer) Ed Check Type 0x4 (Pointer) CMP AL ⇄ 0x4 (?a) JE Check Convert 0x4 (Pointer) (?a) JMP/0x Check Type 0x5 (Pointer) Ee Check Type 0x5 (Pointer) CMP AL ⇄ 0x5 (?a) JE Check Convert 0x5 (Pointer) (?a) JMP/0x Next Field (Pointer) Ga Next Field (Pointer) ADD BX + 0x2 (Aa) JMP/0x Limit Check