8086处理器有几种寻址方式

2025-04-24 00:11:14
推荐回答(4个)
回答1:

以 MOV 指令为例

1. 立即寻址方式* —— 操作数在指令中给出
MOV AL, 5
MOV AX, 3064H
* 只能用于SRC字段 ? MOV 5, AL
* SRC 和 DST的字长一致 ? MOV AH, 3064H

2. 寄存器寻址方式* —— 操作数在指定的寄存器中
MOV AX, BX
MOV AL, BH

* 字节寄存器只有 AH AL BH BL CH CL DH DL
* SRC 和 DST的字长一致 MOV AH, BX
* CS不能用MOV指令改变 MOV CS, AX

3. 直接寻址方式* —— 有效地址EA由指令直接给出
有效地址EA:操作数的偏移地址
物理地址PA = 16d ? (DS) + EA
例:MOV AX, [2000H]
EA=2000H, 假设(DS)=3000H, 那么(PA)=32000H

例:操作数地址可由变量(符号地址)表示
MOV AH, VALUE ( VALUE DB 10 )

* 隐含的段为数据段 DS

* 可使用段跨越前缀 MOV AX, ES :[2000H]

* 使用变量时,要注意变量的属性

VALUE DB 10

MOV AX, VALUE ;错误

MOV AL, VALUE

MOV AX, WORD PTR VALUE

* 适于处理单个变量

4. 寄存器间接寻址方式

* ——EA在基址寄存器(BX/BP) 或变址寄存器(SI/DI)中

BX, SI, DI ->(DS)

物理地址 = 16d * (DS) + (BX)

物理地址 = 16d * (DS) + (SI)

物理地址 = 16d * (DS) + (DI)

BP ->(SS)

物理地址 = 16d * (SS) + (BP)

MOV AX, [BX]

PA = 16d *(DS) + (BX)

MOV ES:[BX] , AX

PA = 16d *(ES) + (BX)

MOV DX, [BP]

PA = 16d *(SS) + (BP)

寄存器间接寻址方式*

* 不允许使用AX、CX、DX存放EA

MOV AX, [CX];错误

* SRC 和 DST的字长一致

MOV DL, [SI] ; [BX]指示一个字节单元

MOV DX, [DI] ; [BX]指示一个字单元

* 适于对数组、字符串、表格中的数据连续处理

5. 寄存器相对寻址方式*

有效地址 = (BX) + 8位或者16或位移量

有效地址 = (BP) + 8位或者16或位移量

有效地址 = (SI) + 8位或者16或位移量

有效地址 = (DI) + 8位或者16或位移量

例: MOV AX, COUNT[SI] 或 MOV AX, [COUNT+SI]

假设(DS)=3000H, (SI)=2000H, COUNT=3000H 那么 PA = 35000H

假设(35000H)=1234H, 那么 (AX)=1234H

* 适于数组、字符串、表格的处理

6. 基址变址寻址方式*

有效地址 = (BX) + (SI)

有效地址 = (BX) + (DI)

有效地址 = (BP) + (SI)

有效地址 = (BP) + (DI)

MOV AX, [BX][DI]

PA=(DS)×16d+(BX)+(DI)

或 MOV AX, [BP+DI]

PA=(SS)×16d+(BX)+(DI)

MOV AX, ES:[BX][SI]

PA=(ES)×16d+(BX)+(SI)

* 适于数组、字符串、表格的处理

* 必须是一个基址寄存器和一个变址寄存器的组合

MOV AX, [BX][BP] ;错误

MOV AX, [SI][DI] ;错误

7. 相对基址变址寻址方式*

有效地址 = (BX) + (SI) + 8位或者16或位移量

有效地址 = (BX) + (DI) + 8位或者16或位移量

有效地址 = (BP) + (SI) + 8位或者16或位移量

有效地址 = (BP) + (DI) + 8位或者16或位移量

MOV AX, MASK[BX][SI]

或 MOV AX, MASK[BX+SI]

或 MOV AX, [MASK+BX+SI]

* 适于堆栈处理和数组处理

回答2:

有8种
立即数寻址方式
寄存器寻址方式
直接寻址方式
寄存器间接寻址方式
寄存器相对寻址方式
基址变址寻址方式
相对基址变址寻址方式
隐含寻址

回答3:

记得貌似学的时候有9种
基本的有6种
立即寻址
直接寻址
寄存器寻址
寄存器间接寻址
变址寻址
基+变址寻址

回答4:

立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,相对基址变址寻址共七种