问题 问答题

假如一个程序的段表如下,其中存在位为1表示段在内存,存取控制字段中w表示可写,R表示可读,E表示可执行。对下面的指令在执行时会产生什么样的结果

段号 存在位 内存始址 段长 存取控制 其他信息
0 0 500 100 W
1 1 1000 30 R
2 1 3000 200 E
3 1 8000 80 R
4 0 5000 40 R
(1)STORE R1,[0,70]
(2)STORE R1,[1,20]
(3)LOAD R1,[3,20]
(4)LOAD R1,[3,100]
(5)JMP[2,100]

答案

参考答案:(1)从段表中可读出第0段的存在位为0,表示此段未装入内存,因此产生缺页中断。
(2)从段表中可读出第1段在内存中,但存取控制为R,即只读,而此指令要求写,故访问权限不合法,产生保护性中断。
(3)从段表中可读出第3段在内存中,此指令中段内位移小于段长,存取控制合法,求出其内存地址为8000+20=8020,指令将该单元的内容读到寄存器R1中。
(4)从段表中可读出第3段在内存中,但此指令中段内位移大于段长,产生越界中断。
(5)从段表可知第2段在内存中,此指令中段内位移小于段长,存取控制合法,求出其内存地址为3000+100=3100,指令执行后,跳转到内存单元3100处继续执行。

计算题
填空题