Cтраница 2
Как указывалось выше, процедура ИСПОЛНЕНИЯ ТЕСТИРОВАНИЯ предназначена для вызова существующих программных процедур нижнего уровня в соответствующем порядке. Процедура ИСПОЛНЕНИЯ ТЕСТИРОВАНИЯ должна вызывать процедуру ИНИЦИАЛИЗАЦИИ АППАРАТУРЫ и содержать цикл ВЫПОЛНЯТЬ НЕПРЕРЫВНО... Показаны также листинги ассемблера Intel 8085, так как они содержат адреса команд. [16]
Микрокоманда, подлежащая исполнению, поступает в блок управления, содержащий программируемую логическую матрицу расшифровки кода микрооперации. Блок управления вырабатывает управляющие сигналы, задающие АЛУ режим работы, соответствую щий поданной микрокоманде. АЛУ параллельно обрабатывает два операнда. Обработка 16-разрядных слов осуществляется за дна цикла под управлением двухцикловых микрокоманд. Обработка 8-разрядных слов требует одного цикла и реализуется одноцикловымп микрокомандами. При регистровых микрокомандах код операции, поступающий па рас шифровку в блок управления, содержится в разрядах 8 - 15 микрокоманды, а поля а и b микрокоманды содержат адреса регистров общего назначения, содержимое которых подвергается обработке. Запись результата обработки производится в РОН по адресу поля а микрокоманды. [17]
Устройство ввода данных служит для введения в машину исходных чисел и программы вычислений. Программа представляет собой последовательность команд. Команда содержит указания, где находятся числа и какую операцию над ними следует произвести. Программа записывается на перфокартах, перфоленте или магнитной ленте. Команда и числа представляются в виде кодов. Программа составляется заранее и вводится в машину перед решением задачи. При введении программы числа и команды фиксируются в ячейках запоминающего устройства. Часто применяются трехадрес-ные команды, которые содержат адреса двух исходных чисел ( номера ячеек, где хранятся эти числа в запоминающем устройстве) и адрес ячейки, куда должен быть отправлен результат операции над этими двумя числами. После того как программа введена в запоминающее устройство, все решение производится автоматически. [18]
Предположим теперь, что нужно составить много подпрограмм и что заранее неизвестно, как они должны быть размещены в памяти. Один из способов состоит в том, чтобы составить все подпрограммы так, как если бы они начинались с одного и того же стандартного адреса, например 003, а затем, когда будет принято окончательное решение о том, где их надо разместить, для присвоения всем этим подпрограммам действительных адресов применить компилирующую программу. Напомним, что аналогичная задача возникает в связи с перепиской подпрограмм с барабана в различные места оперативной памяти. Единственная трудность заключается в том, чтобы определить те адреса, которые надо менять. Такие адреса не нужно менять. С другой стороны, некоторые константы могут содержать адреса, которые необходимо распознавать и менять. Один из способов решения этой задачи состоит в том, что при составлении программы программист должен написать сначала все команды, затем все те константы, которые содержат адреса, и наконец все остальные константы. [19]