实验11 - 汇编语言(王爽)

将以0结尾的字符串中的小写字母转变为大写字母

; Name: letterc
; Function: Converts character c in the string end with 0 to its uppercase equivalent if c is a lowercase letter and has an uppercase equivalent 
; Parameter:ds:si is the address of the first byte
assume cs:codesg,ds:datasg,ss:stacksg
datasg segment
    db "Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends

stacksg segment
    db 32 dup(0)
stacksg ends

codesg segment
 begin: 
    mov ax,stacksg
    mov ss,ax
    mov sp,32
    mov ax,datasg
    mov ds,ax
    mov si,0
    call letterc

    mov ax,4c00h
    int 21h

 letterc:
    push cx
    push si

 s: 
    push cx
    mov cx, ds:[si]
    jcxz ok ;if ([si]) == 0 break
    pop cx

    cmp byte ptr ds:[si], 'a'   
    jb next     ; if ([si]) < 'a' continue
    cmp byte ptr ds:[si], 'z'
    ja next
    and byte ptr ds:[si], 11011111B ; converts to uppercase
 next:
    inc si
    inc cx
    loop s
 ok:
    pop cx
    pop si
    pop cx
    ret

codesg ends
end begin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值