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

📅  最后修改于: 2021-09-24 05:10:17             🧑  作者: Mango

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

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 暂停时发生中断,则堆栈中保存的返回地址(十进制)为
(一) 1007
(乙) 1020
(三) 1024
(四) 1028答案: (D)
说明:指令大小以文字给出。因此,第一条指令将占用 2 个字,即 8 个字节(作为 32 位字节可寻址,字大小将为 32 位)依此类推,第二条指令为 4 字节,第三个 4 个字节,第 4 个 8 个字节……第 5 个 4 个字节。由于第一条指令从 1000 开始,大小为 8 字节,第二条指令地址为 1008,同样,第三条指令地址为 1012,第 4 条指令地址为 1016,第 5 条指令地址为 1024,暂停指令地址为 1028。当发生中断时执行HALT指令,堆栈中保存的返回地址(十进制)将是halt指令的地址..所以答案是1028。
注 –如果发生中断,则 PC 的值将是 HALT 后该指令的返回地址。
这个问题的测验