
книги из ГПНТБ / Михельсон В.С. Элементы вычислительной математики учебное пособие для электроприборостроительных техникумов
.pdfЕсли не требуется нормализовать разность, то применяется ко манда
42 |
А |
В |
С |
У м н о ж е н и е . Для умножения двух чисел используются ко манды с кодом 03 и 43.
Команда
03 |
А |
В |
С |
перемножает числа из ячеек А и В, нормализует произведение и записывает его в ячейку С.
Если выполняется команда
43 |
А |
В |
С |
то нормализация произведения не производится. Д е л е н и е . Код операции деления 04. При выполнении команды
04 |
А |
В |
С |
вычисляется частное от деления числа из ячейки А на число из ячей ки В, которое записывается в ячейку С.
Команды изменения кодов. К этим командам относятся коман ды изменения порядка, команда изменения знака числа, команды передачи.
Сложение порядков осуществляется командой
05 |
А |
В |
С |
После ее выполнения к порядку числа из ячейки А алгебраиче ски прибавляется порядок числа из ячейки В, образуется число, ман тисса которого равна мантиссе первого числа, а порядок — получен ной сумме порядков. Полученное число нормализуется и посылает ся в ячейку С.
210
Чтобы результат перед засылкой в ячейку С не нормализовывался, вместо команды 05 пользуются командой
45 |
А |
В |
С |
п о р я д к о в . |
Код |
операции |
|
манды |
|
|
|
06 |
А |
В |
с |
заключается в вычислении алгебраической разности порядков чисел из ячеек А и В, образовании числа, имеющего вычисленный порядок и мантиссу, равную мантиссе числа из ячейки А.
Составленное число нормализуется и засылается в ячейку С. Ес ли код операции 06 заменить на 46, то составленное число записыва ется в ячейку С без нормализации.
Пр и м е р . Пусть в ячейке 0147 находится число
1 10100 0 00110...00,
а в ячейке 1171 — число
0 00011 1 10110...00.
После выполнения команды
|
05 |
0147 |
1171 |
0012 |
в ячейке 0012 будет задано число |
|
|
||
1 |
10011 |
|
0 |
1100.. |
1 |
i |
|
4 |
1 |
знак |
порядок |
знак |
мантисса |
|
порядка |
|
мантиссы |
|
Это число образуется следующим образом:
1. Порядок (1 10100)=—20[0 числа из ячейки 0147 складывается с порядком (000011) =3ю числа из ячейки 1171, получается порядок
(1 10001) = —17ю.
2. Из мантиссы |
(0 00110 ... 00) = |
числа из ячейки 0147 и по |
лученного порядка составляется число |
||
14* |
— 211 |
- |
1 |
10001 О 00110___ 00. |
3. Составленное число нормализуется, и число
1 10011 0 1100... 0 = ^ - . 2 - 19
задается в ячейку с адресом 0012. После выполнения команды
05 |
1171 |
0147 |
0012 |
в ячейке 0012 будет задано число
1 10001 1 1011...00,
так как мантисса берется из числа, хранящегося в ячейке, адрес ко торой записан в команде первым.
Если выполнить команду
45 0147 1171 0012
то в ячейке 0012 запишется число
1 10001 0 001100. ..00.
При выполнении команды
06 0147 1171 0012
вычисляется порядок
(1 10100)— (000011) = (1 10111) = — 2310
и образуется число
1 10111 0 00110...0.
Это число нормализуется и в виде кода
1 11001 0 1100
записывается в ячейку 0012.
— 212
Если в этой команде заменить код операции ОС на 40, то в ячей ку 0012 запишется ненормализованное число
1 10111 |
0 |
001100...00. |
|
И з м е н е н и е п о р я д к а |
на постоянное число. Для увеличе |
||
ния порядка на постоянное число используется команда |
|||
25 |
А |
N |
С |
При ее выполнении к порядку числа из ячейки А прибавляется целое число N.
Результат с новым порядком и прежней мантиссой нормализует ся и записывается в ячейку С.
Если мы хотим увеличить порядок р числа из ячейки А на М единиц: —32^Л1<31, то число М в виде восьмеричного числа запи сывается в двух младших разрядах второго адреса. Старшие два
разряда |
никакой роли не играют. Таким образом, берется N = M. |
Если |
мы хотим уменьшить порядок на М единиц, то вместо М |
в двух младших разрядах второго адреса записывается число 64ю— Л410, т. е. число «—Л4» в дополнительном коде.
Таким образом, при 0^Л4^30, т. е. при увеличении порядка, по второму адресу записывается число
0000* < N < 0036в.
При —32^Л 1^—1, т. е. при уменьшении порядка, — число
0040e < N < 00778.
Если вместо операции 25 выполнить 65, то после изменения по рядка числа из ячейки А число не нормализуется и записывается в ячейку С.
П р и м е р ы. 1) При выполнении команды
25 А С
число из ячейки А не изменяется и оно после нормализации записы вается в ячейку С.
2) При выполнении команды
25 |
А |
0013 |
С |
213
число из ячейки А умножается на 2м, так как /V=00138 = 11ю н по рядок этого числа увеличивается па 138 единиц.
3) Команда
25 3101 0073 2777
Эквивалентна умножению числа из ячейки 3101 на 2-5, так как /V=
=00738=5910, т . е. M= 59,0—64,0= —5.
4)Пусть в ячейке А хранится команда
|
|
|
|
01 |
|
0127 |
3100 |
1011 |
|
|
|
|
|
т. е. код |
|
|
|
|
|
|
|
|
|
|
|
|
|
000 |
001 |
00 |
001 |
010 |
111 |
11 |
001 |
000 |
000 |
01 |
000 |
001 |
001. |
|
Рассмотрим команду |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
65 |
|
А |
0002 |
С |
|
|
|
|
При ее выполнении машина рассматривает код в ячейке А как число. Последние шесть цифр (как порядок числа) выделяются, к ним прибавляется 028= 000 0102, получается число
000 |
011 |
00 |
001 |
010 |
111 |
11 |
001 |
000 |
000 |
01 |
000 |
001 |
001, |
||
которое |
не нормализуется |
и задается |
в |
ячейку |
С. |
Таким |
образом, |
||||||||
в нем будет задана команда |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
03 |
|
|
0127 |
3100 |
|
1011 |
|
|
|
|
Это значит, что мы получаем в ячейку С команду, которая от личается от имеющейся команды только кодом операции. Поэтому командой 65 пользуются главным образом для образования новых команд.
И з м е н е н и е з н а к а м и е л а . .Для изменения знака числа используют операции 15 и 55.
214
При выполнении команды |
|
|
|
15 |
А |
В |
С |
образуется число, у которого мантисса, порядок и знак порядка те же, что и у числа из ячейки А. Знак образованного числа, т. е. зна чение цифры в 33-м разряде, зависит от знака числа из ячейки В. Если у чисел из ячеек А и В одинаковые знаки мантисс (положитель ные или отрицательные), то образованному числу приписывается по ложительный знак, т. е. в 33-м разряде задается 0. Если у этих чи сел разные знаки, то задается 1 (приписывается отрицательный знак).
Полученное число нормализуется и задается в ячейку С.
Если выполняется команда 55, го знак у числа из ячейки А ме няется так же, как при выполнении команды 05, но в ячейку С по сылается число без предварительной нормализации.
К о м а н д ы с д в и г а . |
При выполнении команды |
||
26 |
А |
N |
С |
происходит полный сдвиг числа |
(всех 39 разрядов) из ячейки А. Ко |
личество разрядов, на которое сдвигается это число, зависит от ве личины N. Число N является четырехзначным восьмеричным числом, две правые цифры показывают, на сколько разрядов производится сдвиг. Вторая слева цифра показывает, в какую сторону произво дится сдвиг числа. Если эта цифра равна 0, то сдвиг происходит
влево, если равна |
1, то — вправо. |
Первая цифра должна быть равна |
|||||||
нулю. Если |
число |
сдвигается на |
k разрядов, |
например, |
влево, |
то |
|||
первые k разрядов этого числа «выходят» из разрядной |
сетки и те |
||||||||
ряются. Справа к числу добавляются |
k нулей. |
Число, |
получаемое |
||||||
после сдвига, задается в ячейку С. |
|
находится код |
|
|
|
||||
П р и м е р ы . |
Пусть в ячейке 0311 |
|
|
|
|||||
1 00011 0 |
111 |
000 000 |
000 |
110 |
111 101 |
ПО 011 |
011 |
11 |
|
и выполняется команда |
|
|
|
|
|
|
|
||
|
|
26 |
0311 |
N |
3701 |
|
|
|
—215
Если |
iV= 000158, то сдвиг |
произойдет |
влево на 158=13ю |
разря |
||||||||
дов и число |
|
|
|
|
|
|
|
|
|
|
||
000 |
000 |
НО 111 |
101 |
110 |
011 |
011 |
ПО |
000 |
000 |
000 |
000. |
|
запишется в ячейку 3701. |
|
|
|
|
|
|
|
|
||||
|
Если |
N = 01348, |
то сдвиг |
происходит |
вправо |
на 348=28ю раз |
||||||
рядов и число |
|
|
|
|
|
|
|
|
|
|
||
000 |
000 |
000 |
000 |
000 |
000 |
000 |
000 |
000 |
010 |
001 |
101 |
НО |
будет задано в ячейку 3701.
При jV=00478 или 0147а происходит сдвиг влево или вправо на 39ю разрядов, поэтому в ячейку С будет задан код из 39 нулей.
При TV= 0000s число без изменения передается из ячейки Л в С. Арифметический сдвиг производится при помощи команды
66 |
А |
N |
С |
После ее выполнения мантисса сдвигается на соответствующее число разрядов (так же, как при выполнении команды 26) и посыла ется со своим знаком и нулевым порядком в ячейку С.
П е р е д а ч а кода . При выполнении команды
00 А В с
код из ячейки А передается без изменения в ячейку С. Значение вто рого адреса в команде может быть любым.
Логические операции. |
Л о г и ч е с к о е |
с л о ж е н и е двух ко |
|
дов выполняется командой |
|
|
|
16 |
А |
В |
С |
В ячейку С задается код, у которого в каждом разряде нахо дится 0, если в тех же разрядах кодов из ячеек А и В также нахо дятся нули и 1 в противном случае.
216
Правило поразрядного логического сложения может быть дано в виде следующей таблицы:
+ 0 1
0 0 1
1 1 1
Пр и м е р . Пусть в ячейках 1177 и 3012 находятся коды
111 |
111 |
100 |
011 |
001 |
п о |
000 |
п о |
100 |
000 |
111 |
п о |
101 |
[ |
|
|
|
|
|
|
|
|
|
|
|
|
011 |
001 |
100 |
011 |
п о |
000 |
000 |
011 |
000 |
001 |
111 |
100 |
000 |
|
После выполнения команды |
|
|
|
|
|
|
|
||||
|
|
|
|
16 |
1177 |
3012 |
0027 |
|
|
|
||
в ячейку 0027 будет задан код |
|
|
|
|
|
|
|
|||||
111 |
111 |
100 |
011 |
111 |
ПО 000 |
111 |
100 |
001 |
111 |
ПО 101 |
||
|
Эту команду можно применять для формирования команд. |
|
||||||||||
|
Пр и ме р . |
Пусть в ячейке 0036 находится команда |
|
|
||||||||
|
|
|
01 |
|
3027 |
|
1011 |
|
0000 |
|
|
|
|
|
7 — код |
|
|
|
|
|
|
|
|
|
|
|
|
|
00 |
|
0000 |
|
0000 |
|
3711 |
|
|
|
217
П о с л е в ы п о л н е н и я к о м а н д ы
|
В ячейку С задается код, |
у которого в каждом разряде 1, если |
|||||||||||
в соответствующих разрядах кодов из ячеек А и |
В находятся |
1 и О |
|||||||||||
в противном случае. |
|
|
|
|
|
|
|
|
|
|
|||
|
Правило поразрядного логического умножения может быть да |
||||||||||||
но в виде таблицы |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
X |
|
0 |
|
1 |
|
|
|
|
|
|
|
|
|
0 |
|
0 |
|
0 |
|
|
|
|
|
|
|
|
|
1 |
|
0 |
|
1 |
|
|
|
|
|
Пр и м е р . |
Умножим логически два кода |
|
|
|
|
|||||||
000 |
011 |
00 |
001 |
000 |
001 |
10 |
001 |
001 |
001 |
11 |
001 |
000 |
000 |
и |
|
|
|
|
|
00 |
000 |
|
|
|
|
|
|
000 |
000 |
11 |
111 |
111 |
111 |
ООО |
000 |
11 |
111 |
111 |
111 |
— 218
Первый код является командой |
|
|
|
03 |
0101 |
2111 |
3100 |
второй — константой |
|
|
|
00 |
3777 |
0000 |
3777 |
В результате получили код |
|
|
|
00 |
0101 |
0000 |
3100 |
Таким образом, при помощи логического умножения мы выде лили первый и третий адреса команды 03.
В зависимости от выбора константы можно выделить код опе рации, любые адреса и вообще любые разряды имеющегося кода.
Команды управления. |
К |
этим командам относятся |
операции: |
|
остановки машины, безусловных и условных |
переходов, |
сложения и |
||
вычитания команд, печати. |
|
производится |
по команде «останов» |
|
О с т а н о в к а м а ш и н ы |
||||
33 |
А |
В |
С |
|
На содержание адресной части машина не реагирует, поэтому ад ресную часть можно использовать для записи необходимых констант.
С л о ж е н и е и |
в ы ч и т а н и е |
команд выполняется командами |
|
22 и 62. |
|
|
|
При выполнении команды |
|
|
|
22 |
А |
В |
С |
к 33 младшим разрядам кода из ячейки А прибавляются 33 млад ших разряда кода из ячейки В. К результату дописывается слева
211)