用汇编语言写一个把字符串中的所有大写字母改为小写的程序假设字符以‘0’结尾

要所有程序哦 老师检查呢 我不会
2024-12-27 01:47:49
推荐回答(3个)
回答1:

; 本程序在MASMPlus 1.2集成环境下通过编译,经过调试,运行正确。
Code Segment
Assume CS:Code,DS:Code
; -------------------------------------
; 功能:显示指定地址(Str_Addr)的字符串
; 入口:
; Str_Addr=字符串地址(要求在数据段)
; 用法: Output Str_Addr
; 用法举例:Output PromptStr
Output MACRO Str_Addr
lea dx,Str_Addr
mov ah,9
int 21h
EndM
; -------------------------------------
Prompt_Str db 'Please input a string,press "0" termanite:$'
Press_Key db 13,10,13,10,'The complated. Press any key to exit...$'
Start: push cs
pop ds
push cs
pop es
Output Prompt_Str ;提示输入字符串
lea di,Buffer ;字符串地址
cld
Input_Str: mov ah,1
int 21h
stosb ;保存
cmp al,'0'
jz $+4 ;若字符为'0',结束输入
jmp Input_Str ;输入下一个字符
mov ah,02h
mov dl,0dh
int 21h
mov dl,0ah
int 21h
lea si,Buffer ;字符串地址
Up_Down: lodsb
cmp al,'A'
jb $+8
cmp al,'Z'
ja $+4
or al,20h ;转换成小写字母
mov dl,al
mov ah,2
int 21h
cmp al,'0'
jz Exit_Proc ;若字符为'0',结束程序
jmp Up_Down
; -------------------------------------
Exit_Proc: Output Press_Key ;提示操作完成,按任意键结束程序
mov ah,1
int 21h
mov ah,4ch ;结束程序
int 21h
Buffer:
Code Ends
END Start ;编译到此结束

回答2:

假设这一串字符是:CONVERSATION

assume cs:code
data segment
db 'CONVERSATION',0
data ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0
mov si,bx
cap:mov cl,[si]
mov ch,0
jcxz ok
or byte ptr [si],00100000b
inc si
jmp short cap
ok:mov ax,4c00H
int 21h
code ends
end start

回答3:

字符串中有非大写的吗