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

7.1 and和or指令

(1)and/or指令:按位的运算符。不能对内存单元直接操作,须借助寄存器中转。

(2)and/or指令的应用:

因为不管1还是0,和1进行与运算,都能维持原数不变;与1进行或运算,都能使原数置1.

和0进行与运算,都能置0;和0进行或运算,都能维持原数不变。

可利用上述特点,进行一些应用,比如转换大小写字母。

一个字母的大写ASCII码都比小写ASCII码值小20H。比如A是41H,a是61H。

对应二进制码分别为0100 0001H,0110 0001H.

如果要将A转成a,直接用A+20H就可以。

但如果有一个字母,事先不知道其是大写还是小写,但如果要将其转成小写,该怎么处理?

显然不能用+20H的方法。注意到对于一个字母的大小写的区别还在于:0~7位上的第5位如果是1,则为小写,如果为0,则为大写。也就是说不管其第5位如何,将其转为1,并保持其他位的数值不变,都可以得到小写。

则可以通过or  原数,0010 0000B 进行转换。

同理,小写转成大写,则可以通过  and 1101 1111B进行转换。

7.5[bx+idata]的寻址形式:表示偏移地址=(bx)+idata;

这种寻址形式也可以表示为[idata+bx],idata[bx],[bx].idata

7.8[bx+si]和[bx+di]:偏移地址=(bx)+(si)/(di)

这里si和di也为16位寄存器,但他们不能分割成8位寄存器使用。

这种寻址形式也可以表示为[bx][si]/[bx][di]。

7.9[bx+si+idata]和[bx+di+idata]:表示偏移地址=(bx)+(si)/(di)+idata。

这种寻址形式也可以表示为:[bx+200+si],[200+bx+si],200[bx][si],[bx].200[si],[bx][si].200。

实验6:编程,将datasg段中每个单词的前5个字母改成大写字母。

assume cs:codesg,ds:datasg,ss:stacksg
stacksg segmentdw 0,0,0,0,0,0,0,0
stacksg endsdatasg segmentdb '1. display      'db '2. brows        'db '3. replace      'db '4. modify       '
datasg endscodesg segment
start:mov ax,datasgmov ds,axmov si,0mov cx,5
s0:push cxmov bx,0mov cx,4
s1:mov al,[bx][si].3and al,11011111Bmov [bx][si].3,aladd bx,10hloop s1inc sipop cxloop s0mov ax,4c00hint 21hcodesg ends
end start

转载于:https://www.cnblogs.com/tsembrace/p/3266094.html

