Рубрики

ВОРОТА | GATE-CS-2007 | Вопрос 54

В упрощенном компьютере инструкции следующие:

Компьютер имеет только два регистра, и OP является либо ADD, либо SUB. Рассмотрим следующий основной блок:

Предположим, что все операнды изначально находятся в памяти. Окончательное значение вычисления должно быть в памяти. Каково минимальное количество команд MOV в коде, сгенерированном для этого базового блока?
(А) 2
(Б) 3
(С) 5
(D) 6

Ответ: (Б)
Объяснение:
Для инструкций t2 и t3
1. MOV c, t2
2. OP d, t2 (OP = ADD)
3. OP e, t2 (OP = SUB)

Для инструкций t1 и t4
4. MOV a, t1
5. OP b, t1 (OP = ADD)
6. OP t1, t2 (OP = SUB)

7. MOV t2, a (значение AS END должно быть в ПАМЯТИ)

Шаг 6 должен был быть достаточным, если бы вопрос не задавал окончательное значение в памяти и скорее был бы в реестре. На последнем этапе требуется еще один MOV, таким образом, в общей сложности 3.
Тест на этот вопрос

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

ВОРОТА | GATE-CS-2007 | Вопрос 54

0.00 (0%) 0 votes