| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
编写一个程序,将包含任意字符,以0结尾的字符串中的小写字母转变成大写字母 
名称:letterc 
功能:将以0结尾的字符串中的小写字母转变成大写字母 
参数:ds:si指向字符串首地址 
- assume cs:codesg
 
  
- datasg segment
 
 -                 db "Beginner's All-purpose 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:
 
 -                 mov cx, 0
 
 -                 mov cl, byte ptr ds:[si]  ;把ds:[si]中的数据传给cl数据库中定位的是db所以按照字节传送
 
 -                 cmp cl, 64      ;ACII码表上的10进位64是@
 
 -                 ja one_1                ;大于并且不等于,限定跳转的范围,只有ASCII码64以后的才会产生跳转
 
 -                 
 
 -                 jcxz end_1            ;如果ds:[si]中传给cx的是0那么此程序结束跳转到最后ret
 
 - ok:                
 
 -                 inc si
 
 -                 jmp short letterc
 
 - one_1:
 
 -                 and cl, 11011111b ;转换cl中的数据用and 1和1转换等于1 0和1转换等于0 0和0等于0
 
 -                 mov byte ptr ds:[si], cl   ;把cl中的数据再次传给数据段datasg中替换掉小写字母
 
 -                 jmp short ok 
 
 - end_1:
 
 -                 ret
 
 -                 
 
 -                 
 
 - codesg ends
 
 - end begin
 
  复制代码 |   
 
 
 
 |