📜  门| GATE-CS-2004 |第63章

📅  最后修改于: 2021-06-28 17:33:11             🧑  作者: Mango

问题63至64的方向:
对于具有三个用户寄存器R1,R2和R3的假设CPU,请考虑以下程序段。

Instruction      Operation      Instruction Size(in words)
 MOV R1,5000;      R1 ¬ Memory[5000]      2
 MOV R2, (R1);      R2 ¬ Memory[(R1)]      1
 ADD R2, R3;      R2 ¬ R2 + R3              1
 MOV 6000, R2;      Memory [6000] ¬ R2      2
 HALT              Machine halts              1 

请考虑使用32位大小的字节可寻址的内存,并且已从内存位置1000(十进制)开始加载程序。如果在执行HALT指令后暂停CPU时发生中断,则堆栈中保存的返回地址(十进制)将为
(A) 1007
(B) 1020
[C) 1024
(D) 1028答案: (D)
说明:指令大小以文字给出。因此,第一条指令将占用2个字,即8个字节(因为32位字节可寻址,字长将为32位),以此类推,第二条指令为4个字节,第3个4个字节为第4个8字节。第5个4个字节。当第一条指令从1000开始且大小为8字节时,第二条指令地址将为1008,同样,第三条指令地址将为1012,第四条指令地址为1016,第五条指令地址1024,而停止指令地址将为1028。如果是HALT指令,则保存在堆栈中的返回地址(十进制)将是halt指令的地址.so的答案是1028。
注–如果发生中断,则PC的值将为HALT之后该指令的返回地址。
这个问题的测验