對鍵盤輸入的小寫字母用大寫字母顯示出來

;對鍵盤輸入的小寫字母用大寫字母顯示出來
DATA SEGMENT 
CRLF DB 0AH,0DH,'$'  ;換行
MESSAGE DB "CONTINUE(C) OR QUIT(Q)?",0AH,0DH,'$'  ;0AH 換行 ODH 空格 24H '$'
DATA ENDS

STACK SEGMENT PARA STACK
          DW 128 DUP(?)
TOP   LABEL WORD
STACK ENDS

CODE SEGMENT
          ASSUME CS:CODE,SS:STACK,DS:DATA
MAIN PROC FAR
START:
         MOV AX,DATA
MOV DS,AX
 
MOV AX,STACK
MOV SS,AX
LEA SP,TOP
 
L1: MOV AH,1    ;INT 21H的1號功能是獲得鍵盤輸入並放在AL中
INT 21H
 
PUSH AX     ;保護鍵盤輸入
 
MOV AH,9
LEA DX,CRLF
INT 21H
 
MOV AH,2
POP DX
SUB DL,20H   ;將小寫字母轉化爲大寫字母 ASCII碼相差20H
INT 21H
 
MOV AH,9
LEA DX,CRLF
INT 21H
 
MOV AH,9
LEA DX,MESSAGE
INT 21H
 
MOV AH,1
INT 21H
PUSH AX
 
MOV AH,9
LEA DX,CRLF
INT 21H
 
POP DX
CMP DL,'C'
JE  L1
 
MOV AH,4CH
INT 21H
CODE ENDS 
MAIN ENDP
         END START
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章