您的位置:首页 > 其它

指令及操作数的寻址方式

2014-01-09 21:29 253 查看
一 指令寻址

1.顺序寻址方式 —— PC+1→PC

设置程序计数器(或称指令计数器)PC,每执行一条指令,计数器加1;

把计数器内容作为指令的存储地址。  

2.跳跃寻址方式 —— 当程序转移时,修改PC的内容

下条指令的地址,不是计数器给出的,而是当前指令指定的。

程序跳跃后,按新的指令地址开始顺序执行,指令计数器的内容相应改变。

二 操作数寻址方式

操作数的寻址:把操作数的形式地址,根据间址和变址等组合变换为操作数有效地址的过程。

⑴形式地址:指令中给出的地址。(不一定是实际地址)

⑵有效地址:操作数的实际地址。如寄存器编号或存储单元地址。

1. 立即寻址:指令的地址字段直接给出操作数本身

MOV AX,2000H ;将数据2000H存入累加器AX中

2. 直接寻址:指令字中直接给出操作数在内存的地址。形式地址=有效地址

MOV AX,[2000H]; 将有效地址为2000H的内存单元的内容读入AX中。

3. 隐含寻址:在指令中不明显地给出操作数的地址

4. 间接寻址意味着指令的地址码部分给出的地址A不是操作数的地址,而是存放操作数地址的主存单元的地址,简称操作数地址的地址。

5. 寄存器寻址方式:操作数放在CPU的通用寄存器中。此时指令中给出的操作数地址是通用寄存器的编号。

MOV AL,BL

6. 寄存器间接寻址方式:指令格式中的寄存器内容不是操作数,而是操作数的地址,该地址指明的操作数在内存中。

MOV AL,[BX] ;设 BX=2000H,(2000H)=80H,则 AL←80H

7.偏移寻址:直接寻址和寄存器间接寻址方式的结合;

有效地址由两部分组成:形式地址A,某个专用寄存器内的值。

EA=(R) +A。

1) 相对寻址方式

程序计数器PC的内容加上地址字段中A的值形成指令的目的地址

EA= (PC)+A A可正可负!

2) 基准地址放在专用的基址寄存器Rb中,指令的地址码部分给出偏移量A,最后操作数的有效地址为:EA=(Rb)+A。

8.段寻址方式

l 段寻址方式的实质还是基址寻址

9. 堆栈寻址

堆栈有寄存器堆栈和存储器堆栈两种形式,它们都以先进后出的原理存储数据。

数据的存取都与栈顶打交道,需要堆栈指示器(寄存器)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: