ZKX's LAB

汇编小写字母变大写原理 汇编将小写字母转换成大写字母!

2021-04-26知识35

汇编:小写字母转换成大写字母。 小写字母的ASCII码61h开始,依次加1,'a'的ASCII码61H,'b'的ASCII码62H,.大写字母的ASCII码41h开始,依次加1,'A'的ASCII码41H,'B'的ASCII码42H,.则:1.大写字母转小写字母,大写字母的ASCII码加20H2.小写字母转大写字母,小写字母的ASCII码减20H

用汇编语言将大写字母变成小写字母 ;本程序通过2113编译,运行正确Code SegmentAssume CS:Code,DS:CodeString db 'WELCOME'N equ$-StringStart:push cspop ds;使数据5261段与代码段同段lea si,String;取字符串4102地址mov di,simov cx,N;字符串长度(字符数)1653cldUpper_Down:lodsb;读入一个字符至al寄存器or al,20h;大写变小写stosb;保存这个小写字母mov dl,almov ah,2;屏幕显示这个字母int 21hloop Upper_DownExit_Proc:mov ah,4ch;结束程序int 21hCode ENDSEND Start;编译到此结束

汇编语言-----大写字母变成小写字母 data segment;数据段定义BUFF db 10,?10 dup?最多接收10个字符,最后的回车算一个字符DOLLAR db?多预留一个字节,最后加'$'符号(虽然不一定会加在这)data endscode segmentassume cs:code,ds:data;约定段地址start:mov ax,datamov ds,ax;把数据段地址告诉dsmov dx,offset BUFFmov ah,0ahint 21h;上述3句调用10号DOS中断,输入字符串mov si,offset BUFF+1;BUFF+1保存的就是真是输入的字符数xor cx,cx;cx清零mov cl,[si];设置循环次数lp:inc si;si自增mov al,[si];把si地址指向的字节传给alcmp al,'A'jb next;如果小于'A'则跳转cmp al,'Z'ja next;如果大于'Z'则跳转add al,20h;在'A'~'Z'范围内,加20h变成小写mov[si],al;赋回给内存空间next:loop lpmov byte ptr[si+1],'$';字符串最后加个'$'便于用9号功能输出mov ah,2;换行开始mov dl,0ahint 21hmov dl,0dhint 21h;换行mov dx,offset BUFF+2mov ah,9int 21h;调用9号DOS中断,显示首地址为DS:DX的字符串mov ah,4chint 21h;程序正常退出code endsend start附上文字版结果,截图在参考资料上C:\\Users\\ADMINI~1\\Desktop>;masm 1.asm;Microsoft(R)Macro Assembler Version 5.00。

#汇编小写字母变大写原理

随机阅读

qrcode
访问手机版