Файл: Бакиров Р.О. Применение современных электронных вычислительных машин при расчете и проектировании конструкций инженерных сооружений учебное пособие.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 05.04.2024

Просмотров: 96

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

из двоичной системы в восьмеричную и обратно весьма простым способом.

Например, для перевода числа из восьмеричной системы в дво­ ичную существует следующее правило: каждую восьмеричную цифру необходимо заменить равным ему трехразрядным двоичным числом.

Пусть дано восьмеричное число 70, 271 (в). Тогда согласно ука­ занному правилу его двоичное изображение имеет вид:

70, 271(8)= 111000, 0Ю111001(2).

Так же легко осуществить и обратный перевод. Для того что­ бы двоичное число перевести в восьмеричное, необходимо начиная от запятой, влево и вправо от нее, разбить заданное число на трой­ ки цифр (триады) и далее каждое полученное трехзначное двоич­ ное число заменить его восьмеричным изображением.

При этом, если правая и левая части цифр не будут полными триадами, то их соответственно справа и слева дополняют нулями.

Пусть дано двоичное число 11, 001111. Схема его перевода в восьмеричную систему счисления, согласно приведенному прави­ лу, имеет вид:

011, 001 11^4 = 3,17(8).

Разработаны практические правила перевода чисел и во все другие системы счисления, но изучение их выходит за рамки посо­ бия и поэтому здесь не рассматривается.

СТРУКТУРА КОМАНД МАШИНЫ

При рассмотрении программы 1 ручного счета было установле­ но, что в любой команде содержатся две основные информации: какое действие нужно произвести и над какими величинами эти действия производятся. Команда для машины содержит ту же ин­ формацию. Структура команд машины определяется ее адресно­ стью. В зависимости от количества адресов в команде различают одноадресные, двухадресные и трехадресные машины.

Например, команда трехадресной машины имеет вид:

 

6; а, Ь, с,

где

В — код операции;

а,

Ь, с — первый, второй и третий адреса.

Обычно первый и второй адреса — это номера ячеек, где рас­ положены величины, над которыми необходимо произвести дейст­ вие 0, а третий — номер ячейки, куда нужно поместить результат.

Так, если код операции сложения обозначить через 01, а вось­ меричные изображения первого, второго и третьего адресов соот­ ветственно ПО, 115, 216, то команда трехадресной машины могла бы иметь вид: 0 1 ПО 115 216. В результате выполнения этой коман­ ды будет выполнено следующее действие: к содержимому ячей-

13-


ки ПО прибавится содержимое ячейки 115, и результат запишет­ ся в ячейку 216.

Для полноты картины рассмотрим структуру команды одно­ адресной машины. Предварительно заметим, что команда одно­ адресной машины, как показывает само название, имеет лишь один адрес 0; а. Вследствие этого все действия производятся через про­ межуточный элемент, так называемый сумматор. Таким образом, чтобы сложить два числа а и Ь, находящиеся в ячейках ПО и 115, а результат отослать в ячейку 216 придется написать не одну, а не­ сколько команд.

Обозначим через 02, 01 и 16 соответственно коды операции вы­ зова числа в сумматор, сложения и отсылки. Тогда для выполнения поставленной задачи нам придется написать следующие три команды:

02ПО

01115

16216

По первой команде число а, находящееся в ячейке ПО, будет вызвано в сумматор, по второй получим сумму а -+- Ь, по треть­ ей — результат сложения будет отослан в ячейку 216 для хране­ ния.

Таким образом, мы получили программу, правда, пока весьма элементарную, для решения совсем простой задачи.

Из приведенного примера видно, что программы машин строят­ ся на адресном принципе, т. е. в каждой команде указываются не сами числа, над которыми нужно произвести определенные опера­ ции, а адреса ячеек, в которых хранятся эти числа. Указанный принцип обеспечивает, в определенном смысле, универсальность программ, так как при замене содержимого ячеек исходных данных предусмотренные в программе действия будут произведены над другими числами.

ПЕРЕДАЧА УПРАВЛЕНИЯ

Ясно, что окончательное решение задачи на машине достигается после выполнения реализующей ее программы. Естественно, воз­ никает вопрос, каким образом машина переходит от выполнения предыдущей команды к последующей?

Все машины, в зависимости от порядка выполнения команд, де­ лятся на машины с принудительным и последовательным принци­ пом выполнения команд.

Команды машин принудительного действия обязательно содер­ жат информацию о передаче управления. В машинах же последо­ вательного действия, к которым принадлежит подавляющее боль­ шинство отечественных машин, после выполнения предыдущей команды обычно управление получает следующая за ней команда. Исключение составляют команды, имеющие информацию нестан­ дартной передачи управления. Информация эта может быть не-

14


скольких типов: безусловная передача управления, условная

пере­

дача управления и останов.

б е з у с л о в н о й

пере­

Если команда содержит информацию о

даче управления, то машина приступает к

выполнению команды,

указанной в адресной части, независимо от управляющего сигнала, выработанного в результате предыдущего действия.

Команды с у с л о в н о й передачей управления работают так: если в результате выполнения предыдущей команды выработан сигнал со—0 (или со=1), то управление получает следующая за рассматриваемой команда, а в противоположном случае — управ­ ление передается команде, указанной в адресной части рассматри­ ваемой.

Если в кодовой части команды стоит операция «сто п », то ника­ кой передачи управления не производится и машина останавлива­ ется.

Выше указывалось, что в процессе выполнения команд машина вырабатывает специальные сигналы со и <р, которые учитываются при программировании задачи.

