什么是寻址方式?8086⼀8088指令系统的寻址方式有哪些?

2024-11-28 20:58:16
推荐回答(2个)
回答1:

8086或8088指令的寻址方式
:计算机对存储器,寄存器中数据的各种操作需要数据的存放地址,然后进行操作。
指令的寻址方式就是寻找指令操作数所在地址的方式,对于我们来说,可以确定数据的来源和去处
1. 立即数寻址方式
例:mov ax,41h;(这个就是立即数)
操作数就是41h
立即数寻址不执行总线周期,所以执行速度快
2. 寄存器寻址方式
用寄存器的内容当做操作数来使用
例:mov ax,cx
寄存器在cpu内部,所以也是不需要执行总线周期滴,执行快
***********************下面这些在存储器内的寻址
3. 直接寻址方式
顾名思义,直接给出了操作数的内存单元地址
例:mov ah,[2100h];(就是直接给出偏移地址)
数据默认在ds段中的偏移地址,如果在其他段,
在指令中加段前缀如mov ah,es:[2100h]
*********************4,5,6,7寻址方式的使用,使寻址更加灵活
通过寄存器(bx,bp),变址寄存器(si,di)和指令的位移量(disp可以是8位或16位)
4. 寄存器间接寻址方式
用寄存器的内容作为操作数的存储单元的地址
例:mov ah,[bx]
可以使用的寄存器有BX,SI,DI,BP
BX,SI,DI--->他们在DS段中
BP他们在SS段中
使用其他段同上使用段前缀
这个方式可以使代码更灵活
5. 寄存器相对寻址方式
例:mov bx,10[si]或mov bx,[si].10或mov bx,[si+10]
有点像c语言中的数组或结构体
6. 基址变址寻址方式
例:mov al,[bx+si]或mov al,[bx][si]
7. 相对基址变址寻址方式
例 mov al ,[bx+si+10]
二.几种变化灵活使用(idata代表位移量)
[Bx+idata];[bp+idta];[si+idata];[di+idata]
可以这样表示:[bx].idata;用于结构体
Idata[bx];用于数组
[bp+si];[bp+di];[bx+si];[bx+di]注意:bx和bp不能相加
这样表示:[bx][si]用于二维数组
[bx+si+idata]……
这样表示:[bx]idata[si]用于表格的数据idata[bx][si]用于二维数组

回答2:

mov ax, word ptr[bp+08]
mov bx, word ptr[bp+02]
mov cx, word ptr[bx]