ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
**处理字符问题** ![](https://img.kancloud.cn/ca/3e/ca3e9cf21bf7f0247a92f8968ff5634d_1854x979.png) `db 'unlx'`相当于"db 75H,6EH,49H,S8H" , "u"、"n"、"1"、"X"的ASCI1别为75H、 6EH,49H, 58H; `db 'оRK'`相当于"db 66H,6FH,S2H,4BH" , "f"、"0"、"R"、“K"的ASC1分别为66H、 6FH, 52H,4BH; 编译器会将字符转化为ASCII码 `mov al,'a'`在汇编中识别为`mov 61` 数据段为什么是从076A开始的? 《汇编语言》(第二版)P104页,上面写着参考4.9节内容。原因大致如下: 设找到一段起始地址为 SA:0000 的容量足够的空闲内存区;在这段内存区的前256个字节中,创建一个称谓程序段前缀(PSP)的数据区,DOS要利用PSP来和被加载程序进行通信(不理解的话可以暂且记住);在这段内存区的256字节处开始(在PSP的后面),将程序装入,程序的地址被设为SA+10H:0(这里确实是256个字节即100H,256 = 16*16,所以会空出100H 的空间,也就是10:0H,“写法可能不对,暂且这么理解”);将这段内存区的段地址存入ds中,初始化其他相关的寄存器后,设置CSIP指向程序的入口 ![](https://img.kancloud.cn/a9/0e/a90eadaf8ad4ca311cbf88b4010fdd1b_616x419.png) **大小写转换** ![](https://img.kancloud.cn/28/d8/28d8cdb1c8cd0ebeb3643430644d63ed_1843x926.png) ![](https://img.kancloud.cn/9c/c9/9cc95228419c14ad4b8eb2ce0907f135_1512x982.png) 大写字母 = 小写字母 and 1101 1111            //其他位数保持不变,第6位从1变成0 小写字母 = 大写字母 or 0010 0000             //其他位数保持不变,第6位从0变成1 ![](https://img.kancloud.cn/8a/af/8aafa03e80e70c72492954b2c04bbd8a_1554x953.png) 改进版查看[bx+idata]方式寻址章节 ``` ```