3. Разработайте расширенный код операций, который позволяет закодировать в 36-разрядной команде следующее:
+ 7 команд с двумя 32-разрядными адресами и номером одного 3-разрядного регистра;
+ 500 команд с одним 15-разрядным адресом и номером одного 3-разрядного регистра;
+ 50 команд без адресов и регистров.
4. Пусть в машине поддерживаются 16-разрядные команды и 6-разрядные адреса. Одни команды содержат один адрес, другие — два. Если существует п двухадресных команд, то каково максимальное число одноадресных команд?
5. Можно ли разработать такой расширенный код операций, который позволял бы кодировать в 12-разрядной команде следующее (размер регистра составляет 3 бита):
♦ 4 команды с тремя регистрами;
♦ 255 команд с одним регистром; + 16 команд без регистров.
6. Пусть имеется одноадресная машина с регистром-сумматором. Вот значения некоторых слов памяти:
♦ слово 20 содержит число 40; + слово 30 содержит число 50;
+ слово 40 содержит число 60;
+ слово 50 содержит число 70;
Какие значения загрузят в регистр-сумматор перечисленные ниже команды?
LOAD IMMEDIATE 20 LOAD DIRECT 20 LOAD INDIRECT 20 LOAD IMMEDIATE 30 LOAD DIRECT 30 LOAD INDIRECT 30
7. Для каждого из четырех видов машин — безадресной, одноадресной, двухадресной и трехадресной — напишите программу вычисления следующего выражения:
X = (А + В х C)/(D - Ex F).
В наличии имеются следующие команды:
+ безадресные: PUSH М, POP М, ADD, SUB, MUL, DIV;
+ одноадресные: LOAD M, STORE M, ADD M, SUB M, MUL M, DIV M;
♦ двухадресные: MOV (X = 7), ADD (X = X + 7), SUB (X = X - 7), MUL (I = Ix 7), DIV (X = X/7);
♦ трехадресные: MOV (X = 7), ADD (X = 7 + Z), SUB (X = 7 - Z), MUL (X = 7x Z), DIV (X = 7/Z).
Здесь M — это 16-разрядный адрес памяти, а X, 7 и Z — либо 16-разрядные адреса, либо 4-разрядные регистры. Безадресная машина использует стек, одноадресная машина — регистр-аккумулятор, а оставшиеся две имеют 16 регистров и команды, которые оперируют всеми комбинациями ячеек памяти и регистров. Команда SUB X,Y вычитает 7 из X, а команда SUB X,Y,Z вычитает Z из 7 и помещает результат в X Если длина кодов операций равна 8 бит, а размеры команд кратны величине 4 бит, сколько битов нужно каждой машине для вычисления X?
8. Придумайте такой механизм адресации, который позволяет определять в 6-разрядном поле произвольный набор из 64 адресов, не обязательно смежных.
9. В чем недостаток самомодифицирующихся программ, о котором не было упомянуто в тексте этой главы?
10. Переделайте следующие формулы из инфиксной записи в обратную польскую запись:
1) А + В+ C + D + E;
2) (А + В) х (С + D) + Е;
3) (AxB) + (CxD) + E\
4) (А - В) х (((С - D х E)/F)/G) х Я.
И. Какие из следующих пар формул в обратной польской записи математически эквивалентны?
1) АВ + С + иАВ С++;
2) АВ-С-иАВС--;
3) АВхС+иАВС + х.
12. Переделайте следующие формулы из обратной польской записи в инфиксную запись:
1) А В+ C + Dx;
2) А В/ CD/+;
3) ABCDE+xx/;