(MS-DOS) EXE-:
1. .
2. , DS.
3. .
4. DS .
ASSUME (. .5.1). ASSUME EXE-:
ASSUME CS:codesg,DS:datasg,SS:stacksg,ES:nothing
, EXE- (. .6.1). , (. Program Segment Prefix (PSP)). , 256 (100H ) (, , ). ( PSP) DS, PSP, . , FAR (. .5.2), .
. , ( 0000H) INT 20H, . PSP , , MS-DOS.
, ( ) ( ) .
( RET) () IP ( PSP) CS. S:IP PSP MS-DOS.
NEAR, RET () IP, CS . ( CS:0 , ), .
, RET ( ).
|
|
, DS DS ( ). .2, .
, EXE- , .
EXE- .6.2.
. 6.1. EXE-
;--------------------- ---------------------
datasg SEGMENT PARA 'Data'
x DB 24
y DB 24H
z DB?
datasg ENDS
;--------------------- ------------------------
odesg SEGMENT PARA 'Code'
main PROC FAR
;
ASSUME CS:codesg,DS:datasg,SS:stacksg,ES:nothing
;
PUSH DS; DS
;
XOR AX,AX; AX
PUSH AX; AX
;
MOV AX,datasg
MOV DS,AX; datasg DS
;
RET
main ENDP
codesg ENDS
;------------------ -------------------------
stacksg SEGMENT PARA STACK 'Stack'
DW 128 DUP(?);
stacksg ENDS
END main
. 6.2. EXE-