寻址方式

文档状态:编辑....



寻址的意义重大


Table of Contents

寻址方式

通常是指cpu指令中规定的寻找<操作数>所在地址的方式.

8086


分类方式



立即寻址


EX

EX:
  MOV CL, 05
  MOV AX, 3100H

由上可以看出,操作数直接在指令中,直接取出来了

设计角度


寄存器寻址


EX

EX:
  MOV SS, AX

指定某些cpu寄存器存放操作数.
这些寄存器可能为:
1. 通用数据寄存器(8/16bit)
2. [地址指针/变址]寄存器
3. 段寄存器

设计角度

疑问


直接寻址


EX

EX:
  MOV AX, [3100H]#最好写够16bit

等价于:
  MOV AX, DS:[3100H]
计算:
  (DS)*10H+3100H-->AX

设计角度

说明

[8086特性,不要随意推广]

注意了由于选定4个寄存器作为间接寻址的工具,所以隐含寄存器不是唯一的,如上所示,还能进行SS:BP寻址.

疑问


寄存器间接寻址


EX

EX:
  MOV AX, [DI]

等价于:
  MOV AX, DS:[DI]
计算:
  (DS)*10H+(DI)-->AX

说明

[8086特性,不要随意推广]

设计角度


变址寻址


EX

EX:
  MOV AX, [SI+3100H]
  MOV AX, [SI+LABEL]
等价于:
  MOV AX, DS:[SI+3100H]
计算:
  (DS)*10H+(SI)+3100H-->AX

说明

[8086特性,不要随意推广]

设计角度


基址寻址


EX

EX:
  MOV SI, DATA[BX]
  MOV BLOCK[BP], AX
等价于:
  MOV SI, DS:[SI+DATA]
计算:
  (DS)*10H+(SI)+DATA-->SI

说明

[8086特性,不要随意推广]

设计角度


基址+变址寻址


EX

EX:
  MOV AX, DATA[BX][SI]
等价于:
  MOV AX, DS:[BX+SI+DATA]
计算:
  (DS)*10H+(BX)+(SI)+DATA-->SI

说明

[8086特性,不要随意推广]

指令中规定一个基址寄存器和一个变址寄存器,两个不能同时出现
- 只允许一个基址寄存器和一个变址寄存器
- 隐含寄存器取决使用的基址寄存器 BX-->DS, BP--->SS
- 允许段超越
- 多种书写方式[以后补加]

设计角度