汇编语言(王爽)第七章与实验6相关推荐

  1. 《汇编语言》王爽—第七章实验六详解

    编程,完成问题7.9中的程序 assume cs:codesg,ds:datasg,ss:stacksgdatasg segmentdb '1. display 'db '2. brows 'db ' ...

  2. 开发日记-20190915 关键词 汇编语言王爽版 第九章

    第九章 转移指令的原理 可以修改IP或同事修改CS和IP和指令统称为转移指令.概括地讲,转移指令就是可以控制CPU执行内存中某处代码的指令. 8086CPU的转移行为有以下几类: 只修改IP时,称为段 ...

  3. 汇编语言---------王爽第4章

    第4章 一个源程序从写出到执行的过程 end assume 标号 程序的运行机制 与结束相关的概念 写汇编程序 编辑源程序 编译源程序 链接 程序执行过程的跟踪 一个源程序从写出到执行的过程 一个源程 ...

  4. 开发日记-20190914 关键词 汇编语言王爽版 第二章

    第二章 寄存器 一个典型的CPU由运算器,控制器,寄存器(CPU工作原理)等器件构成,这些器件靠内部总线相连.前一章所说的总线,相对于CPU内部来说是外部总线.内部中心实现CPU内部各个器件之间的联系 ...

  5. 开发日记-20190913 关键词 汇编语言王爽版 第一章

    Preface 最近手机坏了,感觉心里挺不是滋味的,在各种方面,特别是钱!直到今天,我才知道钱真的是一种很重要的东西,以及苹果公司到底有多恶心. 真的很奇怪,为什么世界上就没有任何一家公司能和苹果公司 ...

  6. 汇编语言-王爽 第7章 更灵活的定位内存地址的方法-笔记

    将datasg中的第一个字符串转化为大写,第二个字符串转化为小写. 第一种方法: assume cs:codesg,ds:datasgdatasg segmentdb 'BaSic'db 'iNfOr ...

  7. 汇编语言(王爽第三版) 实验5

    汇编语言(王爽第三版) 实验5 由图可见: 第一问:cpu执行程序,程序返回前,ds一直未变,所以data段中的数据不变. 第二问:cpu执行程序,程序返回前,cs=1CD5,SS=1CD4,DS=1 ...

  8. 【汇编语言 王爽】实验14代码

    实验需求如下: 编程,以"年/月/日 时:分:秒"的格式显示时间 注意:CMOS RAM中储存着系统的配置信息,除了保存时间信息的单元外,不要向其他单元写入内容,否则将引起一些系统 ...

  9. 汇编语言 王爽 第四版 第二章 检测点2.2

    汇编语言 王爽 第四版 课后检测点 课后实验 持续更新~~ 检测点2.2 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为 0010H 到 1000FH . 最小肯定是偏移地址为0, ...

  10. 汇编语言 王爽 第四版 实验5

    汇编语言 王爽 第四版 课后检测点 课后实验 持续更新~~ 实验5 编写.调试具有多个段的程序 1 编译连接下面程序,用debug加载.跟踪,回答问题. assume cs:code,ds:data, ...

最新文章

  1. java线程的异常无法捕获异常_Java如何从线程中捕获异常
  2. 横波与纵波的本质区别是什么?——偏振
  3. 待发箱outbox空间已满
  4. 3DSlicer25:Report an Error
  5. RocketMQ 报 invokeSync call timeout
  6. 循环结束后变回去 设置一个值_VBA掌握循环结构,包你效率提高500倍
  7. Oracle Service Bus简介
  8. 新浪微博开发-添加子视图控制器设置颜色
  9. 戴尔-EMC将至强Phi服务器与Tesla GPU纳入PowerEdge
  10. 用指针交换两个数_LeetCode双指针系列
  11. A616-HP-ProDesk 480 G2 MT电脑网络同传
  12. 轮询、长轮询、长连接、websocket
  13. 《岳阳楼记》古文鉴赏
  14. [原创] 阿里巴巴平台型产品经理 实习生面试经历
  15. c语言数字转化为英文版,(C语言编写的英语数字转化代码数字转化为用英语表达的数字.doc...
  16. 香槟分校计算机专业毕业生去向,数据会告诉你 伊利诺伊大学香槟分校计算机系有多可怕...
  17. 计算机做课程表教程,初学表格制作教程 初学者如何制作课程表
  18. PX Deq Credit: send blkd (3)---Script to monitor parallel queries (文档 ID 45
  19. 计算机奇数页打印怎么设置,EXCEL怎么设置奇数页打印和偶数页打印
  20. Bayesian Convolution Neural Networks with Bernoulli Approximate Variational Inference

热门文章

  1. 多线程压测_京东618压测时自研中间件暴露出的问题,压测级别数十万/秒
  2. mysql 程序无法连接_程序无法连接到服务器不知道怎么解决
  3. 关于前端的margin
  4. Solr学习总结(五)SolrNet的基本用法及CURD
  5. 01背包 Codeforces Round #267 (Div. 2) C. George and Job
  6. java 利用Scanner解析逗号字符串
  7. dpkg 被中断,您必须手工运行 sudo dpkg -configure -a 解决
  8. Linux管理与应用(张美平著)- 绪论知识点
  9. 【Android综合编程】CH2EventBus
  10. php获取字段中的第几个数字_php提取字符串中的数字