;汇编小写转大写
DATAS SEGMENT
;此处输入数据段代码
STRING1 DB 'Please input a string:',13,10,9,'$'
STRING2 DB 'The result is:',13,10,9,'$'
BUF DB 50 DUP(?);定义一个缓冲区
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
LEA DX,STRING1
MOV AH,09H
INT 21H
MOV BUF,60 ;输入缓冲区第一个字节存放允许输入的最多字符数
MOV DX,OFFSET BUF ;10号功能调用,数据缓冲区起始地址参数存入DX
MOV AH,0AH
INT 21H
LEA SI,BUF
ADD SI,2
MOV BX,SI
ADD BL,byte ptr[BUF+1];10号功能调用,缓冲区的第二个字节存放实际输入的字符数。
MOV byte ptr[BX],'$' ;09号输出字符串,字符串要以’$’结束。
DEC BX ;BX--
MOV DI,BX
L: MOV AL,[SI]
AND AL, 11011111B
MOV [SI],AL
INC SI ;SI++
CMP SI,DI ;如果SI != Di,continue
JNG L
;输出结果
MOV DL,0AH;输出换行
MOV AH,02H ;单字符显示
INT 21H
MOV DL,0DH;输出回车
MOV AH,02H
INT 21H
LEA DX,STRING2
MOV AH,09H
INT 21H
LEA DX,BUF
ADD DX,2 ;输出时,应注意,缓冲区的第三个字节开始才是输入的字符。
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
;汇编小写转大写
最新推荐文章于 2022-10-25 09:12:57 发布
这篇博客介绍了一段使用汇编语言将用户输入的小写字母转换为大写字母的程序。程序首先通过INT 21H的10号功能调用来获取用户输入的字符串,然后通过对每个字符进行位操作将小写字母转换为大写字母,并最后将结果显示给用户。
摘要由CSDN通过智能技术生成