考虑一个具有字节可寻址存储器的处理器。假设所有寄存器,包括程序计数器 (PC) 和程序状态字 (PSW),大小为 2 字节。主内存中的堆栈是从内存位置 (0100)hex 实现的,并且它向上增长。堆栈指针 (SP) 指向堆栈的顶部元素。SP 的当前值为 (016E)hex。CALL 指令有两个字,第一个字是操作码,第二个字是子程序的起始地址(一个字 = 2 字节)。CALL 指令实现如下:
- 将 PC 的当前值存储在堆栈中
- 将 PSW 寄存器的值存入堆栈
- 加载PC中子程序的起始地址
取 CALL 指令之前 PC 的内容是 (5FA0)hex。执行 CALL 指令后,堆栈指针的值为
A. 016A
B. 016C
C. 0170
D. 0172
这个问题是在 GATE 2015 计算机科学中提出的。
我将 D 标记为答案,请帮助我验证我的答案,因为我不确定我是否做对了。
提前致谢。