就是代码已经写完了 可以运行但是出不了结果
如图
DATAS SEGMENT
A DB 'Input a number:','$'
B DB 10,?,10 dup('$')
D DB 'input error $';
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV DX,offset A
MOV AH,09H
INT 21H ;输出提示语
MOV DX,offset B
MOV AH,0aH
INT 21H;输入字符串
MOV AH,02H
MOV DL,0dH
INT 21H
MOV AH,02H
MOV DL,0aH
INT 21H;换行
LEA SI,A+1
MOV AX,[SI]
MOV AX,00H
MOV CX,AX;读取字符串长度
MOV BX,00H
LEA SI,A+2
S1: MOV AX,00H
MOV AL,[SI]
SUB AL,30H
ADD AX,BX
CMP CX,01H
JBE ONE
MOV DX,0aH
MUL DX
MOV BX,AX
ADD SI,01H
LOOP S1;将输入的字符串转换为整数
ONE:MOV CX,00h
MOV CX,AX
CMP AX,361;判断得出的数是否符合要求
JBE EXIT
MOV DX,offset D
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
EXIT:MOV AX,00H
MOV BX,01H
S2: ADD AX,BX
ADD BX,01H
LOOP S2;累加
PUSH AX
MOV BX,0aH
MOV BL,00H
MOV DX,00h
TWO:DIV BX
ADD CX,01H
MOV DX,00H
CMP AX,0aH
JAE TWO
ADD CX,01H
LEA SI,A+2
ADD SI,CX
SUB SI,01H;计算所累加和和长度
POP AX
S3: MOV BX,1
DIV BX
ADD DX,30H
MOV [SI],DL
SUB SI,01H
MOV DX,00h
LOOP S3;将所累加的和转换为字符串
MOV DX,offset A+2
MOV AH,09H
INT 21H;输出字符串
;
MOV AH,4CH
INT 21H
CODES ENDS
END START