汇编语言之大小写转换问题
打开记事本——》alt+右边的小键盘(可以查看ASCII对应的字符)
eg:打开记事本——》按住alt键,并在右边小键盘打97,松开alt,可以看到出现a——》得知97对应的字符为a
上图中绿色的横行和纵行组成对应字符的十六进制
通过对比大写字母的ASCII码的值比小写字母小20H : ASCII(a)-20H=ASCII(A)
通过观察还可以得出大小写的差距字体现在二进制的第五位
案例:编写一段代码,将datasg中第一个字符串全转化为大写,第二个字符串全转化为小写
assume cs:codesg,ds:datasg
datasg segmentdb 'BaSiC' ;将第一个字符串全部转换为大写;注意单引号(表明数据是以字符的形式给出的)define bytedb 'iNfOrMaTiOn';将第二个字符串全部转换为小写
datasg endscodesg segment
start: mov ax,datasgmov ds,ax ;设置ds指向datasg段mov bx,0 ;设置(bx)=0,ds:bx指向 'BaSiC'的第一个字母mov cx,5 ;设置循环次数5,因为 'BaSiC'有五个字母upLetter:mov al,ds:[bx] ;将ASCII码从ds:bx所指向的单元中取出and al,11011111B ;将al中的ASCII的第5位为0,变成大写字母mov ds:[bx],al ;将转变后的ASCII码写回原单元inc bx ;bx+1,ds:bx指向下一个字母loop upLettermov bx,5 ;设置bx=5,ds:bx指向 'iNfOrMaTiOn'的第一个字母mov cx,11 ;循环11次,因为 'iNfOrMaTiOn'有11个字母downLetter:mov al,ds:[bx]or al,00100000B ;将al中的ASCII码的第五位置变成1,变为小写字母mov [bx],alinc bxloop downLettermov ax,ac00hint 21hcodesg ends
end start
汇编语言之大小写转换问题相关推荐
- 汇编语言随笔(6)-大小写转换与实验6(双重循环:需要保存cx值)
大小写转换 规律:大写字母的ASCII值+20H=小写字母的ASCII值.在ASCII值中,大写字母第5位为0,小写字母第5位为1.所以通过and.or指令可以方便地进行大小写转换,而不需要提前判断字 ...
- 汇编语言 字母的大小写转换
大小写转换问题 A 41H 0100 0001B or 0010 0000B 转换为小写 B 42H 0100 0010B C 43H 0100 0011B D 44H 0100 0100Ba 61H ...
- 汇编语言大小写转换问题
首先,我们观察一下,大小写字母对应的ASCII码有何联系 不难发现,'A'+20H='a',但在我们写源程序的时候,就要判断字符是大写还是小写,然后我们来决定是该 +20H,还是 -20H.但似乎在汇 ...
- 汇编语言:简单的英文字母大小写转换
简单的英文字母大小写转换
- 巧用位运算实现大小写转换
今天看王爽老师的<汇编语言>时,很有收获,不论是技术还是思考方式. 任务是将字符串进行大小写转换,但是还暂时不会用分支判断语句(而且这样的效率也不是最高的,有点类似于高级语言了). &qu ...
- Python 零基础入门到实战(一)笔记:内置对象、浅拷贝、深拷贝、计算圆面积、凯撒密码、英文大小写转换、输入国家打印出国家名和首都、输入数字英文输出、统计句子中的字母数量、猜随机数
Python入门到实战(一) 为什么写这篇文章 Part 1 入门部分 什么是编程语言? Python的优势 目前应用 特点 Part 2 6种内置对象 1 整数.浮点数 2 字符串 3 列表 4 元 ...
- C++ OJ 中多行数据输入(大小写转换、通过移位运算实现2的n次方、多组输入,每行输入数量不一样)
1. 多组输入,输出每行最大值 while(cin>>a>>b) 主要解决的是两个为一组的多组数据输入,当一次只输入一个数据时就用 while(cin>>a) 输入 ...
- C++ 字符串字母大小写转换
C++ 字符串字母大小写转换 使用algorithm,里面的tolower(转小写)toupper(转大写) #include <iostream> #include <string ...
- C++ 笔记(22)— STL string 类(字符串赋值、访问、拼接、查找、翻转、大小写转换)
1. 实例化和赋值 STL string #include <string> #include <iostream>int main () {using namespace s ...
最新文章
- 如何在CrossOver里应用Windows容器的存档(备份)与恢复?
- Ubuntu16.04 安装chromedriver
- 杨鹏谈世纪佳缘推荐算法:基于Spark GraphX,弃GBDT和LR用FM
- Emscripten-mac安装与升级
- CryptoAPI 学习
- Android开发遇到手机无法弹出Toast
- ACM-ICPC 2018 徐州赛区网络预赛 I. query 树状数组
- micropython 蜂鸣器_基于MicroPython的TPYBoard微信远程可燃气体报警器的设计与实现...
- atmega8 例程:USART串口通信
- kubernetes视频教程笔记 (3)-Pod及其网络通讯方式
- java实现凸包算法_JAVA语言中实现凸包算法
- JSON怎么转成Excel
- C语言递归求圆周率,python中的递归问题,求圆周率
- 导出PDF /home/education/font/simsun.ttc not found as file or resource.
- html怎么在表格中加虚线,html设置虚线边框的方法详细介绍
- 微生物群落结构差异分析
- upset图形如何理解
- 游戏建模工作内容是什么
- 常见的10大超参数优化库
- c++手机编程软件_今天小编推荐几款好用的手机编程APP!