汇编程序问题,高手救命!~~

来源:百度知道 编辑:UC知道 时间:2024/05/14 14:25:29
题目:键入一字符串(216字符)到缓冲区BUF中,编程序完成以下
1:统计a出现的个数,并显示输出
2:统计非数字个数并显示输出
3:显示串中ASCII最小的字符
急,确认后追加50分,谢拉!~~
最好是10进制的,16的还得换算,嘿嘿,麻烦大虾拉

搞定了,自己运行看看结果吧,可以最多统计100个a的次数和100个非数字字符。并且实现了用十进制输出,实现这个着实费脑子和时间
DATAS SEGMENT
DA1 DB 216,0,216 DUP(?)
DA2 DB 'putin the strings $'
DA3 DB 0AH,0DH,'a appears times as follow',0AH,0DH,'$'
DA4 DB 0AH,0DH,'the number of non-number',0AH,0DH,'$'
DA5 DB 0AH,0DH,'the smallest char',0AH,0DH,'$'
DATAS ENDS

STACKS SEGMENT
STACKS ENDS

CODES SEGMENT 'CODE'
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
LEA DX,DA2
MOV AH,09H
INT 21H

LEA DX,DA1
MOV AH,0AH
INT 21H
MOV SI,DX
MOV AX,0
MOV CH,0
MOV CL,[SI+1]
PUSH SI
PUSH CX
AGAIN1:
MOV DL,[SI+2]
CMP DL,61H
JNE NEXT
MOV AH,AL
AND AH,0FH
CMP AH,09H
JNE GOOD
ADD AL,06H
GOOD:
INC AL
NEXT:
INC SI
LOOP AGAIN1

LEA DX,DA3
MOV BL,AL