【正确答案】NAME MODULE1
EXTRN SUBADD: FAR
STACK SEGMENT PARA STACK'STACK'
DW 100 DUP(?)
STACK ENDS
DATA SEGMENT 'DATA'
X DW 2DUP(?)
Y DW 2200H
Z DW 0FECDH
DATA ENDS
CODE SEGMENT PARA'CODE'
ASSUMECS: CODE,DS: DATA,SS: STACK
BG: MOV AX,DATA
MOV DX,AX
MOV AX,Y ;取加数
MOV BX,Z ;取被加数
CALL SUBADD
MOV X,AX
MOV X+2,CX
MOV AH,4CH
INT 21H
CODE ENDS
END BG
NAME MODULE2
CODE SEGMENT PARA'CODE'
SUBADD PROC FAR
ASSUME CS: CODE
PUBLIC SUBADD
MOV CX,00
ADD AX,BX ;AX←AX+BX
ADC CX,00 ;如有进位,保存在DX中
RET
SUBMUL ENDP
CODE ENDS
END
【答案解析】本题主要训练模块化程序设计方法。本题可划分为两个模块,主模块调用子模块,由子模块完成加法运算。过程是通过EXTRN及PUBLIC完成通信交互的。本题重点在于给出模块问调用的通信要求,所以程序较简单。