📄 textbook-p180-exerse18.asm
字号:
DATA SEGMENT ;定义数据段
;题目:统计一个字符串中大写字母和小写字母的个数
ARRAY DB 'AaBCbc'
LEN EQU $-ARRAY ;共有LEN个数据
X DB 0 ;记录大写字母的数量
Y DB 0 ;记录小写字母的数量
DATA ENDS
CODE SEGMENT 'CODE' ;定义代码段
ASSUME CS:CODE, DS:DATA
START: MOV AX,DATA
MOV DS,AX ;数据段地址送DS中
MOV CX,LEN ;共有LEN个数据->CX
MOV SI,OFFSET ARRAY ;数组偏移地址->SI寄存器
AGN: MOV DL,5AH
CMP [SI],DL ;Z的ASCII编码是5AH
JBE BIG ;[SI]<=5AH时跳转BIG
INC Y ;[SI]>5AH时,Y的值加1,记录小写字母的数量Y<-Y+1
LOP: INC SI ;数组地址+1,使指针指向下一个元素
DEC CX ;个数-1,控制跳转的次数
JCXZ EXT ;比较完N个数转到EXT
JMP AGN ; 没比较完转到AGN,接着比较下一个
BIG: INC X ;X的值+1,记录大写字母的数量
JMP LOP ;转到取下一个数
EXT: MOV DL,X ;在屏幕上显示X的值
ADD DL,30H ;把X中的值转换为相应的ASCII值
MOV AX,02H
INT 21H
MOV DL,Y ;在屏幕上显示Y的值
ADD DL,30H ;把Y中的值转换为相应的ASCII值
MOV AX,02H
INT 21H
MOV AX,4C00H ;结束程序返回DOS
INT 21H
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -