操作数的寻址方式
1.寄存器寻址
最常用的寻址方式,操作数存放在寄存器中
2.立即寻址
操作数是指令的一部分,紧跟在操作码后面,称为立即数
Example: MOV AX, 1234H
3.直接寻址
直接寻址方式,地址码字段的16位数据为操作数的段内偏移地址,操作数的物理内存地址等于数据段段寄存器DS中的值左移4位后与16位偏移量之和。
Example: MOV AX, [3100H]
4.寄存器间接寻址
操作数在存储单元中
操作数的地址存放在以下寄存器中
Example:MOV [DI], AX
设 (DS)=1000H, (DI)=0500H , (AX)=12FEH
Physical address = DS×10H + DI = 10500H
物理地址
5.寄存器相对寻址
操作数存放在存储器中,操作数的偏移地址是基址寄存器或者变址寄存器的内容加上8位或者16位的位移量,即操作数的有效地址
Example: MOV BX , [SI+1003H]
设 (DS)=6000H , (SI)=2200H
物理地址为
(DS)×10H+(SI)+1003H=63203H
6.基址变址寻址方式
操作数存放在存储器中,操作数的偏移地址是一个基址寄存器的内容和一个变址寄存器的内容之和,即有效地址
默认的段寄存器由基址寄存器决定。
例 MOV AX,[BX+SI]
假设(DS)=1000H,(BX)=1100H,(SI)=1200H
源操作数采用基址变址寻址方式
偏移地址=(BX)+(SI)=2300H
物理地址=(DS)×10H+(BX)+(SI)=12300H。
7.相对的基址变址寻址方式
操作数存放在存储器中,操作数的偏移地址是一个基址寄存器的内容加一个变址寄存器的内容再加一个8位或16位的偏移量形成
默认的段寄存器由基址寄存器决定。
不允许两个同时为基址寄存器或者变址寄存器