指令MOV (R1)+,X(R0)
时间: 2023-08-01 18:06:03 浏览: 127
好的,下面是MOV (R1)+,X(R0)指令的指令流程:
FT:将R1中存储的寄存器地址存储到MAR寄存器中。
R1->MAR
FT:将MAR寄存器中指定的内存地址中存储的值存储到MDR寄存器中。
M->MDR
FT:将R1寄存器中存储的寄存器地址加1,并将其存储回R1寄存器中。
(R1)+
FT:将R0中存储的寄存器地址加上X中存储的偏移量,将其存储到MAR寄存器中。
R0+X -> MAR
FT:将MDR寄存器中的值存储到MAR寄存器中指定的内存地址中。
MDR->M
整个指令执行完毕后,将R1寄存器中存储的寄存器值存储到R0+X寄存器地址所指向的内存单元中,并将R1寄存器中存储的寄存器地址加1。这个指令通常被用于将R1中存储的值逐个存储到R0+X寄存器地址所指向的内存单元中。
相关问题
指令mov (r1)+,x(r0
好的,下面是MOV (R1)+,X(R0)指令的指令流程:
FT:将R1中存储的寄存器地址存储到MAR寄存器中。
R1->MAR
FT:将MAR寄存器中指定的内存地址中存储的值存储到MDR寄存器中。
M->MDR
FT:将R1寄存器中存储的寄存器地址加1,并将其存储回R1寄存器中。
(R1)+
FT:将R0中存储的寄存器地址加上X中存储的偏移量,将其存储到MAR寄存器中。
R0+X -> MAR
FT:将MDR寄存器中的值存储到MAR寄存器中指定的内存地址中。
MDR->M
整个指令执行完毕后,将R1寄存器中存储的寄存器值存储到R0+X寄存器地址所指向的内存单元中,并将R1寄存器中存储的寄存器地址加1。这个指令通常被用于将R1中存储的值逐个存储到R0+X寄存器地址所指向的内存单元中。
那写出 MOV (R1)+,X(R0)的取址流程
MOV (R1)+,X(R0) 的取址流程如下:
FT: M->IR PC+1->PC
M1: R1->MAR MAR+1->MAR M->MAR MDR->C
M2: R0->MAR MDR->MAR X+MDR->MAR M->MAR C->MDR MDR->M
DT: 无操作
ET: 无操作
其中,M1 表示第一个内存访问(Memory Access),M2 表示第二个内存访问。解释如下:
FT: 从内存中取出指令,存储在指令寄存器 IR 中。PC 加 1,指向下一条指令的地址。
M1: 将寄存器 R1 中的值存储到内存地址寄存器 MAR 中,MAR 加 1,指向下一个内存地址。从内存中取出 MAR 中存储的地址中存储的值,存储到 MAR 中。从内存数据寄存器 MDR 中取出存储的值存储到 C 中,将 MDR 中存储的值存储到 X(R0) 中存储的地址中。
M2: 将寄存器 R0 中的值存储到内存地址寄存器 MAR 中,将 MAR 中存储的值加上 X 中存储的值,即计算出要存储的内存地址。将 C 存储到内存数据寄存器 MDR 中,将 MDR 中存储的值存储到 MAR 中存储的地址中。
DT: 无操作。
ET: 无操作。