對鍵盤輸入的小寫字母用大寫字母顯示出來
;對鍵盤輸入的小寫字母用大寫字母顯示出來
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
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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.