汇编语言(第3版,王爽著):实验11 编写子程序

实验11 编写子程序

1. 思路:

该程序比较简单,就不写思路了

2. 代码实现:

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
    ; 功能:将以 0 结尾的字符串中的小写字母转变成大写字母
    ; 参数:ds:si 指向字符串首地址
    letterc:
        push si
        push cx
        mov cx, 0
    s:
        mov cl, ds:[si]
        jcxz ok                             ; 判断是否到达字符串的结尾 0
        cmp byte ptr ds:[si], 'a'
        jb s0                               ; 小于 'a' 则跳转到 s0
        cmp byte ptr ds:[si], 'z'
        ja s0                               ; 大于 'z' 则跳转到 s0
        and byte ptr ds:[si], 11011111b     ; 将小写字母变为大写字母
    s0:
        inc si
        jmp short s
    ok:
        pop cx
        pop si
        ret
codesg ends

end begin

3. 程序调试过程:

实验11 调试过程

posted @ 2022-05-26 13:04  夏夜星空晚风  阅读(29)  评论(0编辑  收藏  举报