Киселёв В.А. и др. - Строительная механика в примерах и задачах (1061790), страница 42
Текст из файла (страница 42)
Ячейка с адресом 0000 всегда содержит нули во всех разрядах. Число нуль в системс с нлаваюнгсй занятой в машинг «Мгнкк-2» изображается так. +0000 0000 0177 в восьмеричной записи нлн +000 000 059 в десятичной записи. Программа для машины состоит нз команд, следующих одна за другой. Машина выбирает команды последовательно одну за другой, начиная с первой, вызывает из запоминающего устройства в арифметическое устройство необходимые числа, произво. дит всс операции над числами, предусмотренные командами, и записывает результаты в заночинающсс устройство. Имеются команды, позволяющие прерывать последовательное иснолненнг программы н передавать управление командам, раснолом сн. ным в других участках памяти, Каждая команда имеет соб.
ственный адрес, т. с. адрес той ячейки, в которой она нахо дится. Необходимо отмстить важную особенность запоминающих устройств электронных вычислительных машин. При считывании (выборке) числа из некоторой ячейки памяти в арифметическое устройство направляется копия числа, а само число остасгся на старом месте. При записи (засылке) шола н некоторую ячейк! запоминающего устройства старое содержимое ячейки стнрасг. ся, а его место занимает записываемое число рассмотрим сокращенную систему команд машины «Минск-2». Мы не будем рассматривать те команды машины, которые не требуются для решения изложенных ниже задач Ко, манды машины даны в табл.
20.2 Остановимся более подробно на некоторых командах. По команде +14 00 гб а» происходит алгебраическое сложение чисел, содержащихся в ячейках оперативного запоминающего устройства с адресами а, и аг и результат записывается в ячейку с адресом а» н в сумматор. Пусть в ячейке а~=5760 содержится число +04897247, а в ячейке а»=60!3 — число +0,003760262. Тогда после исполнении находящейся в ячейке 2102 команды +14 00 5760 6013 в ячейке 6013 и в сумматоре Таблица 202 Система команд машины «Минск-2» Коз оое- раиии Коа оне.
ранив !!со«зеив — 10 ~ (ав) +(а,)- (;„' (а,) +(аа) см (см) -(- (а )- ('тв (см) + (а,) см (.,)- (;„* (см и,)!- (;„' +14 -1-15 +!6 +17 — 12 (в) ( )-(;„' (,): (")- (;„' П. У, па' (см) пт П. У. п; — ЗО 00 к+ ! 0000 аз Если )7) О, то П. У. ат, если )(<О, то П. У.
ав. +70 ( в) — ( )-( (ав) — (аа) см (слс) — «сз) ( см (см) — (а,) см +24 +25 +26 +27 +74 — ЗΠ— 31 — 32 +34 +35 +36 +37 (А!) -1-(А„) Ае; и — 1; если и — ! ) О, то П.У. а,, если и — ! = О, то П. У. к+! — 20 действии +44 +45 +46 +47 Виа коиавзи (а,)- печать в 8«7« (ав) печать н !Ос/с Пропуск строки при печати Ничего не делать Останов Кол опе- рении Ус«овине обозначения ( в) +( а) (см (ав) + (аа см (см) + (па) (~' (см) + (а,) см +10 см — сумматор ат — первый адрес ав — второй адрес (см) — содержимое сумматора (аз) — содержимое ячейки с ад. ресом а, (ав) — содержимое ячейки с ад.
ресом а, — запись в пчей!ав (см ку с адресом ав и в сумма- тор +11 +!2 +13 (см (ав) — (аа) см (см) — (пз) (см (см) — (а,) см +20 +2! +23 действие с озаваюшей занятой (см (ав) (а,) см (см) (аа) ( в (см) (а,) см (ав) : (аа) ( в (ав) т (аз) см (см): (аа) ( в (см) с (ат) см действия с фиксаровзнной занятой — 60 00 1400 ав — 60 00 0400 ав — 60 00 3400 0000 +00 00 0000 0000 — 00 00 0000 0000 см — запись в сумматор П.
У. передача управлении А — адресная часть нчейки к+1 — собственный адрес следующей команды Й вЂ” результат предыдущей опе- рации появится число -ь0,4934850. Кратко запишем это в следующем виде: 2102 + 14 00 5760 6013 5760 +4897247+00 6013 +3760262 †6013 +4934850+00 Здесь числа записаны но десятичной системс счисления в нормализованной форме с плавающей запятой. На самом деле в регистрах арифметического устройства и в ячейках запогшшаюц!его устройства онн находятся в двоичной системс с веления в нормализованной форме с плавающей запятой (рис. 20.4).
Аналогичные црнмсры для кодов операций 1-24, +34, и +44 имеют вид: 2!14 +24 00 5760 60!5 5760 +2680012 †60!5 +2728457+03 6015 +2?28454+03 2076 +34 00 0303 6013 0303 +7850000+01 6013 + 143266! — 02 6013 + 1!24639 †2045 +44 00 030? 5760 0307 +9809999+01 5760 +9608399+О1 5760 +9794495+00 По командс +!О 00 а, из происходит сложение с фиксированной занятой чисел, содержащихся в ячейках аз н аь и загшсь результата в аз и в с)мматор.
Числа должны быть записаны но схеме с фиксированной занятой !рис. 20.6). Таким образом, в этом случае числа нс могут быть больше единицы. По командам с фиксированной запятой можно оперировать нс только с числами, но и с кодами, т. с. с наборами двоичных нулей н единиц, не имеющих числового смысла. Команда --10 00 а~ и, позволяет передать число нлн код из ячейки а~ в ячейку пз н в сумматор. После исполненна команды в ячейках аь аз и в сумматоре будет находиться число, которое до исполнения команды находилось в ячейке аь Команда с кодом — 30 производит безусловную передачу управления. Пусть, например, в ячейке 2104 находится команда 2104 — 30 00 2135 0133. 354 После исполнения этой команды в ячейке с адресом 0133 появится содержимое сумматора, оставшееся от прсдыдущеп команды, все команды, содержащиеся в ячейках с 2105 по 2!34 включительно, пропускаются, и следующей будет исполнена команда, содержащаяся в ячейке 2135.
Очень часто при безусловной передаче управления в качестве второго адреса пишут 0000. Команда с кодом операции — 3! позволяет персйтп к подпрограмме с возвратом на основную программу. Подпрограмма представляет собой отдельную программу, которая может включаться в работу по специальным командам в отдельных местах основной программы. Пусть, например, в ячейке й находится команда с кодом операции — 31 й †! й — 31 00 а, а, йт1 В ячейках выше и ниже и находятся другнс команды, а в ячгй- ках с а~ по аз — 1 находится группа команд, образующих по па!не грамму. Тогда, после исполнения команды — 31 00 а, а, произойдет передача управления команде в ячейке а, н ззппсь в ячейку аа команды а, — 30 00 й+1 0000. Таким образом, после исполнения всех команд подпрограммы, последняя команда, находящаяся в ячейке ам осуществлясг возврат к ячейке й+ 1 основной программы.
С помощью подпрограмм производится перевод пгссл ю десятичной системы счисления в двоичную н обратно, вычисление элементарных функций и другис действия. Команда с кодом операции --32 производит условную передачу управления. Если результат предыдущей команды Р:.: О, то происходит передача управления по первому адресу, в противном случае ()с(0) управление передается по второму адресу.
Команда с кодом операции +70 осуществляет поразрядпос (отдельпо в каждом двоичном разряде) логичсскос уашожсние кодов, содержащихся в ячейках аа и а, и запись результата в ячейку аа и в сумматор. В операции участвуют все 37 разрядов, включая знаковый. Логическое умножение кодов осуществляется согласно габлнце ОЛ 0 =-0 1ЛО=О ОЛ1=0 1Л1=1 35в Пусть, например, до исполнения команды, в ячейках содержались коды )в восьмеричной системс счисления см. рпс. 20.6) 5032 ",-0000 7777 0000 5021 +0000 5541 555! Послс исполнения команды 5103 +70 00 5032 5021 в ячейке 502! и в сумматорс будет 502! +0000 5541 0000 Команда с кодом опсраппи +74 осуп!ссчвляст пор: зрядшн погичсскос сложение.
В операции участв)чот вес 3? разрядов Тзбтнпз логического сложения имеет Вил: 0',,' 0.— 0 0' '! =1 1''0=1 1,~1=1 Пусть до исполнения «ома»ды в ячейках содсржалпсь коды (в восьмеричной системе): 5047 — 10 00 0000 500! 5021 -! 00 00 5541 0000 После исполнения команды 5104 +74 00 5047 5021 в ячейке 5021 и в сумматоре будст 5021 — 10 00 5541 5001 0003 +0012 000! 0002, 102! + 14 03 О!21 0235 тогда команда Команды с кодами операппй +?О и +74 применяются в основном для формирования команд и для изменения пх адресов Ячейки в оперативной памяти машины с адрссамп от 000! по 00!7 включительно могут использоваться как пндсксныс. В эти ячейки могут быть записаны специальныс коды, которые позволяют изменять адреса в процессе выполнения любой команды.
Если индекс-адрес команды не равен нулю, то псрсд испол. пением команды ее адресная часть !последние 24 разряда) складывается с содержимым адресной части соответствующей индекс-ячейки, н только после этого команда исполняется. Пусть, например, в ячейке 0003 содержится код перед исполнением преобразуется к виду 4-14 00 0122 0237 и после этого исполняется. Преобразование команды происходит в специальных регистрах, а в оперативной памяти команда остается в прежнем виде 1021 -" 14 03 0121 0235. Лля образования циклов служит команда с кодом операции — 20. циклом называется группа команд, составленная таким образом, что после исполнения последнеп команды этой группы управление передается опять первой команде.
Выход пз цикла осуществляется при исполнении опрсделспного условия. По команде — 20(ал а, (где ( может принимать значения от О! до 17) производятся следующие действия. К адресной части содер;кимого индексной ячейки ( прибавляется содержимое адреспои части ячейки а; из содержимого старших !3 разрядов индексной ячейки вычитается сдпппца (эти 13 разрядов рассматриваются как целое двоичное число), если результат вычитания оказывается большим и.ти равным нулю, то происходит передача управления по первому адресу, если результат меньше нуля, то происходит переход к следующей команде.
По команде †600004 ал происходит печать в дссятичпой системс счисления из ячейки аь Число, находящееся в ячейке ам должно бьггь предварительно переведено в дссятпчпую систему счисления с помощью стандартной подпрограммы. По команде — 60001400 ал происходит печать в восьмеричной системе счисления из ячейки аа. Число в ячейке аэ находится в двоичной системс и печатается в восьл|српчпо1! систсл~с непосредственно по комапде.
Команда +00000000 0000 ие производит никаких действий и л|ожет служить в качестве пробела в программе. Команда — 00 00 0000 0000 останавливает машипу. На электронной вычислительной машине «лМицск-2» можно работать вводя исходные числа и получая результаты в восьмеричной системс счисления, по тогда необходимо вручную производить перевод чисел из десятичной системы счислепия в восьмеричную и обратно.