7
8086
: .
.
, . , , , , . : , - , '; . , , . , .
, "" ', , , . "".
32- Intel ; 86 . , 86.
:
1. ;
2. ;
3. ;
4. ( );
5. ( );
6. -;
7. .
1.1
- ' .
. ( ) . - :
. ( ) . - :
inc CX | ; 1 CX |
push DS | ; |
xchg BX,BP | ; BX BP |
mov ES,AX | ; AX ES |
1.2
. ( ) ; (, , ASCII), .
mov , 40h | ; 40h |
mov AL,'*' | ; ASCII "*' AL |
int 21h | ; 21h |
limit equ 528 | ; 528 limit |
mov CX,limit | ; , limit, |
|
|
mov, , ; , - .
(), offset ():;
string db Privet";
;
mov DX,offset string; DX
1.3 .
'; ' ( ) ( ) :
;
meml dw 0; 0
mem2 db 230; 230
;
inc meml; meml 1
mov DX, meml; ' menu DX
mov AL,mem2; ' mem2 L
, , ' , ; offset - .
' , , . , , meml, ' . , , . - : . meml mem2 , . . : DS, ES, CS SS. , , ?
, . : , , , . .
, ', , , . ES 26h, SS - 361i, CS - 2Eh. , DS ( ).
, , DS, inc meml inc DS: mem. ' :
inc ES: mem1
inc CS: mem2
' :
mov AL,DS: [17h] | AL 17h , DS |
1.4 ( ).
' ( ). ³ ' , . 86 , , SI DI. , SI DI - .
, SI DI, , DS, DS: :
|
|
mov es: [bx],'1' ――――→ mov [bx],'1'
, '. 1 .
, SI DI , - :
. , ; , SS.
, , , (, ).
:
[BX] | ( DS: [BX]) |
[BP] | ( SS: [BP]) |
[SI] | ( DS: [SI]) |
[DI] | ( DS: [DI]) |
, , , - . ' ( ) ( , , '). , , , . , , . , , .
:
mov SI, offset string | ; SI string |
mov AX, [SI] | ; string AX |
inc [SI] | ; string |
mov BX, [SI] | ; string BX |
mov DI, SI | ; ³ string DI |
1.5 ( ).
' ( ). ³ , BX, BP, SI DI , . . , , BX, SI DI , DS, , , SS.
= {SP, BP, DI, SI, BX} +
, . , , 4 [] [ +4], 4 + [] [] +4. , , , , , , .
:
= {SP, BP, DI, SI, BX} +
[] - . ³ , , .
array db 0, 10, 20, 30, 40, 50, 60; :
:
mov BX,5
mov AL,array [5]; AL 5, 50.
:mov BX,offset array
mov AL,5 [BX]
mov AL, [BX] +5
mov AL, [BX+5]
1.6 -
' ( ). ³ , :
[BX] [SI] | ( DS: [BX] [SI]) |
[BX] [DI] | ( DS: [BX] [DI]) |
[BP] [SI] | ( SS: [BP] [SI]) |
[BP] [DI] | ( SS: [BP] [DI]) |
|
|
:
[BX+SI] |
[ +BX+SI] |
[BX+SI] + |
, , . , ( ), - (SI DI). , , - , , .
1.7 - .
' ( ). ³ .
. , . - , ( '), . .
.
24
syms db ''
db ''
mov BX,12mov SI,6
mov DL,syms [BX] [SI]; DL 6 , ASCII
:
mov BX,offset syms
mov SI,6
mov DL,12 [BX] [SI]
2. :
1. EMU 8086 , 1:
2. COM.
3. , : , .
4. , .com .
5. 5 , .
6. 00FFh. ' , , .
7. , .
8. ϳ , , ' , .
9. .
3.
X Y?
MOV [si], cx
MOV si, cx?
MOV dx, offset message?
: [BX] [SI], [BX] [DI], [BP] [SI], [BP] [DI]?
5.
MOV AL, DS: 17h?
:
MOV AL, DS: [17h]?
6. , ( 1), , :
;
?
7. ' ?
8. , . ?
9. . ?
10. ?
˳ 1.
TITLE MOVE2 MOVE2 SEGMENT 'CODE' ASSUME CS: MOVE2, DS: DATA MYPROC PROC OUTPROC:
|
|
MOV AX,DATA MOV DS,AX MOV AH,BH MOV AH,X MOV CH,3 MOV AX,3 MOV AX,Y MOV [SI],CX MOV [BP],CX MOV [SI],258 MOV [BP+516],1027 MOV BYTE PTR X,255 MOV BYTE PTR [DI+515],4 MOV WORD PTR [DI+515],4 MOV [DI+BP+515],258 MOV AX, [SI+BX+258] MOV AH,4CH INT 21H MYPROC ENDP MOVE2 ENDS DATA SEGMENT X DB 1 Y DW 2 DATA ENDS END MYPROC