, . , , , , .
:
ü ;
ü ;
ü .
3.1.2. . : (), , , ASCII, . (). OFFSET.
Examle 3.1. .
;
mes DB ;
X EQU 12;
;
MOV AH, 40h; 40h AH
MOV AL, *; * AL
MOV CX, X; , X CX, CX=12
MOV AX, (40*2); 40*2 AX
INT 21h; 21h
; OFFSET
MOV DX, OFFSET mes; DX
3.2.1. . () .
Examle 3.2. .
INC CX; 1 CX
MOV CX, BX; BX CX
PUSH DS; DS
3.2.2. . Intel 8086 .
. . . () DS. .
- : .
BX BP, - SI DI. BX, SI DI , DS, BP - , SS. . , , [BX]. , BX , .
- : . BX, BP, SI DI , . [].
: [BX]+ [BX + ]. .
- . : [BX][SI] ( DS), [BX][DI] ( DS), [BP][SI] ( SS), [BP][DI] ( SS). .
|
|
- . : [BX][SI] ( DS), [BX][DI] ( DS), [BP][SI] ( SS), [BP][DI] ( SS). : [BX + SI], [ + BX + SI] [BX][SI] + .
Examle 3.3. .
;
val DB 10h, 20h
val16 DW 1000h, 2000h
mes DB Hello
;
;
INC val; val 1
MOV DX, val16; DX = 1000h
MOV DL, val; DL = 10h
MOV DH, val+1; DH = 20h,
MOV AX, val16; AX = 1000h
MOV BX, val16 + 2; DH = 2000h,
MOV AL, DS:6h; AL = 20h, ,
;- .
MOV BX, OFFSET val; BX val
MOV SI, OFFSET mes; SI mes
MOV AL, [BX]; AL = 10h
INC BX;
MOV AH, [BX]; AL = 20h
MOV DI, [SI]; DI = H
INC SI;
INC DI;
MOV DI, [SI]; DI = e
; -,
MOV AL, [BX+1]; AL = 20h
MOV AH, [BX+2]; AH = 30h
;
INC BX;
MOV AH, [BX]; AL = 20h
MOV DI, [SI]; DI = H
INC SI;
INC DI;
MOV DI, [SI]; DI = e