微机原理 Pro Max (第四章 汇编指令系统)
考点1 指令的寻址方式
1.操作数的寻址方式
指令中描述操作数地址的方式。
寄存器寻址方式
立即数寻址方式
直接寻址方式
寄存器间接寻址方式
寄存器相对寻址方式
基址变址寻址方式
相对基址变址寻址方式
寄存器 立即数 是cpu访问内部寄存器的寻址
寄存器 主存
立即数 的代码段
其他的通常访问数据段
1. 寄存器寻址方式
若操作数项指出的是存放操作数的寄存器,则操作数的这种寻址方式就叫寄存器寻址方式。
例 MOV AX,BX MOV AL,BL
MOV DS,AX MUL BX ;AX*BX——DX|AX
目 源
【指令的格式 操作码|操作数】
2、 立即数寻址方式
一个操作数项描述的是操作数本身。
该操作数的常量或常量表达式的值称为立即数。
只用于源操作数。
3、存储器寻址方式
操作数项指出的是操作数在存储器中的存放地址。
1)直接寻址方式
在操作数项中直接表示出操作数的偏移地址。
MOV AL, [0010H]
MOV AX, [0010H]
方括号中直接给出有效地址(EA)
直接用变量名
或将变量名置于方括号[ ]中
段寄存器默认为DS。
如果实际使用的段寄存器不是DS,则必须用段前缀明确指出
2)寄存器间接寻址方式
以某个16位寄存器的内容作为操作数的偏移地址。
16位寄存器只有SI、DI、BX和BP,
使用时必须置于方括号[ ]中。
使用SI、DI或BX时,段寄存器默认为DS。
如果要访问的不是默认的段:MOV AL,ES:[DI]
使用BP时,段寄存器默认为SS。
3)寄存器相对寻址方式
有效地址 =[16位寄存器+D]或
D[16位寄存器]
16位寄存器只能是SI、DI、BX和BP;
D为位移量 ,可以是一个8位或16位带符号数,也可以是变量。
使用SI、DI或BX时,段寄存器默认为DS;
使用BP时,段寄存器默认为SS。
4)基址变址寻址方式
BX和BP称为基址寄存器,
SI和DI称为变址寄存器(SI为源变址,DI为目标变址)
有效地址=[基址寄存器+变址寄存器]或
[基址寄存器][变址寄存器]
用BX时,段寄存器默认为DS
用BP时,段寄存器默认为SS。
不能指出访问的数据类型。
5)相对基址变址寻址方式
偏移地址=[基址寄存器+变址寄存器+D]
或 D[基址寄存器][变址寄存器]
用BX时,段寄存器默认为DS,
用BP时,段寄存器默认为SS。