汇编的寻址方式

寻址的对象

程序是指令的集合,指令包括操作码和操作数。寻址可分为指令的寻址即表示下一条指令的位置,还有便是数据的寻址即操作数的寻址,只有找到这个操作数才能对数据进行操作。
下面图表示数据寻址的几种方式


数据寻址总结.png
数据寻址.png

我们可以看到数据的寻址可以分为以下几种

  • 立即数寻址:表示数据直接在指令中,这种方式的寻址是非常快的
  • 寄存器寻址:表示数据存储在寄存器中,指令中的操作数表示寄存器的名字
  • 存储器寻址:这种情况又可以分为几种类型,分为直接寻址表示操作数中存储的是目标数据的地址,寄存器间接寻址表示寄存器里面存储的是目标数据的地址,寄存器相对寻址。。。。
  • 外设I/O寻址:分为直接寻址和间接寻址

立即数寻址

立即数寻址表示数据在指令当中,目标数据可以直接得到,下面我们据一些常见的形式。

mov eax,12H

mov ax,'a'

lab:  mov eax 1
mov ebx,lab

varb byte 1,3H
mov eax,offset varb 

寄存器寻址

寄存器寻址表示目标数据在寄存器中,通过寄存器的名字来找到数据,寄存器寻址也是比较快速的,也是最常用的寻址方式,下面我们举一些例子进行说明。

mov eax,1H
mov eax,3
mov ax,'a'
这三种方式表示目标操作数为寄存器寻址,原操作数为立即数寻址

mov al,ah
mov al,bl
mov ax,bx
这三种表示原操作数和目的操作数为寄存器寻址

mov bvar,al
mov wvar,ax
mov dvar,eax
这三种方式表示原操作数为寄存器寻址,目的操作数为存储器寻址

存储器寻址

你可能感兴趣的:(汇编的寻址方式)