COM- . , 64 (EXE- ). COM- . . . .
COM- (. .6.3) . , PSP . , , 100H. SEGMENT ( ) ORG 100H. IP 100H, , PSP . ORG 100H , , , , . , , , .
, ( PSP ), NEAR.
CS, SS DS ( , ) , , - .
( IP RET PSP MS-DOS) . , RET .
ASSUME. ASSUME COM-:
ASSUME CS:codesg,DS:codesg,SS:codesg,ES:nothing
COM- .6.4.
. 6.3. COM-
codesg SEGMENT PARA 'Code'
ASSUME CS:codesg,DS:codesg,SS:codesg,ES:codesg
ORG 100H; PSP
begin: JMP main;
; ---------------------------------------------------
fld1 DB 45;
fld2 DB 17;
fld3 DB?;
; ---------------------------------------------------
main PROC NEAR
MOV AL, fld1; 45D AL
ADD AL, fld2; 17D AX
MOV fld3,AL; fld3
RET
main ENDP
codesg ENDS
END begin
. 6.4. COM-
COM- , IP. , , , (. .4). .
|
|
, , , () ( IP) . ( ), , .
fld1 DB 12, 34, 71, 13, 45
len1 = $ fld1; 5
( ASCII) :
fld2 DB 'Hello, world'
len2 = $ fld2; 12
, , . , , .
fld3 DW 56, 12, 41H, 99
len3 = $ fld3; 8
, , , , , IP , , .
1. COM- EXE-?
2. EXE- FAR? FAR?
3. EXE- ?
4. EXE- 64 ?
5. COM- 64 ?
6. ?
7. , ORG 100H COM- , ( JMP)?
8. len ?
fld1 DW 33, 32
fld2 DB 'Cat'
fld3 DB 10 DUP(12)
len = $ fld1