Например, при получении результата, превышающего опреде­ ленную величину 1У, в машине вырабатывается сигнал q>—1 (заго­ рается специальная лампочка) и машина останавливается. Если же результат достигает значения 10 ~ N, то эта величина воспринима­ ется машиной как нуль (говорят вырабатывается машинный нуль). В частности, для ЭЦВМ «Урал-2» jV = 10±i9-

Необходимо также заметить, что при выполнении арифметиче­ ских и некоторых других операций вырабатывается управляющий сигнал о). В-большинстве машин, если результат выполнения ко­ манды величина отрицательная, то вырабатывается ш =1, а в про­ тивоположном случае —со=0.

ФОРМА ПРЕДСТАВЛЕНИЯ ЧИСЕЛ

По форме представления различают числа с фиксированной и плавающей запятой.

Запись числа с ф и к с и р о в а н н о й запятой совпадает с обыч­ ной, естественной формой ее записи. Например, числа — 145, 328; 1359, 125438 или 0,1389 и 0,0242 являются числами с фиксирован­ ной запятой. Следовательно, число с фиксированной запятой — это последовательность цифр, изображающих число в определенной системе счисления, разделенное запятой на целую и дробную ча­ сти. Не останавливаясь на этом вопросе более подробно, укажем лишь, что машины, работающие в режиме с фиксированной запя­ той, обычно оперируют с числами, по модулю меньшими единицы, поэтому программирование для таких машин связано с достаточно сложным вопросом масштабирования. Это вызывает значительные трудности при программировании и подготовке исходных данных.

Большинство машин работает с числами, представленными в форме с п л а в а ю щ е й запятой, поэтому на данном вопросе оста­ новимся несколько подробнее.

15


Число, записанное в форме с плавающей запятой, имеет вид:

х = т х- \0Рх,

(2)

где т х — мантисса числа х; рх — целый порядок числа; 10 — основание системы счисления.

В этой форме записи число можно представить различным об­ разом. Например, число 135,685 (ю> можно записать так:

135,685=135685 •10 -3 = 0,00135685 • 105=0,135685 • 103.

Или то же самое число в восьмеричной системе, равное 207,7, можно записать следующим образом:

207,7(8) = 207700-10-3 = 0,02077-104= 0 ,2077-103.

Из приведенных примеров видно, что в числах с плавающей за­ пятой порядок числа показывает, на сколько разрядов нужно пере­ нести запятую в мантиссе влево (при отрицательном порядке) или вправо (при положительном порядке), чтобы получить истинное число, написанное в обычном привычном нам изображении. Запя­ тая меняет свое положение, как бы плавает по мантиссе, откуда и

происходит название формы представления числа.

 

Число с плавающей запятой (2)

называется нормализованным,

если выполнено условие

 

 

\ > т х >

— .

(3)

 

10

 

Напомним, что 10 — есть основание системы счисления, т. е.

10(2) == 2(Ш); 10(8) = 8(Ю) ■ = 1000(2).

где десятичные цйфры в круг­

лых скобках указывают принадлежность к определенной системе счисления.

Из неравенства (3) вытекает, что первый цифровой разряд ман­ тиссы нормализованного числа всегда значащая цифра, строго большая нуля. Убедимся в этом на следующем примере.

Пример. Десятичное число 928,72541 записать в нормализован­ ном виде.

Р е ш е н и е . *=928,72541=0,92872541 - 103.

Действительно,

— < т х = 0,92872541 < 1. 10

Исходные данные в ячейках машины, работающей в режиме с плавающей запятой, обычно записываются в нормализованном ви­ де. Также печатаются и выходные результаты.

Например, если такая машина выдала т х =12439875, /Д = + 0 4 ,

то это число запишется в виде х = т х -ЮРх =0,12439875• 104= = 1243,9875.

Таким образом, знание форм представления чисел помогает рас­ шифровывать напечатанные машиной выходные результаты.

16


ЗАПИСЬ ЧИСЕЛ И КОМАНД В ЯЧЕЙКАХ ПАМЯТИ

Память машины состоит из ячеек. Диапазон чисел или команд, реализуемых на машине, зависит от количества двоичных разрядов в ячейке. Таким образом, увеличивая число элементов, из которых образована ячейка памяти, можно увеличивать диапазон представ­ ляемых в машине чисел.

Рассмотрим запись двоичного нормализованного числа в соро­ каразрядной ячейке памяти, изображенной на рис. 4,а.

а

 

 

 

 

0 12

Ю

20

30 33

39

0 1 2

 

3233

39

 

 

 

 

101 001 О01

Знак

Мантисса

Порядок

мантиссы

 

Знак

 

 

 

порядка

 

 

Р и с.

4

 

Можно представить себе следующее распределение разрядов: 0- й разряд — для знака мантиссы ± ; 1— 32-й разряд — значение мантиссы т х\ 33- й разряд — знак порядка ± ; 34— 39-й разряд — значение порядка р х.

Пример. Требуется записать двоичное число — 0,00000000011 в полную сорокаразрядную ячейку, изображенную на рис. 4 в форме с плавающей запятой.

Р е ше н и е . Можно записать

- 0,00000000011 = — 0,11 ю - 1001,

где м х = — 0,11;

Рх = - 1001.

Следовательно, в полной сорокаразрядной ячейке заданное чис­ ло будет записано, как показано на рис. 4,6.

Команда одноадресной машины записывается в неполную (двадцатиразрядную) ячейку. Структура команд была рассмотре­ на выше. Например, команда «вызвать двоичное число из ячейки 215 в сумматор» имеет вид:

02 0215.

2 Зак. 1018

п

ГО С . ЛУЬЛИ-СН.-

НА у ч Н О -Т Е Х Н и Ч Е С Н ^ .-.

с. RnУОТ С.и А ССОР _