编写一个完整程序其中编写子程序,将包含任意字符,以0结尾的字符串中的小写字母转变成大写字母并显示在

2025-03-18 21:00:22
推荐回答(2个)
回答1:

dataseg segment
  v0 db "Beginnr's All-purpose Symbolic Instruction Code.",0
dataseg ends

codeseg segment
assume cs:codeseg, ds:dataseg
start:
    mov ax, dataseg
    mov ds, ax

    mov si, 0
    call letterc

    mov ah,4ch
    int 21h

;sub procedure
letterc proc near
    push ax
    mov ah,0eh
$0:
    mov al, [si]
    cmp al, 0
    jz $2
    cmp al, 61H
    jb $1
    cmp al, 7AH
    ja $1
    ;or al, 40H
    and al,11011111b
$1:
    int 10h
    inc si
    jmp $0
$2:
    pop ax
    ret
letterc endp

codeseg ends
end start

回答2:

assume cs:code,ds:data
data segment
db 'Beginners All-purpose Symbolic Instruction Code.',0
data ends
code segment
begin:mov ax,data
mov ds,ax
mov si,0
call letterc
mov ah,4ch
int 21h
;名称:letterc
;功能:将以0结尾的字符串中的小写字母转变成大写字母
;参数:ds:[si]指向字符串首地址
letterc:push ax
s:mov al,[si]
mov ah,0
mov cx,ax
jcxz return
cmp al,61h
jb next
cmp al,91h
ja next
and al,11011111b
mov [si],al
next:inc si
jmp short s
return:pop ax
ret
code ends
end begin