汇编语言 利用宏调用统计大写字母小写字母个数

来源:百度知道 编辑:UC知道 时间:2024/05/29 18:01:51
编写宏命令,宏名定义为CRLF,在宏中实现输出回车、换行操作。从键盘输入一个字符串,放至数据段中IN_STR开始的内存单元,然后统计其中小写字母的个数,大写字母的个数,以及其它字符的个数,分别放至数据段中UPPER LOWER OTHER开始的内存单元。,将统计结果在屏幕上显示输出,每输出一个结果都要回车换行操作,显示结果如下
输入:hELLo world!
输出:
UPPER:3
LOWER:7
OTHER:2

DSEG SEGMENT
IN_STR DB 80,?,80 DUP (?)
UPPER DB 0
LOWER DB 0
OTHER DB 0
MSG1 DB 'UPPER:$'
MSG2 DB 'LOWER:$'
MSG3 DB 'OTHER:$'
DSEG ENDS
CSEG SEGMENT
assume cs:CSEG, ds:DSEG
MAIN PROC FAR ;主程序入口
mov ax, dseg
mov ds, ax
;此处添加主程序代码
CRLF MACRO
mov dl,0ah
mov ah,2
int 21h
mov dl,0dh
mov ah,2
int 21h
ENDM
CALL TJ;统计个数
LEA DX,MSG1
CALL DISP
MOV BL,UPPER
CALL DISPD;以十进制形式显示
CRLF;显示回车换行
LEA DX,MSG2
CALL DISP
MOV BL,LOWER
CALL DISPD;以十进制形式显示
CRLF;显示回车换行
LEA DX,MSG3
CALL DISP
MOV BL,OTHER
CALL DISPD;以十进制形式显示
;按任意键退出
mov ah,1
int 21h
mov ax, 4c00h ;程序结束,返回到操作系统系统
int 21h
MAIN ENDP
TJ PROC
MOV DX,OFFSET IN_STR
MOV AH,0AH
INT 21H
crlf
mov cL,[IN_STR+1]
MOV CH,0
lea si,IN_STR+2
next:
CMP byt