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

📄 rjexp11.asm

📁 显示屏相关程序实现显示屏点亮控制等功能.
💻 ASM
字号:
CRLF  MACRO
      MOV  AH,02H
      MOV  DL,0DH
      INT  21H
      MOV  AH,02H
      MOV  DL,0AH
      INT  21H
ENDM
DATA  SEGMENT
MESS  DB  '请输入字符串,以回车结尾,全部字符串输入结束后,输入#',0DH,0AH,'$'
MESS1 DB  '请输入下一个字符串,或者按 # 结束全部输入:',0DH,0AH,'$'
MESS2 DB  '最长的一个字符串是:',0DH,0AH,'$' 
MESS3 DB  0DH,0AH,'最短的一个字符串是:',0DH,0AH,'$'
BUFF1 DB  256 DUP(?)     ;存放当前输入行
BUFF2 DB  256 DUP(?)     ;存放最长的输入行
BUFF3 DB  256 DUP(?)     ;存放最短的输入行
REGL  DW  ?
REGS  DW  ?
DATA  ENDS
STACK SEGMENT 
STA   DB    50 DUP(?)
TOP   EQU  LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START:  MOV  AX,DATA
        MOV  DS,AX            ;初始化
        MOV  ES,AX
        MOV  AX,STACK
        MOV  SS,AX
        MOV  SP,TOP
        MOV  REGL,0
        MOV  REGS,00FFH
        MOV  AH,09H
        MOV  DX,OFFSET MESS   ;显示提示信息
        INT  21H
SSS:    MOV  SI,OFFSET BUFF1  ;当前输入行缓冲区首址
KKK:    MOV  AH,01H
        INT  21H              ;读取键入字符
        CMP  AL,'#'
        JZ   PPP              ;是结束标志字符`#`则转PPP
        MOV  [SI],AL          ;键入字符保存在缓冲区中
        INC  SI               ;指针加1
HHH:    CMP  AL,0DH          ;是回车键则转GGG
        JZ   GGG
        JMP  KKK
GGG:    CRLF
        DEC  SI
        MOV  AL,'$'
        MOV  [SI],AL
        MOV  AH,09H
        MOV  DX,OFFSET MESS1
        INT  21H               ;提示键入下一字符行
        MOV  BX,OFFSET BUFF1
        SUB  SI,BX
        INC  SI                ;计算本次输入行的长度
        CMP  SI,REGL
        JBE  BB1               ;不长则转BB1
        MOV  REGL,SI             ;修改长度计数值REGL
        MOV  CX,SI
        MOV  DI,OFFSET BUFF2
CCC:    MOV  AL,[BX]
        MOV  [DI],AL
        INC  BX
        INC  DI
        LOOP CCC     ;BUFFER1复制到BUFFER2中
BB1:    CMP  SI,REGS
        JNBE  BBB
        MOV   REGS,SI
        MOV   CX,SI
        LEA   DI,BUFF3
CC1:    MOV  AL,[BX]
        MOV  [DI],AL
        INC   BX
        INC   DI
        LOOP  CC1
BBB:    JMP  SSS
PPP:    CRLF
        MOV  AH,09H
        MOV  DX,OFFSET MESS2
        INT  21H
        MOV  AH,09H
        MOV  DX,OFFSET BUFF2
        INT  21H            ;显示最长的行
        MOV  AH,09H
        LEA  DX,MESS3
        INT  21H
        MOV  AH,09H
        LEA  DX,BUFF3
        INT  21H            ;显示最短的行
        MOV  AX,4C00H
        INT  21H             ;返回DOS
CODE    ENDS
END     START

⌨️ 快捷键说明

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