140 lines
3.4 KiB
Plaintext
140 lines
3.4 KiB
Plaintext
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 |