王爽汇编第二版实验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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值