第七章 更灵活的定位内存地址的方法
Posted narisu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第七章 更灵活的定位内存地址的方法相关的知识,希望对你有一定的参考价值。
引言
前面,我们用 [0] 、[bx] 的方法,在访问内存的指令中,定位内存单元的地址。这一章中,我们主要讲解一些更灵活的定位内存地址的方法和相关的编程方法。
我们的讲解将通过具体的问题来进行。
7.1 and 和 or 指令
7.2 关于ASCII码
7.3 以字符形式给出的数据
7.4 大小写转换的问题
7.5 [bx+idata]
在前面,我们可以用 [bx] 的方式来指明一个内存单元,我们还可以用一种更为灵活的方式来指明内存单元:
[bx+idata] 表示一个内存单元,它的偏移地址为 (bx)+idata(bx中的数值加上idata)
我们看一下指令 mov ax, [bx+200] 的含义:
- 将一个内存单元的内容送入 ax,这个内存单元的长度为2字节(字单元),存放一个字,偏移地址为 bx 中的数值加上200,段地址在 ds 中。
- 数学化的描述为:(ax) = ((ds)*16+(bx)+200)
指令 mov ax, [bx+200] 也可以写成如下格式(常用):
- mov ax, [200+bx]
- mov ax, 200[bx]
- mov ax, [bx].200
7.6 用[bx+idata]的方式进行数组的处理
数组元素在内存中的组织是一段地址连续的内存单元。
7.7 SI 和 DI
- SI和DI是8086CPU中和bx功能相近的寄存器,但是SI和DI不能够分成两个8位寄存器来使用(SI和DI在8086CPU中是16位寄存器)。
7.8 [bx+si] 和 [bx+di]
7.9 [bx+si+idata] 和 [bx+di+idata]
注:mov ax,[bx+2+si]
这句的意思是把内存中偏移地址 bx+2+si 处的两个内存单元(双字节)内容拷贝到 ax 寄存器中。因为 ax 是16位寄存器,以后的学习中,记住拷贝的长度和相关寄存器的长度一致。
7.10 不同的寻址方式的灵活应用
以上是关于第七章 更灵活的定位内存地址的方法的主要内容,如果未能解决你的问题,请参考以下文章