Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 [ 54 ] 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225

8. [15] В последнем примере команды DIV на с. 165 содержимым гХ до операции является

+ 1235 0 3 1. Если бы содержимым регистра было - 1234 О 3 1 , в то время

как все остальные усйювия примера остались бы прежними, то что содержалось бы в регистрах А и X после выполнения комгиды DIV?

► 9. [15] Перечислите все команды MIX, которые могут изменить значение флага переполнения. (Исключите из рассмотрения операции с плавающей точкой.)

10. [15] Перечислите все команды MIX, которые могут изменить значение флага сравнения

► 11. [15] Перечислите все команды MIX, которые могут изменить содержимое гП.

12. [10] Найдите единственную команду, действие которой эквивалентно умножению текущего содержимого г13 на два и сохранению результата в г13.

► 13. [10] Предположим, в ячейке 1000 содержится команда "JOV 1001" Эта команда переключает флаг переполнения в положение О, если он находится в положении 1 (и в любом случае следующая команда выбирается из ячейки 1001). Изменится ли что-нибудь, если заменить эту команду командой "JNOV 1001"? Что будет, если заменить ее командой "JOV 1000" или "JNOV 1000"?

14. [20] Для каждой команды MIX выясните, существует ли способ определения части ±АА, 1 и F таким образом, чтобы она была эквивалентна NOP (за исключением того, что время выполнения может увеличиться). Предположим, о содержимом регистров либо ячеек памяти ничего не известно В тех случаях, когда возможно осуществить NOP, объясните, как это сделать. Примеры. INCA эквивалентна NOP, когда адресное и индексное поля равны нулю. JMP никогда не будет эквивалентна NOP, так как она изменяет содержимое rJ.

15. [10] Сколько буквенно-цифровых символов содержится в блоке данных тер.минала или устройства вывода на перфоленту; устройства чтения перфокарт и.ти перфоратора; АЦПУ?

16. [20] Напишите программу, которая обнуляет все ячейки памяти 0000-0099 и является (а) настолько короткой, насколько это возможно; (Ь) настолько быстрой, насколько это возможно. [Указание. Воспользуйтесь командой MOVE.]

17. [26] Пусть выполнены условия предыдущего упражнения, только нужно обнулить ячейки с 0000 по N включительно, где Л - текущее содержимое г12. Ваши программы должны удовлетворять условиям (а) и (Ь) из предыдущего упражнения, работать для любого значения О < N < 2999 и начинаться с ячейки 3000.

► 18. [22] После того как будет выполнена следующая программа "номер один", какие изменения произойд>т с регистрами, флагом переполнения, флагом сравнения и оперативной памятью (Например, каким будет окончательное значение в регистре гИ или гХ? Каким будет значение флага переполнения и флага сравнения?)

STZ 1 ENNX 1 STX 1(0:1) SLAX 1 ENNA 1 INCX 1 ENT1 1 SRC 1 ADD 1 DEC1 -1 STZ 1 СМРА 1



MOVE -1,1(1) NUM 1 CHAR 1 HLT 1 I

► 19. [Ц] Каким будет время выполнения программы из предыдущего примера без учета команды HLT?

20. [20] Напишите программу, которая заносит во все 4 ООО ячеек памяти команду HLT, а затем останавливается.

► 21. [24] (а) Может ли нуль вообще содержаться в регистре J? (Ь) Напишите программу, которая помещает в регистр J значение N, О < N < 3000, при условии, что N содержится в г14. Программа должна начинаться с адреса 3000. После выполнения программы содержимое всех ячеек памяти должно остаться неизменным.

► 22. [28] В ячейке 2000 содержится целое число X. Напишите две программы, которые вычисляют Х и останавливаются после занесения результата в регистр А. Одна программа должна занимать минимальное количество ячеек памяти MIX, а другая - выполняться за минимальное время. При этом предполагается, что А* умещадтся в одном слове.

23. [27] В ячейке 0200 содержится слово

Напишите две программы, которые получают "отраженное" слово

и останавливаются после занесения этого результата в регистр А. В одной из программ не должна использоваться способность MIX загружать и сохранять частичные поля слов. Обе программы должны занимать минимальное количество ячеек памяти, которое возможно при данных условиях (включая ячейки, занимаемые самой программой, а также ячейки, используемые для временного хранения промежуточных результатов).

