设内存数据区有大小写混合英文字符串,以 $ 字符结束,内容自定。

发布时间:2024-05-14 11:32 发布:上海旅游网

问题描述:

将其转换成全部大写和全部小写,并在屏幕上显示这3种字符串。
首先显示原字符串,然后回车换行后显示全部大写的对应字
符串,最后回车换行后显示全部小写的对应字符串。编程
实现。

问题解答:

; 本程序通过编译,运行正确。
Code Segment
Assume CS:Code,DS:Code

Charactors db 'This is a String with Upper case and Down case Letter$'
Count equ $-Charactors-1

; -----------------------------------------
; 功能:显示指定地址(Str_Addr)的字符串
; 入口:
; Str_Addr=字符串地址(要求在数据段)

; 用法: Output_Str Str_Addr
; 用法举例:Output_Str PromptStr

Output_Str MACRO Str_Addr
lea dx,Str_Addr
mov ah,9
int 21h
EndM
; -----------------------------------------
; 功能:输出回车换行
Enter_CTLF proc Near
push ax
push dx
mov ah,02h
mov dl,0dh
int 21h
mov dl,0ah
int 21h
pop dx
pop ax
ret
Enter_CTLF endp
; -----------------------------------------
; 功能:输出一个字符
; 入口:dl=要显示的字符
Enter_Chr proc Near
push ax
mov ah,02h
int 21h
pop ax
ret
Enter_Chr endp
; -----------------------------------------

Start: push cs
pop ds
push cs
pop es ;使数据段、附加段与代码段同段

cld
Output_Str Charactors ;显示输出原字符串
call Enter_CTLF ;输出一个回车换行

; 将字符串中的小写字母逐个转换为大写字母并显示
lea si,Charactors
mov cx,Count
Down_Upper: mov dl,[si] ;读入一个字母
and dl,0DFh ;转换为大写
call Enter_Chr ;显示输出一个字符
inc si ;增1,准备处理下一个字母
loop Down_Upper
call Enter_CTLF ;输出一个回车换行

; 将字符串中的大写字母逐个转换为小写字母并显示
lea si,Charactors
mov cx,Count
Upper_Down: mov dl,[si] ;读入一个字母
or dl,20h ;转换为小写
call Enter_Chr ;显示输出一个字符
inc si ;增1,准备处理下一个字母
loop Upper_Down

Exit_Proc: mov ah,4ch ;结束程序
int 21h

Code ENDS
END Start ;编译到此结束

程序运行结果:
This is a String with Upper case and Down case Letter
THIS IS A STRING WITH UPPER CASE AND DOWN CASE LETTER
this is a string with upper case and down case letter

热点新闻