首页 > 系统相关 >更灵活的定位内存地址的方法

更灵活的定位内存地址的方法

时间:2023-04-04 17:14:58浏览次数:44  
标签:定位 内存地址 灵活 di -- al 指令 位设 bx

and 和 or 指令(位运算)

and 指令 --> 逻辑与运算(参考java中的逻辑与 & )

通过该指令可以将操作对象的相应位设为0,其他位不变
如:
将al的第6位设为0:and al,10111111B
将al的第7位设为0:and al,01111111B
将al的第0位设为0:and al,11111110B

or 指令 --> 逻辑或运算(参考java中的逻辑或 | )

通过该指令可以将操作对象的相应位设为1,其他位不变
如:
将al的第6位设为1:or al,01000000B
将al的第7位设为1:or al,10000000B
将al的第0位设为1:or al,00000001B

以字符形式给出的数据

大小写转化的问题(改变它的ASCII码)

大写 二进制 小写 二进制
A 01000001 a 01100001
B 01000010 b 01100010
C 01000011 c 01100011
D 01000100 d 01100100
即小写字母在二进制编码下的第五位不同
小写字母的ASCII的值比大写字母多20H
利用 and 和 or 指令可以将大小写转化
将第五位换成1 --> 小写字母
将第五位换成0 --> 大写字母

【bx+idata】(表示一个内存单元,它的偏移地址位 bx内的值 + idata)

可以在一个段中对不同的数据进行处理,避免多次循环

如上代码需要循环8次

如上代码只需要4次

这就是【bx+idata】对数组的简化作用

SI和DI

这两个与通用寄存器的差别在于不能分为两个8位寄存器来使用
其他功能和通用寄存器相近

利用 si 和 di 实现字符串的转移

用 ds:si 指向要复制的原始字符串
用 ds:di 指向要复制的目的空间
或者【bx+si】/【bx+di】
利用循环来解决

这里注意,由于si 和 di是16位寄存器,所以一次是复制2个字节,若总共有16个字节的数据,则总共循环8次

若程序复杂,寄存器都被使用了,该怎么暂存变量 --> 内存(给它开辟一个内存,并放入,不占用寄存器)

也可以用栈来解决这个问题 --> 将要存的数据放入栈段中,使用的时候再拿出来即可(通常用在二重及以上的循环),如图

标签:定位,内存地址,灵活,di,--,al,指令,位设,bx
From: https://www.cnblogs.com/TFOREVERY/p/17282734.html

相关文章

  • 免费基站定位数据库下载
    免费基站定位数据库下载推荐一个免费的基站定位数据库:OpenCellID。OpenCellID是一个开源项目,目标就是收集并公开全球的基站位置数据。和大多数同类项目一样,OpenCellID也是通过众包(crowdsource)来采集数据的,它依靠的是自家另一个开源地图项目OpenStreetMap,使用这个App的用户会......
  • undefined symbol问题的查找、定位与解决方法
    今天被客户测出来一个问题:程序执行中报错,报错内容如下XXXX:symbollookuperror:/home/....../libpdfium.so:undefinedsymbol:CRYPT_MD5Generate报错分析:    这个问题表明是符号未定义的问题,而且直接定位于产品链接的第三方动态库libpdfium.so中,于是从libpdfium.so中......
  • UWB定位系统源码,工厂人员轨迹定位系统源码
    UWB高精度定位系统源码,智慧工厂人员定位系统源码,基于Vue+Springboot前后端分离架构开发的一套UWB定位系统源码。有演示。随着经济的高速发展,现代制造业规模不断扩大,生产车间面积广阔,生产设备日益繁多,生产工人数量多且分散作业,难以进行有效管理和实施全方位风险管控。现代工厂安全......
  • 全栈声明式可观测:KubeVela 开箱即用且灵活定制的云原生应用洞察
    作者介绍:殷达,KubeVelaMaintainer,阿里云高级工程师,深度参与了KubeVela混合云多集群管理、可扩展工作流、可观测等核心能力体系的建设KubeVela[1]是一个开箱即用的现代化应用交付与管理平台,它通过统一的应用模型、可编程可扩展的架构,帮助企业构建统一的平台,向上为不同场景......
  • java高精度定位系统源码 工厂人员定位系统源码
    这是一套java定位系统源码,工厂人员定位系统源码,UWB高精度定位系统源码,前后端分离架构,源码有演示。工厂人员定位系统,高精度的位置数据作为智能工厂数据流的重要组成部分,可实现对工厂内的人,车、物的精确定位,无缝追踪,智能调配与高效协同,可大幅提升工厂的精益生产及精细化管理水平,我们......
  • 技术贴,必看!谷歌云新的 BigQuery 版本:数据云的灵活性和可预测性
    【CloudAce是谷歌云全球战略合作伙伴,拥有300多名工程师,也是谷歌最高级别合作伙伴,多次获得GoogleCloud合作伙伴奖。作为谷歌托管服务商,我们提供谷歌云、谷歌地图、谷歌办公套件、谷歌云认证培训服务。】 在数据平台方面,组织需要灵活性、可预测的定价和最佳性价比。 ......
  • 机器视觉框架源码 视觉检测、AOI视觉检测、机械手定位、点胶机
    机器视觉框架源码到手vs2019可以直接编译、视觉检测、AOI视觉检测、机械手定位、点胶机、插件机、激光切割机、视觉螺丝机、视觉贴合机、激光焊接机、视觉裁板机……,C#......
  • nginx里面的路径定位关键词root、alias
    nginx里面的路径定位关键词root、alias是有区别的:设置请求资源的目录root/aliasroot:设置请求的根目录  语法rootpath;默认值roothtml;位置http、s......
  • matlab代码:基于麻雀搜索算法的无线传感器网络3D-Dvhop定位算法
    matlab代码:基于麻雀搜索算法的无线传感器网络3D-Dvhop定位算法-在三维空间中,利用麻雀搜索算法寻找未知节点到锚节点的实际距离和估计距离之间的最小误差,完成对未知节点位......
  • 如何使用 RMAN 重定位或移动 oracle 数据库文件
    一、背景这里的要求是将数据库文件移动或重新定位到其他位置。因此,这里有2种情况,1.重新定位所有数据库文件——数据文件、在线重做日志和控制文件(这需要数据库处于挂载......