问题解答之 指令寻址和操作数寻址
1.指令寻址方式和操作数寻址方式
a.指令寻址方式分为:顺序寻址方式和转移寻址方式。 b.操作数寻址方式有以下几种: 1、立即数寻址:操作数直接出现在指令字中。
2、直接寻址:在指令的操作数地址字段直接给出操作数在内存中的地址。
例如 MOVE R1,2000H
3、寄存器寻址、寄存器间接寻址
①寄存器寻址是在指令中直接给出操作数所在的通用寄存器的编号。如 ADD R1,R2
②寄存器间接寻址,在寄存器中给出的不是一个操作数,而是操作数在内存中的地址。
4、变址寻址:是把指令中的一个数值(称为变址偏移量)与指定的一个寄存器(称为变址寄存器)的内容相加之和作为操作数的地址。
5、相对寻址:是把指令中的一个数值(称为相对寻址偏移量)与程序计数器PC的内容相加之和作为操作数的地址或转移指令的转移地址。
与变址寻址的区别:变址寄存器可以是多个寄存器中的一个,而相对寻址中的寄存器已确定为PC,故无须在指令中指定。
6、基地址寻址:是把程序中所用的一个地址与一个特定的寄存器(称为基地址寄存器)的内容相加之和作为操作数的地址或指令地址。它与变址寻址、相对寻址形式上相似,但其用法却与二者有很大差别。基地址寄存器中的值由特权指令设定,用户不能在自己程序中修改。主要用于为多道程序或浮动地址程序定位存储空间。
7、间接寻址:是指在指令字的地址字段给出的是一个操作数地址的地址。
8、堆栈寻址:系统已用一个特定的寄存器称为堆栈指针(SP)的来访问堆栈,故不必在指令中指出操作数地址。
| ||||||||||||


linxum
博客统计信息
热门文章
最新评论
友情链接