计算机中指令的操作数可以从哪里来?

如题所述

  你好
  .
  计算机指令中要用到的操作数一般可以来自:

  1.CPU 内部的通用寄存器,此时应在指令字中给出用到的寄存器编号(寄存器名), 通用寄存器的数量一般为几个、十几个,故在指令字中须为其 分配 2、3、4、5 或更多一点的位数来表示一个寄存器;该寄存器的内容,可以是指令 运算用到的数据,也可能用作为一个操作数的地址。

  2.可以是外围设备(接口)中的一个寄存器,通常用设备编号或设备入出端口地址或设 备映像地址来表示;

  3.可以是内存储器的一个存储单元,此时应在指令字中给出该存储单元的地址。

  计算机的寻址方式:

  1.立即数寻址:操作数直接给出在指令字中,即指令字中直接给出的不同再是操作数地 址,而是操作数本身。

  2.直接寻址:操作数地址字段直接给出操作数在存储器中的地址。

  3. 寄存器寻址:指令字中直接给出操作数所在的通用寄存器的编号。

  4. 寄存器间接寻址:指令字中给出通用寄存器的编号,在寄存器中给出的不是一个操 作数,而是操作数地址时,就可以用这一地址去读写存储器。

  5. 变址寻址:指令字中给出的一个数值(变址偏移量)与指定的一个寄存器(变址寄 存器)的内容相加之和作为操作数的地址,用于读写存储器。

  6.相对寻址:指令字中给出的一个数值(相对寻址偏移量)与程序计数器 PC 的内容相 加之和作为操作数的地址或转移指令的转移地址。

  7. 基地址寻址:把在程序中所用的地址与一个特定的寄存器(基地址寄存器)的内容 相加之和作为操作数的地址或指令的地址。

  8.间接寻址:指令字的地址字段给出的既不是一个操作数的地址,也不是下一条指令的 地址,而是一个操作数地址的地址,或一条指令地址的地址。

  9.堆栈寻址:堆栈是存储器中一块特定的按“后进先出”原则管理的存储区,该存储区中被读写单元的地址是用一个特定的寄存器命同的,该寄存器被称为堆栈指针(SP)。如果有些指令,其操作码部分已经指明一个操作数为堆栈中的一个单元的内容,则它已经约定将使用SP访问该单元,故不必在指令的操作数地址字段中另加说明.

  祝顺利,如有帮助,还望及时采纳.
温馨提示:答案为网友推荐,仅供参考
相似回答