使用 Generic CPU 图在执行汇编指令时模拟数据移动
Simulating data movement while executing assembly instructions using Generic CPU diagram
如果这是我的问题的正确类别,我不知道。我正在分配一个任务来模拟上面的 ARM cpu 图上这三个汇编指令的数据移动。
1. mov r3,r1
2. ldr r5,[lr]
3. stmfd sp!,{r4,r5,r6,lr}
我当然知道这条指令的作用,但我无法找到任何资源来详细解释 CPU 中的内置流程,使这条指令起作用。
因此,我正在寻找有关 CPU 如何使用上面的 cpu 图表实现此指令的任何参考或任何解释。
"this instruction" - 哪一个?你展示了三个。另外,如果你知道每一个的作用,为什么你不能在图表上遵循它?
总之,我们先看第一个,mov r3,r1
。从名为 "program counter" 的框开始是合乎逻辑的。通过将当前指令提取地址放置到地址总线上的多路复用器。然后内存子系统在数据总线上回复指令字。它通过 "instruction reg" 进入 "instruction decoder",然后驱动控制信号以执行指令。首先,它告诉 "register file" 将源寄存器 r1
放入输出多路复用器,它从输出多路复用器进入 ALU,该 ALU 被编程为无操作,因为这只是一个简单的复制指令(mov
).未更改的值通过 "output register" 到达数据总线。指令解码器然后告诉右上角的多路复用器接受它并将其转发到寄存器文件,将其存储到目标寄存器 r3
.
如果这是我的问题的正确类别,我不知道。我正在分配一个任务来模拟上面的 ARM cpu 图上这三个汇编指令的数据移动。
1. mov r3,r1
2. ldr r5,[lr]
3. stmfd sp!,{r4,r5,r6,lr}
我当然知道这条指令的作用,但我无法找到任何资源来详细解释 CPU 中的内置流程,使这条指令起作用。 因此,我正在寻找有关 CPU 如何使用上面的 cpu 图表实现此指令的任何参考或任何解释。
"this instruction" - 哪一个?你展示了三个。另外,如果你知道每一个的作用,为什么你不能在图表上遵循它?
总之,我们先看第一个,mov r3,r1
。从名为 "program counter" 的框开始是合乎逻辑的。通过将当前指令提取地址放置到地址总线上的多路复用器。然后内存子系统在数据总线上回复指令字。它通过 "instruction reg" 进入 "instruction decoder",然后驱动控制信号以执行指令。首先,它告诉 "register file" 将源寄存器 r1
放入输出多路复用器,它从输出多路复用器进入 ALU,该 ALU 被编程为无操作,因为这只是一个简单的复制指令(mov
).未更改的值通过 "output register" 到达数据总线。指令解码器然后告诉右上角的多路复用器接受它并将其转发到寄存器文件,将其存储到目标寄存器 r3
.