使⽤汇编语⾔将输⼊的字符串⼤写转换为⼩写 1;=====================
2;字符串中⼤写变⼩写
3 DATAS segment
4 String db 10, ?, 10 dup(?) ;最多接收10个字符,最后的回车算⼀个字符
5 DATAS ends
6
7 CODES segment
8START:
9mov AX,DATAS
10mov DS,AX
11;正式代码部分
12
13mov dx,offset String
14mov ah,0ah              ;10号功能调⽤设置
15int 21h                ;调⽤10号DOS中断,输⼊字符串
16
17mov si,offset String+1;获取记录输⼊字符个数内容的偏移地址
18xor cx,cx              ;cx清零 loop循环的次数由cx设置
19mov cl,[si]            ;设置循环次数将: DS:si中的内容取出来放⼊cl中
20lp:
21inc si                  ;si⾃增1
22mov al,[si]            ;把si地址中存放的数据传给al
23cmp al,'A';字符⽐较
24jb next                ;如果⼩于'A'则跳转到next:
25cmp al,'Z'
26ja next                ;如果⼤于'Z'则跳转到next:
27add al,20h              ;在'A'~'Z'范围内,加20h变成⼩写
28mov [si],al            ;将内容重新存放进内存空间
29next:
30    loop lp                ;循环调⽤
31mov byte ptr [si+1],'$';字符串最后加个'$'便于⽤9号功能输出避免输出许多⽆关内容
32
33mov ah,2
34mov dl,0ah
35int 21h        ;换⾏
36mov dl,0dh
37int 21h ;换⾏
38;为什么+2?因为录⼊字符串的时候string 指向的内存地址空间依次存放的 0ah,录⼊的
39;个数,录⼊的字符串
40mov dx,offset String+2
41mov ah,9
42int 21h ;调⽤9号DOS中断,显⽰⾸地址为DS:DX的字符串
43
汇编语言大小写字母转换44mov al,0
45mov AH,4CH
46INT 21H
47 CODES ends
48    end START

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。