Рубрики

ВОРОТА | GATE-CS-2004 | Вопрос 63

Направление для вопросов с 63 по 64:
Рассмотрим следующий программный сегмент для гипотетического ЦП, имеющего три пользовательских регистра 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, адрес возврата (в десятичной форме), сохраненный в стеке, будет
(А) 1007
(В) 1020
(С) 1024
(D) 1028

Ответ: (D)
Пояснение: Размер инструкций указан словами. Итак, первая инструкция займет 2 слова, т.е. 8 байтов (как адресуемые 32-битные байты, размер слова будет 32-битными), так что для 2-й инструкции 4 байта, для 3-х 4 байта, 4-го 8 байта. 5-го 4 байта. Поскольку 1-я инструкция начинается с 1000, а ее размер составляет 8 байтов, второй адрес инструкции будет 1008, как и в случае с 3-м адресом инструкции, будет 1012,4-й адрес инструкции. инструкция HALT, адрес возврата (в десятичном виде), сохраненный в стеке, будет адресом инструкции остановки. так что ответ — 1028.
Примечание. Если произойдет прерывание, то значение ПК будет адресом возврата этой инструкции после HALT.
Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | GATE-CS-2004 | Вопрос 63

0.00 (0%) 0 votes