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

📄 4-11.txt

📁 这一程序主要实现了字母的小写转大写、按照ASCII查找最大字母
💻 TXT
字号:
TITLE 4-11
DATA SEGMENT
DAT2  DB 0FFH
COUNT DB 10
DAT1  DB 200 DUP(?)
MESG0  DB 'PLEASE SELECT$'
MESG1  DB '1.CHANGE LETTER TO BIG LETTER$'
MESG2  DB '2.FIND THE MAX ASCII$'
MESG3  DB '3.SORT BY THE ASCII$'
MESG4  DB '4.SHOW THE TIME$'
MESG5  DB '5.EXIT$'
MESG6  DB 'PLEASE INPUT LETTER$'
MESG7  DB 'PLEASE set the time in the form of  hh:mm:ss$'
MESG8  DB 'Invalid time ,please set the time again!$'
MAX    DB ?
FLAG   DB -1
W10    DB 10
DATA ENDS
STACK1 SEGMENT PARA STACK 
DW 300 DUP(0)
STACK1 ENDS 
COSEG SEGMENT
ASSUME CS:COSEG,DS:DATA, SS:STACK1
START:MOV AX,DATA
      MOV DS,AX
   L1:LEA DX,MESG0
      MOV AH,09H
      INT 21H
      MOV AH,02
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
      LEA DX,MESG1
      MOV AH,09H
      INT 21H
      MOV AH,02
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
     LEA DX,MESG2
      MOV AH,09H
      INT 21H
      MOV AH,02
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
    LEA DX,MESG3
      MOV AH,09H
      INT 21H
      MOV AH,02
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
   LEA DX,MESG4
      MOV AH,09H
      INT 21H
      MOV AH,02
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
   LEA DX,MESG5
      MOV AH,09H
      INT 21H
      MOV AH,02
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
      MOV AH,0   ;AFTER SELECT
      INT 16H
      CMP AL,1BH
      JZ  EXIT
      CMP AL,31H
      JZ  A1
      CMP AL,32H
      JZ  A2
      CMP AL,33H
      JZ  A3
      CMP AL,34H
      JZ  A4
      CMP AL,35H
      JZ  EXIT
      JMP L1
A1:   CALL NUM1
      MOV AH,02
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
      JMP L1
A2:   CALL NUM2
      MOV AH,02
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
      JMP L1
A3:   CALL NUM3
      MOV AH,02
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
      JMP L1
A4:   CALL NUM4
      MOV AH,02
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
      JMP L1

EXIT: MOV  AH,4CH
      INT  21H      

 NUM1 PROC NEAR
  B1: LEA DX,MESG6
      MOV AH,09H
      INT 21H
      MOV AH,02
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
      MOV AH,0
      INT 16H
      CMP AL,1BH
      JZ  EXIT1
      LEA DX,DAT2
      MOV AH,0AH
      INT 21H
      MOV DL,0DH
      MOV AH,02H
      INT 21H
      MOV DL,0AH
      INT 21H
      MOV CL,COUNT
      MOV CH,0
      LEA SI,DAT1
   B2:MOV AL,[SI]
      CMP AL,61H
      JB  B3
      SUB AL,20H
      MOV [SI],AL
   B3:INC SI
      LOOP B2
      MOV CL,COUNT
      MOV CH,0
      MOV SI,CX
      MOV  DAT1[SI],24H
      LEA  DX, DAT1
      MOV  AH,09H
      INT  21H
      MOV AH,02
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
      JMP B1
EXIT1:RET
NUM1  ENDP 

NUM2 PROC NEAR
  C1: LEA DX,MESG6
      MOV AH,09H
      INT 21H
      MOV AH,02
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
      MOV AH,0
      INT 16H
      CMP AL,1BH
      JZ  EXIT2
      LEA SI,DAT2
      MOV DX,SI
      MOV AH,0AH
      INT 21H
      ADD SI,2
      MOV CL,COUNT
      MOV CH,0
      MOV AL,[SI]
 C3:  INC SI
      MOV BL,[SI]
      CMP AL,BL
      JA  C4
      MOV AL,BL
   C4:LOOP C3
      MOV MAX,AL
      MOV AH,02
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
      MOV DL,MAX
      INT 21H
      MOV AH,02
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
      JMP C1
