2、编写汇编程序,源程序名为ex6_5.asm,转换下列字符串中字母的大小写,即将大写字母变为小写字母,而小写字母变为大写字母。程序运行后内存string变量结果。 .data string byte ‘This is a Pen’,0
时间: 2024-02-15 20:05:18 浏览: 131
把字符串小写改为大写并输出的汇编程序
好的,下面是汇编程序ex6_5.asm的代码:
```
.model small
.stack 100h
.data
string db 'This is a Pen',0
.code
main proc
mov ax, @data
mov ds, ax ;将数据段DS设置为程序段地址
lea si, string ;将字符串地址存储在SI寄存器中
mov cx, 0 ;初始化计数器
convert_loop:
mov al, [si] ;将字符串中的一个字符存储在AL寄存器中
cmp al, 'a'
jb not_lower ;如果字符不是小写字母,跳转到not_lower标记
cmp al, 'z'
ja not_lower ;如果字符不是小写字母,跳转到not_lower标记
sub al, 20h ;将小写字母转换为大写字母
jmp next_char ;跳转到next_char标记
not_lower:
cmp al, 'A'
jb next_char ;如果字符不是大写字母,跳转到next_char标记
cmp al, 'Z'
ja next_char ;如果字符不是大写字母,跳转到next_char标记
add al, 20h ;将大写字母转换为小写字母
next_char:
mov [si], al ;将转换后的字符存储回字符串中
inc si ;移动到下一个字符
inc cx ;增加计数器
cmp byte ptr [si], 0 ;检查是否到达字符串的结尾
jne convert_loop ;如果没有到达结尾,跳转到convert_loop标记
mov ah, 4ch ;退出程序
int 21h
main endp
end main
```
运行程序后,内存中的string变量的结果如下所示:
```
tHIS IS A pEN
```
阅读全文