计算机中指令的操作数可以从哪里来?
1个回答
展开全部
你好
.
计算机指令中要用到的操作数一般可以来自:
1.CPU 内部的通用寄存器,此时应在指令字中给出用到的寄存器编号(寄存器名), 通用寄存器的数量一般为几个、十几个,故在指令字中须为其 分配 2、3、4、5 或更多一点的位数来表示一个寄存器;该寄存器的内容,可以是指令 运算用到的数据,也可能用作为一个操作数的地址。
2.可以是外围设备(接口)中的一个寄存器,通常用设备编号或设备入出端口地址或设 备映像地址来表示;
3.可以是内存储器的一个存储单元,此时应在指令字中给出该存储单元的地址。
计算机的寻址方式:
1.立即数寻址:操作数直接给出在指令字中,即指令字中直接给出的不同再是操作数地 址,而是操作数本身。
2.直接寻址:操作数地址字段直接给出操作数在存储器中的地址。
3. 寄存器寻址:指令字中直接给出操作数所在的通用寄存器的编号。
4. 寄存器间接寻址:指令字中给出通用寄存器的编号,在寄存器中给出的不是一个操 作数,而是操作数地址时,就可以用这一地址去读写存储器。
5. 变址寻址:指令字中给出的一个数值(变址偏移量)与指定的一个寄存器(变址寄 存器)的内容相加之和作为操作数的地址,用于读写存储器。
6.相对寻址:指令字中给出的一个数值(相对寻址偏移量)与程序计数器 PC 的内容相 加之和作为操作数的地址或转移指令的转移地址。
7. 基地址寻址:把在程序中所用的地址与一个特定的寄存器(基地址寄存器)的内容 相加之和作为操作数的地址或指令的地址。
8.间接寻址:指令字的地址字段给出的既不是一个操作数的地址,也不是下一条指令的 地址,而是一个操作数地址的地址,或一条指令地址的地址。
9.堆栈寻址:堆栈是存储器中一块特定的按“后进先出”原则管理的存储区,该存储区中被读写单元的地址是用一个特定的寄存器命同的,该寄存器被称为堆栈指针(SP)。如果有些指令,其操作码部分已经指明一个操作数为堆栈中的一个单元的内容,则它已经约定将使用SP访问该单元,故不必在指令的操作数地址字段中另加说明.
祝顺利,如有帮助,还望及时采纳.
.
计算机指令中要用到的操作数一般可以来自:
1.CPU 内部的通用寄存器,此时应在指令字中给出用到的寄存器编号(寄存器名), 通用寄存器的数量一般为几个、十几个,故在指令字中须为其 分配 2、3、4、5 或更多一点的位数来表示一个寄存器;该寄存器的内容,可以是指令 运算用到的数据,也可能用作为一个操作数的地址。
2.可以是外围设备(接口)中的一个寄存器,通常用设备编号或设备入出端口地址或设 备映像地址来表示;
3.可以是内存储器的一个存储单元,此时应在指令字中给出该存储单元的地址。
计算机的寻址方式:
1.立即数寻址:操作数直接给出在指令字中,即指令字中直接给出的不同再是操作数地 址,而是操作数本身。
2.直接寻址:操作数地址字段直接给出操作数在存储器中的地址。
3. 寄存器寻址:指令字中直接给出操作数所在的通用寄存器的编号。
4. 寄存器间接寻址:指令字中给出通用寄存器的编号,在寄存器中给出的不是一个操 作数,而是操作数地址时,就可以用这一地址去读写存储器。
5. 变址寻址:指令字中给出的一个数值(变址偏移量)与指定的一个寄存器(变址寄 存器)的内容相加之和作为操作数的地址,用于读写存储器。
6.相对寻址:指令字中给出的一个数值(相对寻址偏移量)与程序计数器 PC 的内容相 加之和作为操作数的地址或转移指令的转移地址。
7. 基地址寻址:把在程序中所用的地址与一个特定的寄存器(基地址寄存器)的内容 相加之和作为操作数的地址或指令的地址。
8.间接寻址:指令字的地址字段给出的既不是一个操作数的地址,也不是下一条指令的 地址,而是一个操作数地址的地址,或一条指令地址的地址。
9.堆栈寻址:堆栈是存储器中一块特定的按“后进先出”原则管理的存储区,该存储区中被读写单元的地址是用一个特定的寄存器命同的,该寄存器被称为堆栈指针(SP)。如果有些指令,其操作码部分已经指明一个操作数为堆栈中的一个单元的内容,则它已经约定将使用SP访问该单元,故不必在指令的操作数地址字段中另加说明.
祝顺利,如有帮助,还望及时采纳.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询