Файл: Бакиров Р.О. Применение современных электронных вычислительных машин при расчете и проектировании конструкций инженерных сооружений учебное пособие.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УОТ С.и А ССОР _