欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【汇编】统计该串字符中的ASCII码在42H~45H之间的字符个数

程序员文章站 2024-03-15 09:12:41
...

从BUF单元开始存有一字符串(长度<255),编程实现统计该串字符中的ASCII码在42H~45H之间的字符个数,并将统计结果以二进制形式显示在屏幕上。

 

【汇编】统计该串字符中的ASCII码在42H~45H之间的字符个数

;FILENAME:	EXA131.ASM
.486
DATA SEGMENT USE16
BUF 	DB 		'BB'    ;开始存有一字符串
COUNT   EQU		$-BUF    ;count=字符串长度
DATA ENDS

CODE SEGMENT USE16
	ASSUME CS:CODE,DS:DATA
BEG:
	MOV 	AX,DATA
	MOV 	DS,AX
	MOV		BL,0    ;BL=满足条件的字符个数,初始值为0
	MOV		SI,0    ;BUF数组下标,初始值为0
	MOV 	CX,COUNT
	CALL	BIJIAO
	CALL	DISP
EXIT:
	MOV		AH,4CH
	INT 	21H
	
BIJIAO PROC
LAST:
	CMP 	BUF[SI],42H
	JC		NEXT	;<42H,jump
	CMP		BUF[SI],45H
	JA		NEXT	;>45H,jump
	INC		BL    ;8位
NEXT:
	INC		SI
	LOOP	LAST
	RET    ;子程序别忘记返回哟
BIJIAO ENDP

DISP PROC    ;以二进制输出,BL中存储的就是二进制
	MOV		CL,8    ;显示位8位
LAST:
	MOV		DL,'0'
	RCL		BL,1    ;带进位的循环左移
	JNC		NEXT    ;C=0,则跳转直接显示
	MOV		DL,'1'
NEXT:
	MOV		AH,2
	INT 	21H
	LOOP	LAST
	RET
DISP ENDP

CODE ENDS
	END BEG