EXIT2:RET
NUM2  ENDP 

NUM3 PROC NEAR
  D1: LEA DX,MESG6
      MOV AH,09H
      INT 21H
      MOV AH,02
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
      MOV AH,0
      INT 16H
      CMP AL,1BH
      JZ  EXIT3
      LEA DX,DAT2
      MOV AH,0AH
      INT 21H
      MOV DL,0DH
      MOV AH,02H
      INT 21H
      MOV DL,0AH
      INT 21H
      MOV CL,COUNT
      MOV CH,0
      MOV BX,CX
  D3: CMP FLAG,0
      JE  D5
      DEC BX
      MOV CX,BX
      MOV SI,0 
      MOV FLAG,0
  D4: MOV AL,DAT1[SI]
      CMP AL,DAT1[SI+1]
      JLE NEXT
      XCHG AL,DAT1[SI+1]
      MOV DAT1[SI],AL
      MOV FLAG,-1
 NEXT:INC SI
      LOOP D4
      JMP D3
   D5:MOV CL,COUNT
      MOV CH,0
      MOV SI,CX
      MOV  DAT1[SI],24H
      LEA  DX, DAT1
      MOV  AH,09H
      INT  21H
      MOV AH,02
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
      JMP D1
EXIT3:RET
NUM3  ENDP

NUM4 PROC NEAR
 G3:  LEA SI,DAT1
      MOV AH,2CH
      INT 21H
      MOV AL,CH    ;HOUR
      MOV AH,0
      DIV W10
      ADD AH,30H
      ADD AL,30H
      MOV [SI],AL
      INC SI
      MOV [SI],AH 
      INC SI
      MOV AL,3AH
      MOV [SI],AL
      INC SI
      MOV AL,CL   ;MINUTE
      MOV AH,0
      DIV W10
      ADD AH,30H
      ADD AL,30H
      MOV [SI],AL
      INC SI
      MOV [SI],AH 
      INC SI
      MOV AL,3AH
      MOV [SI],AL
      INC SI
      MOV AL,DH   ;SECOND
      MOV AH,0
      DIV W10
      ADD AH,30H
      ADD AL,30H
      MOV [SI],AL
      INC SI
      MOV [SI],AH
      INC SI
      MOV AL,24H
      MOV [SI],AL
      LEA DX,DAT1
      MOV AH,09H
      INT 21H
      MOV AH,02H
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
      LEA DX,MESG7 ;CALL FOR SET TIME
      MOV AH,09H
      INT 21H
      MOV AH,02H
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
      MOV BX,0FFFFH
  K0: MOV CX,0FFFFH
      MOV AH,1
      INT 16H
      JNZ G2
   K1:LOOP K1
      DEC BX
      JNZ  K0
      JMP G3
 G2:  MOV AH,0
      INT 16H
      CMP AL,1BH
      JZ  EXIT4
      LEA DX,DAT2
      MOV AH,0AH
      INT 21H
      MOV AH,02H
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
      LEA SI,DAT1
      MOV AL,[SI]  ;SET HOUR
      MOV AH,0
      SUB AL,30H
      MUL W10
      INC SI
      MOV AH,[SI]
      SUB AH,30H
      ADD AH,AL
      MOV CH,AH
      ADD SI,2
      MOV AL,[SI]  ;SET MINUTE
      MOV AH,0
      SUB AL,30H
      MUL W10
      INC SI
      MOV AH,[SI]
      SUB AH,30H
      ADD AH,AL
      MOV CL,AH
      ADD SI,2
      MOV AL,[SI]  ;SET SECOND
      MOV AH,0
      SUB AL,30H
      MUL W10
      INC SI
      MOV AH,[SI]
      SUB AH,30H
      ADD AH,AL
      MOV DH,AH
      MOV AH,2DH  ;SET SYSTEM TIME
      INT 21H
      CMP AL,0
      JNE G1
      JMP G3 
   G1:LEA DX,MESG8
      MOV AH,09H
      INT 21H
      MOV AH,02H
      MOV DL,0DH
      INT 21H
      MOV DL,0AH
      INT 21H
      JMP G2
EXIT4:RET
NUM4  ENDP
COSEG ENDS
      END START

⌨️ 快捷键说明

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