1. 程式人生 > 其它 >組合語言(第3版,王爽著):實驗11 編寫子程式

組合語言(第3版,王爽著):實驗11 編寫子程式

  • 思路:

該程式比較簡單,就不寫思路了

  • 程式碼實現:
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
  • 程式除錯過程: