王爽《汇编语言》实验11

       编写一个子程序,将包含任意字符,以0结尾的字符串中的小写字母转变成大写字母。
描述如下:

名称:letterc
功能:将以0结尾的字符串中的小写字母转变成大写字母
参数:ds:si指向字符串首地址
应用举例:

assume cs:codesg

datasg segment
   db "Beginner's All-puropose Symbolic Instruction Code.",0
datasg ends

codesg segment
  begin: mov ax,datasg
         mov ds,ax
         mov si,0
         call letterc

         mov ax,4c00h
         int 21h
letterc: .....

codesg ends
end begin

分析:’a’~’z’的ASCII码为97~122,而’A’~’Z’的ASCII码为65~90,小写字母比它对应的大写字母大32,故可以判断只要ASCII码在[97,122]之间的数,减去32即得它所对应的大写字母。

参考代码:

assume cs:codesg

datasg segment
   db "Beginner's All-puropose Symbolic Instruction Code.",0
datasg ends

codesg segment
  begin: mov ax,datasg
         mov ds,ax
         mov si,0
         call letterc

         mov ax,4c00h
         int 21h
; 功能:将以0结尾的字符串中的小写字母转变成大写字母
; 参数:ds:si指向字符串首地址
letterc: mov cl,[si]
         mov ch,0
         jcxz break

         cmp cx,97
         jb s              ; cx<97
         cmp cx,122
         ja s              ; cx>122
         sub cx,32         ; 将小写字母转换为大写字母
         mov [si],cl
      s: inc si
         loop letterc
  break: ret
codesg ends
end begin

运行结果:

letterc

转载于:https://my.oschina.net/websoft/blog/78001

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值