📄 chang.asm
字号:
DATA SEGMENT
KBDATA DB 51 DUP(?)
NEWLINE DB 0DH,0AH,'After Chang:',0DH,0AH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
ORG 100H
START: MOV AX,DATA ;Link ds to data
MOV DS,AX
XOR BX,BX ;Clear bx
MOV AH,1H
INTPUT: INT 21H ;Invoke 21 int
CMP AL,13 ;If enter goto output
JE OUTPUT
CMP AL,97 ;Less than 'a' store it
JB STORE
CMP AL,122 ;Large than 'z' store it
JA STORE
XOR AL,20H ;Else upcase it
STORE: MOV KBDATA[BX],AL ;Store it in KBDATA
INC BX ;Add bx by 1
JMP INTPUT ;Loop it
OUTPUT: LEA DX,NEWLINE ;Give dx the string's address
CALL OUTSTR ;Call subprograme
MOV CX,BX ;Give the loop number
XOR BX,BX
MOV AH,02H
PRINT: MOV DL,KBDATA[BX] ;Call int 21H's 2H function
INC BX
INT 21H
LOOP PRINT
MOV AH,4CH
INT 21H
OUTSTR PROC NEAR ;Output string
MOV AH,09H
INT 21H
RET
OUTSTR ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -