当前位置: 首页 > 文档资料 > 汇编语言教程 >

10.2 分类统计程序举例

优质
小牛编辑
123浏览
2023-12-01

例10.6 用键盘输入任意一字符串,分类统计该字符串中每个数字和字母的出现次数。

解:
.MODEL SMALL
.DATA

N = 80

Buff

DB N,?, N DUP(?)

Num

DW 36DUP(0);每个字用于存放'0'~'9','A'~'Z'出现的个数
.CODE

.STARTUP

LEA

DX,Buff

MOV

AH, 0AH

INT

21H;输入一个字符串

XOR

CH,CH

MOV

CL, Buff+1;CX=输入字符串的个数

LEA

SI, Buff+2

XOR

BX, BX

.REPEAT

MOV

BL, [SI];考虑下面的思考题

INC

SI

.IF BL>='0' && BL<='9'

;分类统计'0'~'9'中的每个数字的个数

SUB

BL, '0'

ADD

BX, BX

INC

Num[BX]

.CONTINUE

.ENDIF

.IF BL>='a' && BL<='z'

SUB

BL, 20H;小写变大写

.ENDIF

.IF BL>='A' && BL<='Z'

;分类统计'A'~'Z'中的每个字母的个数

SUB

BL, 'A'-10

ADD

BX, BX

INC

Num[BX]

.ENDIF

.UNTILCXZ

.EXIT 0

END

思考题:在本例中,用指令“MOVBL, [SI]”来把当前检测的字符存入BL,当然,我们也可以用AL来代替BL,有关指令要作相应的改动,但这样做,会更方便吗?希望读者能知道:为什么要用BL,而不用AL?