;================================================
ASSUME CS:CODE, DS:DATA
DATA SEGMENT
MSG1 DB 13, 10, 'Please input X(0~2559): $'
MSG2 DB 13, 10, 'Please input Y(0~2559): $'
MSG3 DB 13, 10, '(X + Y) * 2 = $'
NNNN DW ?
DATA ENDS
;----------------------------------
CODE SEGMENT
START:
MOV AX, DATA
MOV DS, AX
;-----------------------
LEA DX, MSG1
MOV AH, 9
INT 21H
CALL INPUT
MOV NNNN, CX
LEA DX, MSG2
MOV AH, 9
INT 21H
CALL INPUT
ADD CX, NNNN
ADD CX, CX
LEA DX, MSG3
MOV AH, 9
INT 21H
MOV AX, CX
CALL OUTPUT
EXIT:
MOV AH, 4CH
INT 21H ;返回DOS
;----------------------------------
INPUT:
MOV BL, 10
MOV CX, 0
IN_X:
MOV AH, 7
INT 21H
CMP AL, 13
JE IN_END
CMP AL, '0'
JB IN_X
CMP AL, '9'
JA IN_X
MOV DL, AL
MOV AH, 2
INT 21H
MOV AL, DL
SUB AL, 30H
MOV AH, 0
XCHG AX, CX
MUL BL
ADD CX, AX
CMP CH, 0
JNZ IN_END
JMP IN_X
IN_END:
RET
;----------------------------------
OUTPUT:
MOV BX, 10
MOV CX, 0
OL1:MOV DX, 0
DIV BX
ADD DL, '0'
PUSH DX
INC CX
CMP AX, 0
JNZ OL1
MOV AH, 2
OL2:POP DX
INT 21H
LOOP OL2
RET
;----------------------------------
CODE ENDS
END START
;================================================