.
.
PUBLIC SUBPROG
SUBPROG.
.
.
RET
CALL MAINPROG "", SUBPROG ( , SUBPROG ). EXTRN , SUBPROG FAR, .. .
, "" :
9 0000 ----
SUBPROG PUBLIC, , (MAINPROG) "" SUBPROG.
MAINPROG SUBPROG , tlink.exe.
EXTRN PUBLIC . . . , .
5. EXTRN :
EXTRN : [,...]
( ) EXTRN. PUBLIC. : ABS, BYTE, DWORD, FAR, NEAR, WORD. EQU .
6. PUBLIC , . :
PUBLIC [,...]
( ) PUBLIC. , . EQU-, .
:
1. : EXTRN PUBLIC .
1.1. -:
.286
TITLE CALLMUL1 (EXE)
;-------------------------------------------------------
EXTRN SUBMUL:FAR
;-------------------------------------------------------
STACKSG SEGMENT PARA STACK 'Stack'
DW 64 DUP(?)
STACKSG ENDS
;-------------------------------------------------------
DATASG SEGMENT PARA 'Data'
QTY DW 0140H
PRICE DW 2500H
DATASG ENDS
;--------------------------------------------------------
CODESG SEGMENT PARA 'Code'
BEGIN PROC FAR
ASSUME CS:CODESG,DS:DATASG,SS:STACKSG
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATASG
MOV DS,AX
MOV AX,PRICE;
|
|
MOV BX,QTY;
CALL SUBMUL;
RET; DOS
BEGIN ENDP
CODESG ENDS
END BEGIN
callmul1.asm.
1.2. :
.286
TITLE SUBMUL1
;-------------------------------------------------------
CODESG SEGMENT PARA 'Code'
SUBMUL PROC FAR
ASSUME CS:CODESG
PUBLIC SUBMUL
MUL BX;AX-,
;-
; DX:AX
RET; DOS
SUBMUL ENDP
CODESG ENDS
END SUBMUL
submul1.asm.
1.3. . DOS :
tasm.exe callmul1.asm+submul1.asm /l
obj- .
1.4. .
, . QTY PRICE. PRICE, - QTY, . EXTRN SUBMUL .
PUBLIC ( ASSUME), , SUBMUL. () (). DX:AX 002 4000.
- , . , .
, , . , , , . .
1.5. .
DOS :
tlink.exe callmul1.obj+submul1.obj
callmul1.exe.
1.6. DEBUG. CS IP . .
2. : PUBLIC .
2.1. -:
.286
TITLE CALLMUL2 (EXE)
;-------------------------------------------------------
EXTRN SUBMUL2:FAR
;-------------------------------------------------------
STACKSG SEGMENT PARA STACK 'Stack'
DW 64 DUP(?)
STACKSG ENDS
;-------------------------------------------------------
DATASG SEGMENT PARA 'Data'
QTY DW 0140H
PRICE DW 2500H
DATASG ENDS
;--------------------------------------------------------
CODESG SEGMENT PARA PUBLIC 'Code'
BEGIN PROC FAR
|
|
ASSUME CS:CODESG,DS:DATASG,SS:STACKSG
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATASG
MOV DS,AX
MOV AX,PRICE;
MOV BX,QTY;
CALL SUBMUL2;
RET; DOS
BEGIN ENDP
CODESG ENDS
END BEGIN
callmul2.asm.
2.2. :
.286
TITLE SUBMUL2
;-------------------------------------------------------
CODESG SEGMENT PARA PUBLIC 'Code'
SUBMUL2 PROC FAR
ASSUME CS:CODESG
PUBLIC SUBMUL2
MUL BX;AX-,
;-
; DX:AX
RET; DOS
SUBMUL2 ENDP
CODESG ENDS
END SUBMUL2
submul2.asm.
2.3. .
.
- . SEGMENT PUBLIC.
( ) , CODESG - PUBLIC ( NONE). .
.
2.4. .
DEBUG. CS IP . .
3. : .
3.1. -:
.286
TITLE CALLMUL3 (EXE)
;-------------------------------------------------------
EXTRN SUBMUL3:FAR
PUBLIC QTY,PRICE
;-------------------------------------------------------
STACKSG SEGMENT PARA STACK 'Stack'
DW 64 DUP(?)
STACKSG ENDS
;-------------------------------------------------------
DATASG SEGMENT PARA PUBLIC 'Data'
QTY DW 0140H
PRICE DW 2500H
DATASG ENDS
;--------------------------------------------------------
CODESG SEGMENT PARA PUBLIC 'Code'
BEGIN PROC FAR
ASSUME CS:CODESG,DS:DATASG,SS:STACKSG
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATASG
MOV DS,AX
CALL SUBMUL3;
RET; DOS
BEGIN ENDP
CODESG ENDS
END BEGIN
callmul3.asm.
3.2. :
.286
TITLE SUBMUL3
;------------------------------------------------------
EXTRN QTY:WORD,PRICE:WORD
;-------------------------------------------------------
CODESG SEGMENT PARA PUBLIC 'Code'
SUBMUL3 PROC FAR
ASSUME CS:CODESG
PUBLIC SUBMUL3
MOV AX,PRICE
MOV BX,QTY
MUL BX; DX:AX
RET; DOS
SUBMUL3 ENDP
CODESG ENDS
END SUBMUL3
submul3.asm.
3.3. .
.
QTY PRICE - , .
QTY PRICE PUBLIC. PUBLIC.
QTY PRICE EXTRN WORD. 2 . MOV, .
MOV :
|
|