请记住:所谓寻址方式就是寻找指令或操作数所在地址的方法。
概念:寻址方式是指寻找指令或操作数有效地址的方式,表示指令运算对象的来源和运算结果的去向,分为指令寻址和数据寻址两大类。
指令寻址:寻找下一条将要执行的指令地址成为指令寻址。
数据寻址:寻找操作数的地址称为数据寻址。
指令寻址方式有两种:顺序寻址、跳跃寻址
1、顺序寻址:可通过程序计数器(PC)加1(一个指令的字长),自动形成下一条指令的地址。
2、跳跃寻址:下一条指令的地址码不由PC直接给出,而由本条指令给出下条指令地址的计算方式,跳跃结果会使当前指令修改PC值,下一条指令仍会通过PC给出。
数据寻址方式
操作数可能的来源或运算结果可能的去处:
- 由指令直接给出 - 寄存器 - 内存单元
寻找操作数所在地址的方法可以有三种大类型:
- 指令直接给出的方式(立即寻址)
1. 由指令直接给出运算的数据(操作数是立即数),为常数形式或字符形式
2. 立即数只表示运算的数据,无地址含义
3. 立即寻址仅适合源操作数。即源操作数是参加操作的数据本身
eg:MOV AX , 1200H(将常数1200H数据复制到AX寄存器中)
- 存放于寄存器中的寻址方式(寄存器寻址)
1. 参加操作的操作数在CPU的通用寄存器中
2. 此种寻址方式中的寄存器主要是通用寄存器,不含控制寄存器,段寄存器限制使用(偶尔使用)
eg:MOV AX ,BX(将寄存器BX复制给AX)
- 存放于存储器中的寻址方式(存储器操作数的寻址方式)
1. 指令操作的对象在内存中,表现形式为:[ ]
2. 指令中给出运算对象在内存某个逻辑段中的偏移地址:[偏移地址],不会给出段地址和物理地址
3. 逻辑段的段基地址通过默认或重设方式给出
指令寻址方式(二)中有详细介绍五种存储器寻址方式~
- 隐含给出方式(隐含寻址)
指令中隐含了一个或者两个操作数的地址,即操作数在默认的地址中。
乘数指令MUL BL ,隐含了被乘数。