当前位置:首页 > 内存 > 正文

访问内存单元的寻址方式有几种

  • 内存
  • 2024-06-29 11:03:05
  • 3392

一、微机原理--8种寻址方式指令与指令系统的基石:八种寻址模式探索

在计算机世界中,指令就像指挥手中的警棍,指导着计算机精确地执行运算。指令系统是保证机器高效运行的所有这些指令的集合。对于在同一处理器系列中共享一致语言的所有系列机器来说,指令兼容性至关重要。


指令的主要内容包括:操作数据的来源、操作结果的目的地以及执行的操作。指令格式的多样性是创建复杂功能的基础,例如:


操作代码操作符

让我们仔细看看这些寻址方法:


立即寻址寄存器寻址内存操作数间接寻址寄存器相对寄存器寻址基址、变址寻址基地址、变址地址、相对寻址隐式寻址

下面我们通过一个例子来演示一下这些寻址方式在实际操作中的应用:


MOVAX,BHMOVDL,80HMOVAX,VAR[BX][SI]MOVAL,'B'MOVDX,[BP]MOVBX,20H[BX]

每种寻址方式都有其独特的魅力和独特的应用场景,它们共同构成了计算机执行指令的复杂阶段。透彻理解这些寻址方法无疑能让你轻松驾驭微机原理的世界。


二、什么是寻址方式?8086/8088指令系统的寻址方式有哪些?8086或8088指令的寻址方式
:计算机对内存和寄存器中数据的各种操作都需要数据的存储地址,然后进行运算。
指令的寻址方式是查找指令操作数的地址。对于我们来说,我们可以确定数据的来源和目的地
1。立即寻址模式
示例:movax,41h;(此为立即数)
操作数为41h
立即寻址不执行总线周期,所以执行速度快
2.寄存器寻址方式
使用寄存器内容作为操作数
例:movax,cx
寄存器在CPU内部,所以不需要执行总线周期,执行的是快速
*************************内存中的以下寻址
3。直接寻址模式
顾名思义,直接给出操作数的内存单元地址
例如:movah,[2100h];(即直接给出偏移地址)
数据默认为ds段中的偏移地址。如果是在其他段,
在命令中添加段前缀如movah,es:[2100h]
*************************采用4,5,6,7寻址方式,使寻址更加灵活
通过寄存器(bx,bp)、变址寄存器(si,di)和指令的位移量(disp可以是8位或16位)
4.寄存器间接寻址模式
用途寄存器的内容作为操作数存储单元的地址
示例:movah,[bx]
可以使用的寄存器有BX、SI,DI,BP
BX,SI,DI--->它们在DS段
BP它们在SS段
使用上面的其他段并使用段前缀
这种方法可以让代码更加灵活
5.寄存器相对寻址方式
示例:movbx,10[si]或movbx,[si].10或movbx,[si+10]
有点像C语言中的数组或结构体
6.基地址改变地址寻址方式
例如:moval,[bx+si]或moval,[bx][si]
7.相对基址索引寻址方式
示例moval,[bx+si+10]
2.可以灵活运用几种变化(idata代表位移)
[Bx+idata];[bp+idta];[si+idata];[di+idata]
可以这样表示:[bx]。数据;对于结构
Idata[bx];对于数组
[bp+si];[bp+di];[bx+si];[bx+di]注意:bx和bp不能相加
表示为:[bx][si]用于二维数组
[bx+si+idata]……
表达如下:[bx]idata[si]用于数据idata表的[bx][si]用于二维数组