汇编字母大小写转换
;这是自动生成的代码模板
;(可以输入任意长度大小写或大小写混合字符串,并转换成纯大写或小写字符串)
DATAS SEGMENT ;数据段
DATA1 DB 100 DUP(?)
STRING1 DB 0DH,0AH,'$'
STRING2 DB 'PLEASE INPUT STRING:',0DH,0AH,'$'
STRING3 DB 'THE RESULT=',0DH,0AH,'$'
DATAS ENDS
STACKS SEGMENT STACK ;堆栈段
DW 128 DUP(?) ;注意这里只有128个字节
STACKS ENDS
CODES SEGMENT ;代码段
ASSUME CS:CODES,DS:DATAS
START: MOV AX,DATAS ;初始化
MOV DS,AX
MOV ES,AX
MOV BX,0
LEA DX,STRING2 ;提示输入
MOV AH,09
INT 21H
INPUT:
MOV AH,01 ;输入字符放在AL中
INT 21H
CMP AL,0DH
JE HUANHAN
CMP AL,5BH
JNC CHANGE
MOV DATA1[BX],AL ;AL中的字符存入DATA1的第BX位
INC BX
LOOP INPUT
CHANGE:
SUB AL,20H ;小写转大写
;ADD AL,20H ;大写转小写
MOV DATA1[BX],AL
INC BX
JMP INPUT
HUANHAN:
LEA DX,STRING1 ;换行,回车
MOV AH,09
INT 21H
LEA DX,STRING3 ;提示输出
MOV AH,09
INT 21H
SHUCHU:
MOV DATA1[BX],'$'
LEA DX,DATA1 ;把字符串的首地址放进DX
MOV AH,09 ;输出DATA1中已经改变了的字符串
INT 21H
MOV AX,4C00H ;退出程序
INT 21H
CODES ENDS
END START