Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Михельсон В.С. Элементы вычислительной математики учебное пособие для электроприборостроительных техникумов

.pdf
Скачиваний:
9
Добавлен:
29.10.2023
Размер:
7.59 Mб
Скачать

Если не требуется нормализовать разность, то применяется ко­ манда

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)

Соседние файлы в папке книги из ГПНТБ