4.1. -:
.286
TITLE CALLMUL4 (EXE) .
;-------------------------------------------------------
EXTRN SUBMUL4: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
PUSH PRICE
PUSH QTY
CALL SUBMUL4;
RET; DOS
BEGIN ENDP
CODESG ENDS
END BEGIN
callmul4.asm.
4.2. :
.286
TITLE SUBMUL4
;------------------------------------------------------
CODESG SEGMENT PARA PUBLIC 'Code'
SUBMUL4 PROC FAR
ASSUME CS:CODESG
PUBLIC SUBMUL4
PUSH BP
MOV BP,SP
MOV AX,[BP+8];
MOV BX,[BP+6];
MUL BX; DX:AX
POP BP
RET 4; DOS
SUBMUL4 ENDP
CODESG ENDS
END
submul4.asm.
4.3. .
.
. PUSH .
, submul4, PRICE QTY.
:
- PUSH DS . DOS.
- PUSH AX .
- PUSH PRICE (2500).
- PUSH QTY (0140).
- CALL CS.
- CALL , IP.
BP , BP, .
BP SP, BP, SP. SP . SP 2.
6 , SP 12. (PRICE) 3- , 3- BP 8, 4 . (QTY) 4- , 4- BP 6, 3 . , BP . .
|
|
BP , SP 2.
RET "" . :
- IP.
- SP 2.
- CS.
- SP 2.
RET :
RET 4
4 , ( ). RET SP. , . SP - .
4.4. . DEBUG. CS, IP, SP, BP , SS. .
:
1. .
2. .
:
1. , MAINPRO SUBPRO. ) MAINPRO , SUBPRO ?
) SUBPRO , MAINPRO?
2. , MAINPRO QTY DB, VALUE DW PRICE DW. SUBPRO VALUE QTY PRICE. ) MAINPRO , ? ) SUBPRO , ?
:
1. ) EXTRN SUBPRO:FAR ) PUBLIC SUBPRO
2. ) PUBLIC QTY,VALUE,PRICE ) EXTRN QTY:WORD,VALUE:WORD,PRI-
CE:WORD