问答题 假如一个程序的段表如下,其中存在位为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处继续执行。
【答案解析】