8086汇编源程序调试

来源:百度知道 编辑:UC知道 时间:2024/05/22 19:50:00
题目的要求:
接收并且显示键盘输入的一串字符,换行后,显示统计出的大写'A'的个数;
有就显示,无就写''0''(输入字母A的个数在0-9之间直接显示,10个或10个以上时显示错误提示)

S SEGMENT STACK
DW 80 DUP(?)
S ENDS
D SEGMENT
X DB 10,?,10 DUP(?)
D ENDS
C SEGMENT
ASSUME SS:S,CS:C,DS:D
MOV AX,D
MOV DS,AX
MOV DX,OFFSET X
MOV AH,10
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
MOV DL,'9'
MOV AH,2
INT 21H
MOV BL,X+1
MOV BH,0
LEA SI,X
MOV AX,'$'
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
C ENDS
END

它在DOS下显示结果是这样的:C:\MASM5.0\MASM50\1
AAAAAAAAA
9

上面源程序怎么么样修改,使它输入10或10个以上字符时出现错误提示.

我是最近才学的,所以不怎么会弄?

S SEGMENT STACK
DW 80 DUP(?)
S ENDS
D SEGMENT
X DB 10,?,10 DUP(?)
D ENDS
C SEGMENT
ASSUME SS:S,CS:C,DS:D
MOV AX,D
MOV DS,AX
MOV DX,OFFSET X
MOV AH,10d
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
xor bx,bx
LEA SI,X+1
sub cx,cx
mov cl,[si]
inc si
rotate:
cmp [si],'A'
jl next1
cmp [si],'Z'
jg next1
inc bh
next1:
loop rotate
mov dl,bh
cmp dl,0
jz exit:
mov ah,2h
INT 21H
exit:
mov ah,2h
mov dl,0
int 21h
MOV AH,4CH
INT 21H
C ENDS
END