【汇编学习】大小写转换问题
1 | assume cs:codesg, ds:datasg |
简单讲述一下原理,我们知道在 ASCII 表中,大写字母与小写字母相差 20H ,体现在二进制中就是 0010 0000 ,大写字母的二进制表示如果加上这个二进制数就是小写字母的二进制表示,这无非就是只在第 3 位数(从左往右)上加上 1,巧的是所有大写字母的第 3 位数字都是 0,所以,可以得出在 ASCII 表中,大写字母与小写字母的差别就是第 3 位数上 0 和 1 的区别。看下下面这张表会更清晰

在将 小写 转 大写 时,只需要保证第 3 位为 0 其它位保持不变即可,所以and 1101 1111B
在将 大写 转 小写 时,只需要保证第 3 位为 1 其它位保持不变即可,所以or 0010 0000B
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 星の夜!