.


:




:

































 

 

 

 


CALL subprog




.

.

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 :

 





:


: 2015-10-01; !; : 402 |


:

:

80% - .
==> ...

1529 - | 1383 -


© 2015-2024 lektsii.org - -

: 0.03 .