发布时间:2019-07-30 03:19:35
提示输入数字,输入任意数字int,点击Enter结束输入。输出“1+2+3+……+int”的值
DSEG SEGMENT
S0 DB 'INPUT N(1<N<256):$'
S1 DB 0DH, 0AH, '$'
N DB 5
DB 0
DB 5 DUP(0)
N0 DW 0
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG, DS:DSEG
START:
MOV AX, DSEG
MOV DS, AX
LEA DX, S0
MOV AH, 9
INT 21H
MOV AH,10
LEA DX, N
INT 21H
CALL CONVN2INT
MOV AH,9
LEA DX, S1
INT 21H
MOV CX, N0
MOV BX, 1
XOR AX, AX
M0:
ADD AX, BX
INC BX
LOOP M0
CALL PRINT
MOV AX, 4C00H
INT 21H
CONVN2INT PROC NEAR
XOR CX, CX
MOV CL, N+1
MOV SI, 2
XOR AX, AX
MOV BX, 10
C0:
MOV AL, [N+SI]
AND AL, 0FH
XCHG AX, N0
MUL BX
XCHG AX, N0
ADD N0, AX
INC SI
LOOP C0
RET
CONVN2INT ENDP
PRINT PROC NEAR
XOR CX, CX
MOV BX, 10
P0:
XOR DX, DX
DIV BX
XOR DX, 0E30H
PUSH DX
INC CX
CMP AX, 0
JNZ P0
P1:
POP AX
INT 10H
LOOP P1
RET
PRINT ENDP
CSEG ENDS
END START