例4-5 JMP指令。
如下所示是LC-3的JMP指令,假设该指令存放在内存地址x36A2处。
JMP R3
如下所示是LC-3的JMP指令,假设该指令存放在内存地址x36A2处。
15 14 13 12 | 11 | 10 9 | 8 7 6 | 5 4 3 2 1 |
1 1 0 0 | 0 | 0 0 | 0 1 1 | 0 0 0 0 0 |
其中:
bit[15:12]=1100,代表JMP指令操作码;
bit[8:6]=011代表R3寄存器,即其中存放了下一条指令地址的寄存器;
所以这条指令的译码结果是“将R3寄存器的内容装入PC寄存器(在执行节拍)"。换句话说,下一条要执行的指令地址来自R3寄存器。
具体处理过程的描还如下:
bit[15:12]=1100,代表JMP指令操作码;
bit[8:6]=011代表R3寄存器,即其中存放了下一条指令地址的寄存器;
所以这条指令的译码结果是“将R3寄存器的内容装入PC寄存器(在执行节拍)"。换句话说,下一条要执行的指令地址来自R3寄存器。
具体处理过程的描还如下:
首先在该指令执行之初,PC内容等于x36A2;于是,在取指令(FETCH)节拍整条JMP指令被读入IR寄存器,同时PC自动覆盖为x36A3;假设之前R3内容等于x5446,那么在执行节拍(EXECUTE)PC内容就被更换为x5446。这就导致了在下一个指令周期,被处理的指令来自地址x5446(而不是x36A3)。
试描述JMP指令的执行情况(假设R3内容为x369C,参考例4-5).