当前位置: 汇编教程 > 03-指令系统 > 阅读正文

汇编 数据寻址方式

2021.7.20.   355 次   961字

数据寻址方式,指的是查找数据中内存地址的方式,数据寻址方式有多种(寻址方式分为指令寻址,和数据寻址,现在介绍的是数据寻址)

寻址时,EA表示段偏移,SA表示段地址,内存地址由”段+偏移“合成

首先复习一下不涉及内存的2种寻址

  • mov eax, idata ==> 立即寻址
  • mov eax, eax ==> 寄存器寻址

下面5种是本节学习内容

寻址方式含义名称常用格式
[idata]EA=idata;SA=(ds)直接寻址[idata]
[bx]
[si]
[di]
[bp]
EA=(bx);SA=(ds)
EA=(si);SA=(ds)
EA=(di);SA=(ds)
EA=(bp);SA=(ss)
寄存器间接寻址[bx]
[bx+idata]
[si+idata]
[di+idata]
[bp+idata]
EA=(bx)+idata;SA=(ds)
EA=(si)+idata;SA=(ds)
EA=(di)+idata;SA=(ds)
EA=(bp)+idata;SA=(ss)
寄存器相对寻址结构体:[bx].idata
数组:idata[si]
二维数组[bx][idata]
[bx+si]
[bx+di]
[bp+si]
[bp+di]
EA=(bx)+(si);SA=(ds)
EA=(bx)+(di);SA=(ds)
EA=(bp)+(si);SA=(ss)
EA=(bp)+(di);SA=(ss)
基址变址寻址二维数组[bx][si]
[bx+si+idata]
[bx+di+idata]
[bp+si+idata]
[bp+di+idata]
EA=(bx)+(si)+idata;SA=(ds)
EA=(bx)+(di)+idata;;SA=(ds)
EA=(bp)+(si)+idata;;SA=(ss)
EA=(bp)+(di)+idata;;SA=(ss)
相对基址变址寻址表格[bx].idata[si]
二维数组idata[bx][si]

在上面的寻址中,段寄存器可以是省略的,有默认值,但可以指定某个寄存器,比如cs

多种寻址方式,可以更灵活的定位内存

在指令执行前,要处理的数据可能存在三个地方,cpu内部,内存,端口

  • mov bx, [0] ==》 内存单元
  • mov bx, ax ==》 cpu内部,ax寄存器
  • mov bx, 1 ==》 cpu内部,指令缓存器

可见数据并不一定在内存中,但绝大部分都放在内存中

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群