标签:汇编 DL 变小 INT AH MOV 大写 21H STRING
;从键盘输入任意一串小写字符(字符个数可变),
;将输入的小写字符转换为相应的大写字符,并在显示器上显示输出。
;从键盘输入任意一串小写字符(字符个数可变),
;将输入的小写字符转换为相应的大写字符,并在显示器上显示输出。
DATAS SEGMENT
;此处输入数据段代码
INPUTSET DB 'PLEASE ENTER A STRING OF LOWERCASE LETTERS $'
STRING DB 30H
DB 0
DB 30H DUP('$')
COUNT EQU $-STRING
TIP DB 'THERE ARE ILLEGAL LETTERS! $'
;OUTLETTER DB COUNT
DATAS ENDS
STACKS SEGMENT
DW 20H DUP(0);此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV ES,AX
;此处输入代码段代码
;初始化
FIRST:
;MOV AX,0
;MOV STRING,AL
MOV DX,OFFSET INPUTSET
MOV AH,09H
INT 21H
MOV DL,0AH;回车
MOV AH,2
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H
;输入字符串
LEA DX,STRING
MOV AH,0AH
INT 21H
MOV CL,STRING+1
MOV SI,2
MOV DL,0AH;回车
MOV AH,02H
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H
;小写变大写
NEXT:MOV AL,STRING[SI]
;小写字符串判断
CMP AL,'a'
JB ERROTIP
CMP AL,'z'
JA ERROTIP
SUB AL,20H
MOV STRING[SI],AL;存得到的大写字母
INC SI
LOOP NEXT
MOV STRING[SI],'$'
MOV DX,OFFSET STRING
ADD DX,2
MOV AH,09H
INT 21H
MOV DL,0AH;回车
MOV AH,02H
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H
JMP EXIT
ERROTIP:
MOV DX,OFFSET TIP
MOV AH,09H
INT 21H
MOV DL,0AH;回车
MOV AH,02H
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H
JMP FIRST
EXIT:
MOV AH,4CH
INT 21H
CODES ENDS
END START
标签:汇编,DL,变小,INT,AH,MOV,大写,21H,STRING
来源: https://blog.csdn.net/qq_46727366/article/details/116140146
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。