
книги из ГПНТБ / Семененко В.А. Вычислительная техника в инженерных и экономических расчетах учеб. пособие для студентов всех специальностей
.pdfЕсли УЧ > 0100, то содержимое ячейки |
а сдвигается вле |
|
во, если |
УЧ < 0100—вправо, если УЧ = 0, |
число не сдвига |
ется. |
|
|
В электронных машинах предусмотрены различные моди |
||
фикации |
команд сдвига (сдвиг всего кода |
или его части, |
сдвиг по адресу, сдвиг по порядку и т. д.).
Из специальных операций над кодами мы рассмотрим
операции «сложение |
команд» |
и «засылка |
кодов». |
|
|
|
Сложение команд |
|
|
+ к |
|
аі |
«2 |
Р |
|
|
(аі) + |
К(а)г -* Р . |
|
(аі) — команда, |
над |
которой .производится |
действие. |
|
(аг) —константа, |
которую нужно прибавить к (аі) для фор |
|||
мирования заданного кода, |
|
р — ячейка, в которую отсылается результат.
Операция «сложение команд» применяется обычно при переадресации. Переадресация заключается в изменении кода команды путем прибавления к этому коду некоторого специ альным образом подобранного двоичного числа.
Пример 1. В данном коде (а,) = 116, 0165, 0003, 0377 первый адрес увеличить на одну единицу, второй адрес увеличить на две единицы, а третий адрес уменьшить на шесть единиц.
Для осуществления такой переадресации в машине выполняется команда
+ к |
“і |
ч |
Р |
|
(«!)= 115, 0166, |
0003,, 0377. |
|
|
(о„) = 000, 0001, 0002, 7772. |
|
|
Действительно: |
|
|
|
к о п |
А, |
а2 |
Аз |
МБ |
0166, |
0003, |
0377 |
000, |
0001, |
0002, |
ГП2 |
Шб, |
0156 |
0ДО5, |
0371 |
Полученный код Шб, 0166, 0005, 0371 = (о) удовлетворяет поставлен ным условиям.
Засылка кодов
П |
аі |
Р |
(*і)—■Р-
180
Содержание ячейки с номером <ц отсылается в ячейку с номером р. Пусть (<ц) = А. После выполнения этой команды
(Р)= А.
3.К операциям управления относятся операции изменения
порядка выбора кодов из оперативной памяти. Эти команды могут быть безусловным« и условными.
Безусловный переход
БП |
а |
При выполнении этой команды происходит переход не к следующей по номеру команде, а к команде с номером а.
Условный переход
Условный переход по управляющему признаку со реали зуется любой из Двух команд.
УПШ, |
а |
При выполнении этой команды происходит переход к сле дующей по номеру команде, если со = 0, и к команде с номедом а, если со =і 1.
уп Шо а
При выполнении этой команды происходит переход к сле дующей по номеру команде, если со = 1, и к команде с номе ром а, если со = 0.
Признак со (0 или 1) вырабатывается командой, предше
ствующей команде |
условного перехода. Условия выработки |
|||||
признака со приведены в табл. 19. |
|
Т а б л и ц а 19 |
|
|||
|
|
|
|
|
||
Операция |
|
Ш= 1 |
|
ш = 0 |
|
|
1. Сложение |
1 |
если результат |
отрица- |
0 |
||
2. Вычитание |
J |
тельный, т. е. < |
0 |
если результат > |
||
3. Умножение |
-і |
|
|
|
|
|
4. Деление |
> |
если результат по моду- |
|
|||
5. Извлечение корня |
) |
1 |
||||
ЛЮ > 1 |
|
если результат < |
||||
бу Логические |
1 |
|
|
|
|
|
7. Сдвиг |
1 |
если результат |
равен |
0 если результат Ф 0 |
181
К командам управления относятся также команды печати результатов и останова машины.
Печать результатов
п ч |
ССі |
■ а2 |
Выдать на печать информацию с ячейки аі по а2.
I
Останов машины
ОСТ
При выполнении этой команды происходит останов ма шины.
4. Операции обмена кодами между оперативной (внут ренней) и внешней памятью служат для передачи кодов из одного запоминающего устройства в другое.
I
5. Специальные команды
Команда ввода
Вв |
|
а |
|
ввода вводит программу в МОЗУ, начиная с |
|||
мером а |
|
|
|
СП, |
“і |
ап |
|
Команда обращения |
к стандартной программе СП] |
это команда |
|
или группа команд обращения |
к стандартной программе |
перевода чисел |
из двоично-десятичной системы счисления в двоичную. Адреса переводи
мых чисел |
задаются в |
А| |
(адрес первого переводимого числа в |
данном |
|||
случае а,) |
и А3 (адрес |
последнего переводимого числа здесь а„). |
|
||||
|
|
сп2 |
|
“і |
|
ат |
|
сел |
СП2— это команда |
обращения к стандартной программе перевода чи |
|||||
из двоичной системы |
счисления в двоично-десятичную с ячейки |
||||||
по |
ат. |
|
|
|
|
|
|
|
Команды Be и СПі должны быть всегда первыми в программе, |
||||||
команда СП2— предшествовать |
команде печати |
П4. |
кнопка |
||||
|
Учитывая, что при |
вводе |
программы может |
использоваться |
|||
ввода, действие которой соответствует команде Вв с а = 0001, |
а также |
182
что присутствие команд СПі и СП2является необходимым во всех про
граммах, эти команды в дальнейших программах опускаются. Однако необходимо всегда погнить об их присутствии и употреблять их при решении задачи на машине.
§1—3. Особенности представления двухадресных команд
вЦВМ и пример их использования
Длина, формата команд может быть равна |
одному, двум |
и трем полусловам, т. е. 16, 32 и 48 разрядам |
соответственно |
(табл. 20). Формат команды определяется значением первых двух разрядов «ода операции.
|
|
|
Т а б л и ц а 20 |
Номера |
разряда |
Длина команды |
Формат команды |
0 |
0 |
одно полуслово |
RR |
0 |
1 |
два, полуслова |
R X |
1 |
0 |
два полуслова |
RS или ST |
1 |
1 |
три полуслова |
SS |
П р и м е ч а л и е.
RR— означает |
операцию типа регистр — регистр; |
результат |
запомина- |
|
ется в первом регистре. |
|
|
|
|
R X — операция |
типа регистр — память, при этом |
адрес памяти нндек- |
||
сируется; результат запоминается в первом регистре. |
|
|||
RS— операция типа регистр — память |
(без индексации). |
|
||
S T — операция, |
когда один операнд |
находится в |
памяти, а |
другой — в |
самой команде.
S S — операция типа память — память.
Пример 1.
Сложить содержимое общего регистра с номером 9 с содержимым общего регистра с номером 7.
Для этого выполняется команда
AR |
7 |
9 |
где AR означает сложение кодов из регистров.
При выполнении команды результат помещается в общий регистр с номером 7.
§ 1—4. Особенности представления команд в мини-ЭВМ
В мини-машинах для инженерных расчетов используется 3 типа одноадресных ко-манд: команды обращения к памяти; команды обращения к регистрам; команды ввода— 'вывода.
Код операции записывается в виде условных мнемокодов.
183
Пример 1. Переслать содержимое |
сумматора |
1234 в ячейку |
памяти |
||
225 и очистить сумматор. |
|
|
|
|
|
Выполняется команда |
|
|
|
|
|
ДСА 225* |
|
|
|
|
|
Сумматор |
Дополнитель |
Номер ячейки = |
225 |
||
ный разряд |
|||||
|
|
|
|||
до выполнения |
|
Был произвольный код |
|||
команды |
1(234 |
г |
4 |
|
|
7654 |
|
||||
после выполнения |
|
|
— стало |
||
команды |
0 |
1 |
ІІ234 |
|
- ГЛАВА II
ЭЛЕМЕНТАРНОЕ ПРОГРАММИРОВАНИЕ
§2—1. Основные этапы подготовки задачи
крешению на машине
Выбор численного метода. Для решения конкретной зада чи (например для решения интегральных, дифференциальных, тригонометрических и других уравнений, для решения задач векторной алгебры и т. д.) подбирается приближенный чис ленный метод, позволяющий сложную задачу свести к выпол нению простых арифметических операций.
Для того чтобы набор арифметических операций могла выполнить 'машина, нужно их написать на языке, понятном машине, т. е. составить программу решения.
Программирование. В понятие программирования входят: выбор алгоритмического языка; составление блок-схемы про граммы и алгоритма ее решения; распределение исходных данных и программы в запоминающем устройстве при реше нии задач в машинных кодах.
2 этап — занесение программы и данных на носитель.
После этого -этапа |
происходит отладка задачи и ее |
решение. |
,*) |
*) DCA — Deposit and Clear the Accumulator (запомнить в памяти и очистить сумматор).
184
П р и м е ч а н и е .
При написании программы будем пользоваться следующими условны ми обозначениями:
Л' + 1, N + |
2 , . . . |
— номера |
ячеек, в которых хранятся команды про |
|
|
граммы, в восьмеричной системе счисления. |
|
“1. |
а2‘ • . — номера |
ячеек программы, в которых хранятся исход- |
|
Ръ |
ßs- • |
ные числовые данные. |
|
Ті. |
72.. |
|
|
Pi. |
Р2*• . — номера |
рабочих ячеек для хранения промежуточных |
|
|
|
результатов. |
|
Si. |
Во. . . — номера |
ячеек программы для хранения двоичных |
|
|
|
констант переадресации. |
§ 2—2. Программирование по формулам в машинных командах
Пример 1. Вычислить дробно-линейную функцию
у = -?.*.+ fr. .
сх + d
1. Составляем алгоритм, т. е. последовательность операций решения:
1) |
АI = |
сх; 2) |
А = |
Ai +'d\ 3) |
Bi = ах; |
|
4) |
В = |
Bi + ’е; |
5) |
У |
/\ . |
|
В |
общем случае при |
решении |
ах -f- Ь |
|||
уравнений вида У = ------------ -— |
||||||
|
|
|
|
|
|
сх + а |
необходимо проверить, не равен ли знаменатель нулю. Если равен, то
вычисления прекратить. Для трехад'ресной ЦВМ эту |
проверку |
можно |
|||||
выполнить, например, с помощью команды |
|
|
|
|
|||
|
+ Ср |
Р |
|
|
|
|
|
Если |
содержимое |
ячейки р, |
равное с х + ' d |
отлично от нуля, |
то |
||
<*>= 0, в |
противном случае при |
выполнении этой |
команды |
ш |
= 1 |
||
Команда |
УПші определит направление перехода, |
как |
показано |
на |
при |
мере структурной блок-схемы программы:
)
185
Ввод программы п чисел
__________ [_________
Перевод чисел из двоичнодес. в двоичную сист. счисл.
I
Определение сх +'d
I
Нахождение у
__________{■_________
Перевод у из дв. в двоичнодес. систему
I
Печать у и останов
2. Размещаем исходный числовой материал в ЗУ |
21 |
|
|
Т а б л и ц а |
|
№ ячеек для хранения |
„ Исходный числовой материал |
|
исходных данных |
(содержимое ячеек) |
|
“і |
а |
|
“а |
ь |
|
“3 |
С |
|
« 4 |
d |
|
Ч |
X |
|
3J Составляем рабочую программу |
для 3-адресной ЦВМ. ■ |
|
|
Т а б л и ц а |
22 |
Ns- |
КОП |
А, |
|
ячеек |
|||
|
|
||
N + 1 |
X |
<*3 |
|
N + 2 |
+ |
Рі |
|
ІѴ+3 |
H~cp |
Ра |
N + 4 |
УПШ |
|
|
ЛГ+5 |
X |
|
|
N + 6 |
+ |
Ра |
|
AM -7 |
|
Pa |
|
N + |
10 |
пч |
‘ Pi |
N + 11 |
о с т |
|
|
N + |
12 |
00 |
0000 |
AM13 |
о о * |
0000 |
|
N + |
14 |
пч |
|
N + |
15 |
о с т |
|
Аг |
Аз |
. “ Б |
Рі |
“4 |
рі |
N + |
14 |
“ Б |
Pa |
“а |
Pa |
Рі |
Pi |
|
0000 0000
0000 0000
Примечание
t H II |
-Cl |
A — Л, + |
d -> p, |
ш = 0, если |
|
(Pi) Ф o |
|
<i) = 1, если |
|
(Pi) = o |
|
Переход к 7У+14 при ш=1
при<*> = 0 |
к N 4- 5 |
||||
B1 — ajc-± рз |
|
||||
В = Ві + |
Ь -*■ |
рз |
|||
, г |
|
ах + |
Ь |
Рі |
|
У — |
сх |
, |
, |
||
|
|
-+ |
а |
|
|
У на |
печать |
|
|
|
р, I Рабочие р2J ячейки
Напечатать «0», если сх +'d = 0
Замечание. Данная программа написана в условных адре сах и командах. Если требуется написать программу в дей ствительных адресах, то вместо условных обозначений «ь
187
иг • • •, pi, Р2, N пишут действительные адреса в восьмеричной системе счисления (т. е. вместо схь например, 0012, вместо иг — 0013 и т. д., вместо Л/. — 0100).
Пример 2. Написать ту же программу в действительных адресах
Содержимое ячеек |
а |
0 |
С |
d |
X |
|
(исходные числовые данные). |
||||||
|
|
|
|
|
||
Номера ячеек для хранения исход |
0012 |
0013 |
0014 |
0015 |
0016 |
|
ных данных (в восьмеричной си |
|
|
|
|
|
|
стеме счисления) |
|
|
|
|
|
Примем следующие условные значения для кодов операций (в вось меричной системе очисления):
05 —■умножение
01— сложение
15 — сравнение на равенство
76—: условный переход при |
ш = 1 |
|
|||
04 — деление |
|
|
|
||
50 —'печать |
|
|
|
||
17 — останов |
|
|
|
||
№ ^ |
к о п |
А - |
Аг |
A3 |
|
ячеек |
|||||
|
|
|
|
||
0101 |
05 |
0014 |
0016 |
0112 |
|
0102 |
01 |
0112 |
0015 |
0112 |
|
0103 |
15 |
0112 |
0014 |
|
|
0104 |
76 |
0112 |
0113 |
||
0105 |
05 |
0016 |
|||
0106 |
01 |
0113 |
0013 |
0113 |
|
0107 |
04 |
0113 |
0112 |
0112 |
|
ОНО |
50 |
0112 |
|
|
|
0111 |
17 |
0000 |
0000 |
0000 |
|
0112 |
00 |
||||
0113 |
00 |
0000 |
0000 |
0000 |
|
0114 |
50 |
|
|
|
|
0115 |
17 |
|
|
|
,
Т а б л и ц а 23
Примечание
А1~ с • X ->■ Рі
А = А\ +'rf -*■ р!
В1 — ах р<2 В ~ B i -f Ь -> Ра
У - Р і
Уна печать
Рі
печать «0» Рз
Пример 3. Вычислить значение многочлена одного переменного / (х) = 5х4+'4х3+ Зх2 + 2х + 1.
1. Для вычисления такого многочлена составляется схема счета Гор нера, представляющая/(х) в виде:
f(x ) = { [(5.x + 4) х -f- 3] .х + 2} х -)- 1.
Алгоритм вычисления такого многочлена сводится к выполнению последовательности операций:
1) |
А, = 5х; |
2) |
Л2 = А, + 4; |
3) |
A3— A2*x; |
4)| Ац = Аз + 3; |
5) |
As — A4 •х; |
6) |
Аб = As + 2. |
|
7) |
Ai = As ‘Xi |
8) |
As = Aj + 1. |
|
|
188
2. Отведем ячейки памяти для числового материала. |
|
|
Т а б л и ц а 24 |
№ ячеек |
Исходный числовой |
для числовых данных |
материал |
|
|
|
“0 |
|
|
|
|
' |
|
5 |
|
|
|
|
|
- |
«J |
|
|
|
|
|
|
4 |
|
|
|
|
|
“а |
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
“3 |
|
|
|
|
|
|
2 |
|
|
|
|
|
|
«.1 |
|
|
|
|
|
|
1 |
|
|
|
|
|
|
“5 |
|
|
|
|
|
|
.V |
|
|
|
3. Составляем рабочую |
программу |
для 3-адресной |
ЭВМ. |
||||||||||
|
|
' |
' |
|
|
|
|
|
|
|
Т а б л и ц а 25 |
||
' Ns |
|
к о п |
А, |
|
|
|
|
|
|
|
|
|
|
ячеек . |
|
Аг |
|
A3 |
|
Примечание |
|||||||
в 8-й СС |
|
|
|
|
|
|
|
|
|
|
|
|
|
N + 1 |
,х |
“о |
|
“ 5 |
|
Pi |
A I = 5 x->- p, |
|
|||||
N + 2 |
+і |
Рі |
|
al |
|
Pi |
A 2 = A { + 4->- p, |
||||||
УѴ+ |
3 |
,х |
Рі |
|
“ 5 |
|
Pi |
As — A2 • X |
|
Pj |
|||
N 4 4- |
+' |
Pi |
|
<z2 |
|
Pi |
A4 = A3 + |
3 -*■ Pi |
|||||
N + 5 |
X |
Pi |
|
“6 |
|
Pi |
<4s.= A4 • X - * |
p |
|||||
/Ѵ + 6 |
+! |
Pi |
|
“ 3 |
|
Pi |
/І6 = |
As + |
2 |
Pi |
|||
N + |
7 |
X |
Pi |
|
“6 |
|
Pi |
^7 = Аб •X-*- Pi |
|||||
/ / + 1 0 |
+ |
Pi |
|
“ 4 |
|
Pi |
<4e = |
A7 + |
1 -i- Pi |
||||
/ / + 1 1 |
п ч |
Pi |
|
|
|
|
(p,) |
на |
печать |
||||
/ / + 1 2 |
ост. |
|
|
|
|
|
|
|
|
|
|
|
|
N + |
13 |
00 |
0000 |
|
0000 |
0000 |
p1 — N |
+ ' |
13 раб. ячейка |
||||
■Пример 4. Найти- у |
= |
шах (а, |
в, с, |
d). |
|
|
|
|
|
||||
Используем следующий алгоритм поиска: |
|
|
|
|
|
||||||||
если |
а — в > 0, |
тоя-*-рі, |
иначе |
в |
|
|
|
|
|
|
|||
если |
с — d > О, |
то е |
р |
2, |
иначе |
d -* рг. |
|
|
|
|
|
||
Затем найдем разность |
|
|
|
|
|
|
|
|
|
|
|||
(Рі) - |
(Ра) |
и |
|
|
|
|
|
|
|
|
|
|
|
если |
|
|
|
|
|
|
|
|
|
|
|
|
|
(Рі) — (рг) > 0 , то |
печать |
(рх), |
иначе (pj). |
|
|
|
|
|
|
||||
Распределим числа а, в - с, d в ячейках памяти |
|
|
|
|
189'