序接受用户键入的一行字符(字符个数不超过80个,该字 符串用回车符结束),并按字母、数字及其它字符分类计数,然后将结果存入以letter、digit和other为名的存储单元中。输出可以用十六进制数形式。
DATAS SEGMENT
STRING1 DB'Please input a string:$' ;输入提示信息
TRING2 DB'Number of chars:$ ';各类字符提示信息
STRING3 DB'Number of digits:$'
STRING4 DB'Number of others:$'
CHARS DB 0 ;字母
DIGIT DB 0 ;数字
OTHERS DB 0 其他
DATAS ENDS
STACKS SEGMENT ;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
LEA DX,STRING1 ;显示输入提示信息Please input a string
MOV AH,09H
INT 21H
MOV CX,100 ;设置循环次数足够大
L1:MOV AH,01H ;中断调用,单字符输入
INT 21H ;输入符号的ASCII代码在AL寄存器中
CMP AL,0DH ;若输入回车符则结束
JZ OVER2
CMP AL,30H ;若<30H(0),OTHERS++
JB OTHER
CMP AL,39H ;若>39H(9),跳转进一步比较
JA HIGHER1
JMP DIGITAL ;DIGIT++
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余3页未读,立即下载