⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 textbook-p180-exerse18.asm

📁 大学计算机系教材:80x86汇编语言程序设计 马力妮主编 课本-P180-5.4习题-第18题:统计一个字符串中大写字母和小写字母的个数
💻 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 + -