;汇编小写转大写

这篇博客介绍了一段使用汇编语言将用户输入的小写字母转换为大写字母的程序。程序首先通过INT 21H的10号功能调用来获取用户输入的字符串,然后通过对每个字符进行位操作将小写字母转换为大写字母,并最后将结果显示给用户。
摘要由CSDN通过智能技术生成
;汇编小写转大写
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










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值