;已知字符串 STRING 以‘$’为结束标志;统计其中小写字母的个数,结果送到 COUNT 单元,
;并把该字符串中的小写字母变成大写字母,其它字符保持不变。要求分别在屏幕上输出原字符串以及修改后的字符串
DATA SEGMENT
STRING DB 'ABcdasjkoJHASJAB1881NX','$';定义字符串,以'$'作为结束标志
LEN DB EQU $-STRING ;计算得到字符串长度
COUNT DB 0 ;初始化COUNT值为0
ENTER DB 0AH,0DH,'$' ;定义回车符
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE ;数据段代码段声明
START:
MOV AX,DATA
MOV DS,AX
LEA DX,STRING ;输出原字符串
MOV AH,09H
INT 21H
LEA DX,ENTER ;回车换行
MOV AH,09H
INT 21H
XOR CX,CX
MOV CL,LEN ;设定循环次数为字符串长度
LEA BX,STRING ;BX存放字符串首地址
L:
MOV AL,[BX] ;数组元素存放到AL中
CMP AL,'a' ;比较AL与'a'
JAE NEXT ;大于等于'a'则小写条件满足一半,跳转NEXT部分
JMP CONTINUE ;小于'a'肯定不是小写字符,跳转公共部分
NEXT:
CMP AL,'z' ;继续比较AL与'z'
JA CONTINUE ;大于'z'则条件不满足,跳转公共部分
INC COUNT ;COUNT加1
SUB AL,20H ;小写字符转大写
MOV [BX],AL ;修改原字符串
CONTINUE:
INC BX ;字符串指针移动
LOOP L ;循环比较下一个字符
LEA DX,STRING ;输出修改后的字符串
MOV AH,09H
INT 21H
LEA DX,ENTER ;回车换行
MOV AH,09H
INT 21H
ADD COUNT,30H;把COUNT转成ASIIC码,以字符形式输出
MOV DL,COUNT
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
已知字符串 STRING 以‘$’为结束标志;统计其中小写字母的个数,结果送到 COUNT 单元,并把该字符串中的小写字母变成大写字母,其它字符保持不变。要求分别在屏幕上输出原字符串以及修改后的字
于 2024-04-17 17:49:04 首次发布