Таненбаум Э.- Архитектура компьютера. стр.331

4) ABCDExF/+G-H/x+.

13. Напишите три формулы в обратной польской записи, которые нельзя переделать в инфиксную запись.

14. Переделайте следующие инфиксные логические формулы в обратную польскую запись:

1) (А И В) ИЛИ С]

2) (А ИЛИ В) И (А ИЛИ С);

3) (А И В) ИЛИ (С И D).

15. Переделайте следующую инфиксную формулу в обратную польскую запись и напишите IJVM-код, чтобы ее выполнить:

(5x2 + 7)- (4/2 + 1)

16. Пусть имеется команда ассемблера: MOV REG.ADDR

Это — команда Pentium 4 для загрузки регистра из памяти, а в UltraSPARC III для загрузки регистра из памяти нужно написать:

LOAD ADDR.REG

Почему порядок записи операндов разный?

17. Сколько регистров в машине, форматы команд которой представлены на рис. 5.17?

18. В форматах команд на рис. 5.17 бит 23 позволяет различать варианты 1 и 2 формата. Однако для определения варианта 3 формата никакого специального бита не предусмотрено. Как аппаратное обеспечение узнает, что нужен вариант 3?

19. Обычно программа определяет местонахождение переменной X в пределах интервала от А до В. Если бы имелась трехадресная команда с операндами А, В и X, сколько битов кода условия было бы установлено этой командой?

20. Pentium 4 содержит бит кода условий, состояние которого зависит от переноса бита 3 после выполнения арифметической операции. Зачем это нужно?

21. В UltraSPARC III нет такой команды, которая загружает в регистр 32-разрядное число. Вместо нее обычно используется последовательность из двух команд: SETHI и ADD. Существуют ли еще какие-нибудь способы загрузки 32-разрядного числа в регистр? Аргументируйте.

22. Один из ваших друзей стучится к вам в комнату в 3 часа ночи и радостно сообщает, что у него появилась замечательная идея — создать команду с двумя кодами операций. Что вы сделаете в этой ситуации: отправите своего друга получать патент или пошлете его (думать дальше)?

23. В процессоре 8051 не предусмотрены команды смещения более чем на 8 бит. Значит ли это, что адресация памяти в диапазоне выше 255 невозможна? Если возможна, объясните, как она осуществляется.

24. В программировании очень распространены следующие формы проверки:

if (k==0) ... if (a>b) ... if (k<5) ...

Предложите команду, которая будет эффективно проверять эти условия. Какие поля будут в вашей команде?

25. Покажите, каким будет 16-разрядное двоичное число 1001 0101 1100 ООН после:

1) сдвига вправо на 4 бита с заполнением нулями;

2) сдвига вправо на 4 бита с расширением по знаку;

3) сдвига влево на 4 бита;

4) циклического сдвига влево на 4 бита;

5) циклического сдвига вправо на 4 бита.

26. Как в машине, в которой нет команды CLR, очистить слово памяти?

27. Вычислите логическое выражение (А И В) ИЛИ С для:

♦ А = 1101 0000 1010 1101; + £ = 1111 1111 0000 1111;

♦ С = 0000 0000 0010 0000.

28. Придумайте, как поменять местами две переменные, А и В, не использовав при этом третьей переменной или регистра. Подсказка: подумайте о команде ИСКЛЮЧАЮЩЕЕ ИЛИ.


⇐ Предыдущая страница| |Следующая страница ⇒