24. [21] Пусть в регистрах А и X содержатся

соответственно. Напишите две программы,

которые меняют содержимое этих регистров на

соответственно и удовлетворяют двум условиям: (а) занимают минимальный объем памяти; (Ь) выполняются за минимальное время.

► 25. [30] Предположим, фирма - производитель компьютера MIX планирует выпустить более мощный компьютер ("Mixmaster"?) и ей нужно убедить как можно больше владельцев компьютера MIX потратиться на более дорогой компьютер Причем фирма собирается ргвработать аппаратное обеспечение нового компьютера таким образом, чтобы он был расширенным вариантом MIX. Это означает, что все правильно написанные программы для MIX будут работать на новом компьютере и в них не нужно будет вносить каких-либо изменений. Внесите свои предложения по поводу того, что можно было бы воплотить в новом компьютере. (Например, можете ли вы извлечь большую пользу, применив поле I команды?)

► 26. [32] Эта задача состоит в написании программы загрузки перфокарт. На каждом компьютере процесс начальной загрузки, т. е. получения первоначальной информации и



корректного начала работы, выполняется по-разному. В случае использования компьютера MIX содержимое перфокарты можно считать только в символьном коде, и перфокарты, содержащие саму загружающую программу, тоже должны удовлетворять этому ограничению Поэтому с перфокарты можно считать не все возможные значения в байтах; кроме того, каждое слово, считываемое с перфокарт, является положительным.

У компьютера MIX есть одна функция, о которой не говорилось в тексте раздела. Речь идет о "кнопке GO", которая используется для начального запуска компьютера, когда в его памяти содержится произвольная информация. Когда оператор нажимает эту кнопку, выполняются следующие действия.

1) Одна карта считывается в ячейки 0000-0015; по сути, это эквивалентно команде "IN 0(16)".

2) Кэгда карта полностью прочитана и устройство чтения перфокарт больше не занято, осуществляется переход (JMP) в ячейку 0000. Кроме того, обнуляется содержимое регистра J.

3) Компьютер начинает выполнять программу, которую он считал с перфокарты.

Замечание. У компьютеров MIX, Hf имеющих устройств чтения перфокарт, кнопка GO находится на другом устройстве ввода Но в данной задаче предполагается наличие устройства чтения перфокарт под номером 16.

Программу зги-рузки нужно написать так, чтобы она удовлетворяла следующим условиям.

i) Вводимая колода должна начинаться с программы загрузки, за которой следуют перфокарты входных данных, содержащие загружаемые числа. Затем идет "переходная карта" , которая закрывает программу загрузки и переходит к началу программы. Программа загрузки долж!!". поместиться на двух перфокартах

ii) Перфокарты входных данных должны иметь следующий формат.

Колонки 1-5; программой загрузки игнорируются

Колонка 6: число последовательных слов, загружаемых с этой перфокарты (лежит в промежутке от 1 до 7 включительно).

Колонки 7-10: адрес ячейки, в которую загружается слово 1. Этот адрес всегда больше 100, чтобы не было перекрытия с прогргшмой загрузки.

Колонки 11-20: слово 1.

Колонки 21-30: слово 2 (если содержимое колонки 6 > 2).

Колонки 71-80: слово 7 (если в колонке 6 содержится число 7). Содержимое слов 1,2, ... перфорируется и представляется в числовом виде по аналогии с десятичными числами. Если слово отрицательно, то знак "-" ("позиция И") перфорируется поверх наименьшей значащей цифры, т. е в колонке 20. Предполагается, что по этой причине символьный код вводится в колонки 10, И, 12, ..., 19, а не в 30, 31, 32, .. , 39. Например, если на перфокарте в колонках 1-40 выбито

ABCDE3100001234S678900000000010000000100,

то будут загружены следующие данные-

100U. +0123456789, 1001. +0000000001; 1002: -0000000100.

Ш) На переходной карте в колонках 1-10 должна содержаться информация в формате TRANSOnnnn, где nnnn - адрес ячейки, с которой начинается выполнение программы.

iv) Про.рамма загрузки должна работать независимо от размера байта, чтобы в содержащие ее перфокарты не нужно было вносить никаких изменений. На картах не должны содержаться символы, соответствующие байтам 20, 21, 48, 49, 50, ... (т. е. символы Е,



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 [ 54 ] 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225