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

📄 rjexp7.asm

📁 显示屏相关程序实现显示屏点亮控制等功能.
💻 ASM
字号:
CRLF  MACRO
      MOV  AH,02H
      MOV  DL,0DH
      INT  21H
      MOV  AH,02H
      MOV  DL,0AH
      INT  21H
ENDM  
DATA  SEGMENT
MESS1  DB  '输入字符串,按空格或回车键结束$'
MESS2  DB  '字符总数= $'
MESS3  DB  '非数字字符总数= $'
MESS4  DB  '数字字符总数= $'
TOTAL  DW  ?
DATA   ENDS
STACK  SEGMENT
STA    DW  32 DUP (?)
TOP    DW  ?
STACK  ENDS
CODE   SEGMENT
ASSUME  CS:CODE,DS:DATA,ES:DATA,SS:STACK
START:  MOV  AX,DATA
	     MOV  DS,AX
	     MOV  ES,AX
	     MOV  SP,TOP                 ;初始化
	     MOV  BX,0000H               ;计数值清0
	     MOV  AH,09H
	     MOV  DX,OFFSET MESS1
	     INT  21H
	     CRLF
XXX:    MOV  AH,01H
	     INT  21H                    ;接收键入字符
	     CMP  AL,20H
	     JZ   UUU       ;是空格键则转UUU
	     CMP  AL,0DH
	     JNZ  III
	     CRLF           ;是回车键则转UUU
	     JMP  UUU
III:    CMP  AL,30H
	    JB   YYY
	    CMP  AL,39H
	     JBE  VVV       ;`0-9`转VVV
YYY:    INC  BX        ;计数值加1
VVV:    INC  TOTAL
	    JMP  XXX
UUU:    CRLF
	     MOV  AH,09H
	     LEA  DX,MESS2  ;显示字符总数
	     INT  21H
	     MOV  AX,TOTAL
	     CALL DISP
	     MOV  AH,02H
	     MOV  DL,'H'
	     INT 21H
	     CRLF           ;回车换行
	MOV  AH,09H    
	MOV  DX,OFFSET MESS3
	INT  21H       ;显示非数字字符总数
	MOV  AX,BX
	CALL DISP     
	MOV  AH,02H
	MOV  DL,'H'
	INT  21H       ;十六进制数标志
	CRLF
	MOV  AH,09H
	LEA  DX,MESS4    ;显示数字字符总数
	INT  21H
	MOV  AX,BX
	SUB  TOTAL,AX
	MOV  AX,TOTAL
	CALL DISP
	MOV AH,02H
	MOV DL,'H'
	INT 21H
	MOV  AX,4C00H
	INT  21H
DISPP   PROC NEAR      ;显示子程序,显示AL中的数按十六进制数方式
	MOV  BL,AL     ;AL中数送BL
KKK:    MOV  DL,BL
	MOV  CL,04
	ROL  DL,CL
	AND  DL,0FH
	CALL DISPL      ;显示字节高位
	MOV  DL,BL
	AND  DL,0FH
	CALL DISPL      ;显示字节低位
	RET
DISPP   ENDP
DISPL   PROC NEAR
	ADD  DL,30H     ;由数值转为参应字符的ASCII码
	CMP  DL,3AH
	     JB   DDD        ;是0-9转DDD
	     ADD  DL,27H     ;是A-F
DDD:    MOV  AH,02H
	     INT  21H        ;显示DL中字符
	     RET             ;返回
DISPL   ENDP            ;显示子程序,显示AX中的数按十六进制数方式
DISP    PROC NEAR
	     PUSH BX
	     PUSH CX
	     PUSH DX
	     PUSH AX          ;入栈保存
	     MOV  AL,AH
	     CALL DISPP       ;显示高字节
	     POP AX
	     CALL DISPP
	     POP  DX
	     POP  CX
	     POP  BX
	     RET              ;出栈
DISP     ENDP
CODE    ENDS
		END     START

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -