汇编语言学习:实验十一

编写一个子程序,将包含任一字符,以0结尾的字符串中的小写字母转变成大写字母。

描述如下:

    名称:letterc

    功能:将以-结尾的字符串中的小写字母转变成大写字母

    参数:ds:si指向字符串首地址

    应用举例

assume cs:codesg
datasg segment
    db "Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends

codesg segment
begin:  mov ax,datasg
        mov si,0
        call letterc
        mov ax,4c00h
        int 21h
letterc:    :
codesg ends
end begin

注意需要进行转化的是字符串中小写字母'a'~'z',而不是其他字符

上代码


assume cs:codesg

datasg segment
        db "Beginner's All-purpose Symbolic Instruction Code.",0
        db 50 dup(0)
datasg ends

codesg segment
begin:
        mov ax,datasg
        mov ds,ax
        mov si,0
        mov di,50
        call letterc
        mov ax,4c00h
        int 21h

letterc:
        push ax
        push si
        push di

comp:   mov al,[si]
        cmp al,0
        je exit
        cmp al,'a'
        jb next_char
        cmp al,'z'
        ja next_char
        and al,11011111B

        next_char:
                mov [di],al
                inc di
                inc si
                jmp short comp

        exit:
                pop di
                pop si
                pop ax
                ret

codesg ends
end begin

实际可以用之前实验编写打印到屏幕上的代码段打印到屏幕,但是考虑到代码长度,就先这样吧。

你可能感兴趣的:(汇编语言学习)