从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