运用标志寄存器的比较指令

assume cs:codesg
datasg segment
        db "Beginner's All-purpose Symbolic Instruction Code." , 0
datasg ends
codesg segment
start:  mov ax , datasg
        mov ds , ax
        mov si , 0
        call letterc             ; 调用子程序
        mov ax , 4c00h
        int 21h
letterc:mov cl , [si]
        mov ch , 0
        jcxz finish               ; 如果读到最后的 0 就跳转
        cmp byte ptr[si] , 41h                         ; 和 A 的ascii比较,修改标志寄存器
        jb s                              ; 小于 A 就跳转,不用大小写转换
        cmp byte ptr[si] , 7Ah                         ; 和 z 的ascii比较,修改标志寄存器
        ja s                           ; 大于 z 就跳转
        and byte ptr[si] , 11011111b      ; 小写改大写
s:        inc si
        jmp short letterc
finish:        ret       ; 程序结束,跳转执行call后的指令
codesg ends
end start
VAAAgHF4ly8AAEACJFQAAIAESKgAAAAJkFABAAASIKECAAAk8D++cts4k1FopQAAAABJRU5ErkJggg==

NKZjp9tZVxOz+4XOIzpd2Zf2C51NdOClvOP80dnY7xh27gUAAKznHeePSmlYqj9ontRcN4l6+4UOOuigE0ZZqShfUH7xjvNHpXZ1HTtNH31C54Yq9njtRAcddP6OTgBppaV8TTkAAAAAAAAAAAAAAAAAAAAAAAAAAAAs4H+Yg+9TGA6jFAAAAABJRU5ErkJggg==


 

转载于:https://www.cnblogs.com/meihao1203/p/8023260.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值