各位大侠帮忙看下。。。
实验内容是:计算1+2+3+...+n=?,其中n通过键盘输入,累加和小于2的16次方。
程序如下:DATA SEGMENT
INF1 DB"Please input a number(1-65535):$"
IBUF DB 7,0,6 DUP(?)
OBUF DB 6 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET INF1
MOV AH,09H
INT 21H
MOV DX,OFFSET IBUF
MOV AH,0AH
INT 21H
MOV CL,IBUF+1
MOV CH,0
MOV SI,OFFSET IBUF+2
MOV AX,0
AGAIN:MOV DX,10
MUL DX
AND BYTE PTR[SI],0FH
ADD AL,[SI]
ADC AH,0
INC SI
LOOP AGAIN
MOV AH,4CH
INT 21H
MOV CX,AX
MOV AX,0
MOV BX,1
LOOP2:ADD AX,BX
INC BX
LOOP LOOP2
MOV BX,OFFSET OBUF+5
MOV BYTE PTR[BX],'$'
MOV CX,10
LOOP1:MOV DX,0
DIV CX
ADD DL,30H
DEC BX
MOV [BX],DL
OR AX,AX
JNZ LOOP1
MOV DX,BX
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
运行结果是:
please input a number(1-65535):3
press any key to continue
但是并没有得到想要的结果啊?怎么弄的呢?