PUSH POP , , "" . - BP.
BP - , , :
MOV BP, SP
MOV AX, [BP]
AX .
MOV AX, [BP+2]
AX ( 2),
MOV AX,[BP+4]
..
BP . SP , , .. SP - (.. [SP+4] ). , BP, SS (.. ). , SS , :
MOV AX, SS:[BX+4]
, BP .
2.3.
1) , ( ). SP , .
2) , , . , ( , ).
3) , ( ). , . , . .
:
- DB.
.
, , ( , - ). . , .
. .
, ( RET) , ( DS 0).
|
|
2.4.
:
;
( ).
, .
3. 5
3.1.
:
.
.
:
DOS, MASM, AFD.
3.2.
3.2.1.
. , ( 64). ( - ) , :
Cl SEGMENT
ASSUME CS: Cl,...
START: MOV AX, 0
...
JMP FAR PTR L;goto L
...
Cl ENDS
C2 SEGMENT
ASSUME CS: C2
L: INC BX
...
C2 ENDS
ASSUME, ( ) CS ( , ). , , .
, , CS IP: CS , , IP , .
IP, . . , (, L 2). . CS, IP: CS (CS:=C2), IP (IP:=offset L).
: ( ).
:
JMP FAR PTR <>
FAR () , , . CS , , IP :
CS:=seg <>; IP:=offset <>
, , , L.
:
JMP < >
|
|
, seg:ofs, "" : ofs , seg . , . . CS seg, IP - ofs:
CS:= [ +2]; IP:= [ ]
:
X DD L;X:offset L, X+2:seg L
...
JMP X;goto L(CS:=seg L,IP:=offset L)
X, , , , , X . , , . PTR:
JMP DWORD PTR X
3.2.2. ()
, , , . , , , , , . , , , . . .
(/) FINISH (. ), - , (. ). (. ).
:
< > PROC <>
< >
< > ENDP
( ) PROC (procedure), - ENDP (end of procedure). - , .
PROC - NEAR (), FAR (). , , NEAR ( NEAR ). NEAR "", FAR - "". , , , ( , ). .