用汇编进行大小写转换
来源:互联网 发布:php读取ico图标并输出 编辑:程序博客网 时间:2024/05/11 14:48
最近学习了一下8086的16位汇编语言,学习了一种比较奇葩的进行字母大小写转换的方法。
不必用CMP语句进行判断,一步到位。当然前提要求是输入的数据必须是字母哈。
把字母的ASCII码用二进制查看:
大写 16进制 二进制 小写 16进制 二进制
A 41 0100 0001 a 61 0110 0001
B 42 0100 0010 b 62 0110 0010
C 43 0100 0011 c 63 0110 0011
D 44 0100 0100
...
Z 5A 0101 1010 z 7A 0111 1010
明显的,小写的ASCII值 = 大写的ASCII值 + 20H
而且,小写的和大写的在第5位是完全不同的,大写的恒为0, 小写的恒为1
于是,可以用位运算。
assume cs:code, ds:datadata segmentdb 'baSiC' db 'InFOinTion'data endscode segmentstart:mov ax, datamov ds, ax ;数据域对应datamov bx, 0mov cx, 5s:mov al, [bx]and al, 11011111b ;转换成大写mov [bx], alinc bxloop smov bx, 5 mov cx, 10s1:mov al, [bx]or al, 00100000b ;转换成小写mov [bx], alinc bxloop s1mov ax, 4c00hint 21hcode endsend start
对应的C++语言:
#include <cstdio>using namespace std;int main(){char a[9] = "aBcdeFGh";char b[9] = {0};char c[9] = {0};for (int i=0; i<9; i++)b[i] = a[i] & 0xDF; //转换成大写for (int i=0; i<9; i++)c[i] = a[i] | 0x20; //转换成小写return 0;}
- 用汇编进行大小写转换
- 大小写字母转换-汇编
- tr 进行大小写转换
- 汇编 大小写字母转换
- 汇编实现字符串大小写转换
- 使用shell进行大小写转换
- JS进行人民币大小写转换
- 汇编大小写转换的一个技巧~~
- 汇编-英文字符串大小写之间的转换
- 王晓博 2010.05.15-2 汇编 大小写转换
- 宏汇编实现字母大小写的转换
- 【汇编】一个大小写转换的小trick
- linux下用shell将文件名进行大小写转换
- 汇编 - 使用汇编实现字符串的大小写转换
- 字符串中的字母进行大小写转换
- [python]如何对字符串进行大小写转换
- JAVA 如何将String进行大小写转换
- C++对string进行大小写转换
- 单例设计模式
- USACO-Spinning Wheels
- POJ-1860
- 学会调试
- CRC循环冗余校验码的生成
- 用汇编进行大小写转换
- 王爽《汇编语言》实验7
- 王爽《汇编语言》实验8
- android4.1.2 browser下载音乐文件中文名乱码问题解决
- ajax 设置全局同步
- 位操作基础篇之位操作全面总结
- android圆盘菜单效果
- Installshield脚本中安装时RegDBCreateKeyEx的注意事项
- 字符串总结