📄 7_1.asm
字号:
PRINT MACRO
LEA DX,MSG2
MOV AH,09H
INT 21H
LEA DX, STRS
MOV AH, 09H
INT 21H
LEA DX,MESS
MOV AH,09H
INT 21H
LEA DX,MSG3
MOV AH,09H
INT 21H
LEA DX, STRU
MOV AH, 09H
INT 21H
LEA DX,MESS
MOV AH,09H
INT 21H
LEA DX,MSG4
MOV AH,09H
INT 21H
LEA DX, STRL
MOV AH, 09H
INT 21H
LEA DX,MESS
MOV AH,09H
INT 21H
LEA DX,MSG5
MOV AH,09H
INT 21H
LEA DX, STRE
MOV AH, 09H
INT 21H
ENDM
DATASEG SEGMENT
MSG1 DB 'Please Insert: ','$'
MSG2 DB 'Your Insert: ','$'
MSG3 DB 'LowToUp: ','$'
MSG4 DB 'UpToLow: ','$'
MSG5 DB 'ChangeTwo: ','$'
STRSLEN DB 20
ACTLEN DB ?
STRS DB 20 DUP(?), '$'
STRU DB 20 DUP(0), '$'
STRL DB 20 DUP(0), '$'
STRE DB 20 DUP(0), '$'
MESS DB 0DH,0AH,'$'
DATASEG ENDS
;********************************************************************
CODESEG SEGMENT
MAIN PROC FAR
START:
ASSUME CS:CODESEG, DS:DATASEG, ES:DATASEG
MOV AX, DATASEG
MOV DS, AX
MOV ES, AX
LEA DX,MSG1
MOV AH,09H
INT 21H
LEA DX,STRSLEN
MOV AH,0AH
INT 21H
LEA DX,MESS
MOV AH,09H
INT 21H
LEA SI, STRS
LEA DI, STRU
CALL TOUPPER
LEA SI, STRS
LEA DI, STRL
CALL TOLOWER
LEA SI, STRS
LEA DI, STRE
CALL ULCHG
PRINT
MOV AH, 4CH
INT 21H
MAIN ENDP
TOUPPER PROC
TULOOP:
MOV AL, [SI]
CMP AL, 'a'
JL TUSKIP
CMP AL, 'z'
JG TUSKIP
SUB AL, 20H
TUSKIP:
MOV [DI], AL
INC SI
INC DI
CMP AL, '$'
JNE TULOOP
TUOUT:
RET
TOUPPER ENDP
TOLOWER PROC
TLLOOP:
MOV AL, [SI]
CMP AL, 'A'
JL TLSKIP
CMP AL, 'Z'
JG TLSKIP
ADD AL, 20H
TLSKIP:
MOV [DI], AL
INC SI
INC DI
CMP AL, '$'
JNE TLLOOP
TLOUT:
RET
TOLOWER ENDP
ULCHG PROC
ULLOOP:
MOV AL, [SI]
CMP AL, 'A'
JL ULSKIP1
CMP AL, 'Z'
JG ULSKIP1
ADD AL, 20H
JMP ULSKIP2
ULSKIP1:
CMP AL, 'a'
JL ULSKIP2
CMP AL, 'z'
JG ULSKIP2
SUB AL, 20H
ULSKIP2:
MOV [DI], AL
INC SI
INC DI
CMP AL, '$'
JNE ULLOOP
ULOUT:
RET
ULCHG ENDP
CODESEG ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -