代码改变世界

实验十一_编写子程序

2014-04-26 18:56  星星之火✨🔥  阅读(317)  评论(0编辑  收藏  举报

编写一个子程序,将包含任意字符,以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:push ax 
        push ds 
        push si 
         
   lp:  mov al,ds:[si] 
        cmp al,0 
        je ok 
        cmp al,'a' 
        jb p 
        cmp al,'z' 
        ja p 
        and al,11011111b 
        mov ds:[si],al 
    p:  inc si 
        jmp short lp 
         
   ok:  pop si 
        pop ds 
        pop ax 
        ret 
codesg ends 
end begin  

思路:
1.寄存器入栈
2.循环进行字符判断,a~z用and指令修改之,遇数字0(注意不是字符0)结束。
3.寄存器出栈