问答题

在一个段式存储管理系统中,逻辑地址为32位,其中高16位为段号,低16位为段内偏移,以下是段表(其中的数据均为十六进制,见下表)。
段表
基地址 长度 保护
0 10000 18C0 只读
1 11900 3FF 只读
2 11D00 1FF 读-写
3 0 0 禁止访问
4 11F00 1000 读-写
5 0 0 禁止访问
6 0 0 禁止访问
7 13000 FFF 读-写
以下是代码段的内容:
main sin
240  push×[10108] 360  mov 4+(sp),r2
244  call sin 364  push r2
248  … 366  …
488  ret
试问: call sin指令的执行过程:先将当前PC值入栈,然后在PC内装入目标PC值。试问哪个值被压入栈了新的栈指针的值是多少新的Pc值是多少

【参考答案】

PC在调用call sin命令之后,自增为248,所以逻辑地址248被压入栈。由第(4)问我们知道,每次入栈栈指针是减少......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)