王爽汇编第二版实验11

编写一个程序,将包含任意字符,以0结尾的字符串中的小写字母变为大写


assume cs:code

data segment
    db "Beginner's All-purpose Symbolic Instruction Code.",0
data ends


code segment
    begin:    mov ax,data
            mov ds,ax
            mov si,0
            call letterc    ;将小写字母变为大写
            
            ;在屏幕5行3列输出
            mov dh,5
            mov dl,3
            call print
            mov ax,4c00h
            int 21h
            
    letterc:    push ds
                push si
                push cx
    
    letterStart:
                mov cl,ds:[si]
                mov ch,0
                jcxz letterEnd
                cmp cx,'a'
                jb letterChange
                cmp cx,'z'
                ja letterChange
                and cl,11011111b
                mov ds:[si],cl
    letterChange:
                    inc si
                    jmp letterStart
    letterEnd:        
                    pop cx
                    pop si
                    pop ds
                    ret
                    
    print:    push es
            push di
            push si
            push ax
            push dx
            push cx
    
    printStart:
                mov ax,0b800h
                mov es,ax
                
                mov al,160
                mov ah,0
                mul dh
                push ax
                mov al,2
                mov ah,0
                mul dl
                pop dx
                add ax,dx
                mov di,ax
                
                
    
    printRun:
                mov cl,ds:[si]
                mov ch,0
                jcxz printEnd
                mov es:[di],cl
                inc di
                mov byte ptr es:[di],36
                inc di
                inc si
                jmp printRun
    
    printEnd:
                pop cx
                pop dx
                pop ax
                pop si
                pop di
                pop es
                ret
code ends
end begin


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值