【汇编】统计该串字符中的ASCII码在42H~45H之间的字符个数
程序员文章站
2024-03-15 09:12:41
...
从BUF单元开始存有一字符串(长度<255),编程实现统计该串字符中的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
上一篇: DenseNet