Добавлен: 10.01.2024
Просмотров: 56
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
По характеру выполняемых операций различают следующие основные группы команд:
· команды арифметических операций для чисел с фиксированной и плавающей запятой;
· команды десятичной арифметики;
· команды логических (поразрядных) операций (И, ИЛИ и др.);
· команды пересылки;
· команды операций ввода-вывода;
· команды управления порядком исполнения команд (команды передачи управления) и некоторые другие.
Программа работы ЭВМ состоит из последовательности команд.
Под командой понимается информация, обеспечивающая выработку управляющих сигналов, формируемых в устройстве управления процессора, для выполнения машиной определенного действия.
Поле команды состоит из двух частей: операционной и адресной. В операционной части указывается код операции (КОП). Код определяет действие, которое должна выполнить ЭВМ (арифметическое - сложение, вычитание, логическое - инверсия и т. д.).
Адресная часть команды содержит адреса операндов (чисел или символов), участвующих в операции. Под адресом понимается номер ячейки ОЗУ или ПЗУ, где записана необходимая для выполнения команды информация.
Таким образом, ЭВМ (точнее, процессор) выполняет действие, которое определяется кодом операции, над данными, местоположение которых указано в адресной части команды.
Количество указываемых в команде адресов может быть различным. В зависимости от числа адресов различают следующие форматы команд: одно-, двух- и трехадресные. Бывают и безадресные команды.
Трехадресная команда, выполняющая, например, операцию сложения, должна содержать код операции сложения и три адреса.
В случае двухадресной команды третий адрес отсутствует, и результат можно записать либо по второму адресу (с потерей информации, которая была там записана), либо оставить в регистре сумматора, где производилась операция сложения.
Тогда для освобождения регистра сумматора требуется дополнительная команда перезаписи числа по требуемому адресу. При организации сложения двух чисел, хранящихся по адресам А1 и А2 с записью результата в A3 с использованием одноадресных команд, требуется уже три команды.
Существуют безадресные команды, которые содержат только код операции, а необходимые данные заранее помещаются в определенные регистры процессора.
Современные ЭВМ автоматически выполняют несколько сотен различных команд. Все машинные команды можно разделить на группы по видам выполняемых операций:
• - операции пересылки данных;
• - арифметические операции;
• - логические операции;
• - операции обращения к внешним устройствам ЭВМ;
• - операции передачи управления;
• - обслуживающие и вспомогательные операции.
При проектировании новых процессоров разработчикам приходится решать сложную задачу выбора длины команды и определения списка необходимых команд (системы команд).
1.3. Кодовая таблица
Интересную историю привел в своей книге «Занимательная арифметика» Я. И. Перельман. В марте 1917 г. жители Петрограда были встревожены таинственными знаками, появившимися неизвестно откуда у дверей многих квартир. Знаки эти имели форму черточек, чередующихся крестами. Пошли зловещие слухи о грабителях, помечающих квартиры своих жертв, о германских шпионах и провокаторах. Я.И. Перельман распутал секрет этих знаков, после чего поместил в газете следующую заметку.
Таинственные знаки
«В связи с таинственными знаками, появившимися на стенах многих Петроградских домов, небесполезно разъяснить смысл одной категории подобных знаков, которые, несмотря на зловещее начертание, имеют самое невинное значение. Говорится о знаках такого типа:
+|| ++|||| +++|||
Подобные знаки замечены во многих домах на черных лестницах у дверей квартир. Обычно, знаки этого типа имеются у всех входных дверей данного дома, причем в пределах одного дома двух одинаковых знаков не наблюдается. Их мрачное начертание естественно внушает тревогу жильцам. Между тем, смысл легко раскрывается, если сопоставить их с номерами соответствующих квартир.
+|| ++|||| +++|||
24 33
Нетрудно догадаться, что кресты означают десятки, а палочки - единицы. Так оказалось во всех без исключения случаях, которые приходилось наблюдать. Своеобразная нумерация эта, очевидно, принадлежит дворникам-китайцам, не понимающим наших цифр. Появились эти знаки, конечно, давно, но только в дни Февральской революции обратили на себя внимание граждан».
Те, кто изучал радиодело, знают, как закодировать и как прочитать сообщение, записанное азбукой Морзе. Похожим образом дело обстоит и с информацией, находящейся внутри компьютера. Загадочные последовательности из нулей и единиц означают на самом деле цифры, буквы, знаки. Для их расшифровки, чтобы они стали понятны человеку, в компьютере есть специальные кодовые таблицы. В них внесены изображения всех букв, знаков препинания (в том числе и пробела), цифр, других полезных символов и каждый нумеруют. Кодовые таблицы весьма разнообразны, поэтому, человек имеет возможность использовать символы самых разных понятий. При смене кодовой таблицы та же кодовая последовательность может отобразиться совершенно другими символами.
В памяти компьютера любой текст представляется последовательностью кодов символов, т. е. вместо самой буквы хранится ее номер в кодовой таблице. Изображение же букв и символов сформируется только в момент их вывода на экран или бумагу. Специальные стандарты определяют, какой код, какому символу будет соответствовать, иначе, (когда все пользуются собственными таблицами) обмен информацией практически невозможен.
Ниже приводится наиболее популярная из стандартизованных кодовых таблиц передачи символов, в которой для каждого символа отводится 8 бит (1 байт).
Таблица 1.
Таблица передачи символов ASCII
Если строго определены элементы алфавита и разрядность слов, получаемых с их помощью, то количество всех кодов можно вычислить, а, следовательно, составить их перечень в форме кодовой таблицы.
Таким образом, в кодовой таблице представлено определенное количество строк и только два столбца:
· в одном столбце указаны цифровые (в нашем случае двоичные) коды - "слова", как сочетания элементов алфавита, расположенные в определенной последовательности;
· в другом столбце - их значения (нецифровой смысл, т. е. значения кодов).
Кодовая таблица- это совокупность цифровых (двоичных) кодов и их значений.
Стоит обратить внимание на то, что до сих пор мы оперировали цифрами и числами, получаемыми из этих цифр при помощи позиционной системы записи. Теперь оказалось, что на самом деле это - только половина кодовой таблицы. Рассмотрим построение кодовой таблицы. Первая проблема, которую нам предстоит решить, заключается в том, чтобы определить количество строк, т. е. мы сначала должны задаться количеством разрядов, как это выяснилось в предыдущем разделе. Но возникает следующий вопрос: а чем это определяется, какой необходимостью? Прежде всего, мы должны располагать предварительной информацией о количестве значений, которое нам предстоит кодировать. Если мы собрались кодировать только два значения, например "да" и "нет" или "черное" и "белое" т. е. такую информацию, которая состоит из двух сообщений, то потребуется всего один разряд (один бит), а соответствующая кодовая таблица будет состоять из двух строк.
Таблица 2.
Кодовая таблица для двух значений
Двоичные коды | Значения кодов |
0 1 | "Да!" "Нет!" |
Простота этой таблицы определяется тем, что в ней используются только элементы кодового алфавита. Если значений, которые надо кодировать, оказывается больше, чем два, то в этом случае элементы алфавита составляются в "слова", длина которых определяется разрядностью.
Например, если для кодирования требуется добавить значение, которое обычно присутствует в анкетах "Не знаю!", то одного разряда окажется недостаточно, необходимо задействовать два разряда
Таблица 3.
Кодовая таблица для трех значений
Двоичные коды | Значения кодов |
00 01 10 11 | "Да!" "Нет!" "Не знаю!" не используется |
Длина кодовой таблицы может быть произвольной, т. к. она определяется объемом информации, которая требует кодирования, но может быть ограничена возможностями технической реализации. Расчет длины кодовой таблицы составляет практически половину всей процедуры ее построения. Теперь большее внимание следует обратить на вторую часть кодовой таблицы, которая определяет значения каждого кода.
Однако следует отметить, что пользователям, которые применяют готовые технологии (программные приложения, общепринятые форматы и режимы), такими расчетами заниматься не приходится, поскольку давно разработаны стандартные кодовые таблицы. Вместе с тем, их ограничения, как правило, вызывают неприятие у лиц, которые не знакомы с особенностями логики, лежащей в основе компьютерных технологий.
Кодовая таблица - это внутреннее (закодированное) представление в машине букв, цифр, символов и управляющих сигналов. Так, латинская буква А в кодовой таблице представлена десятичным числом 65D (внутри ЭВМ это число будет представлено двоичным числом 01000001В), латинская буква С - числом 67D, латинская буква М - 77D и т.д. Таким образом, слово «САМАРА», написанное заглавными латинскими буквами будет циркулировать внутри ЭВМ в виде цифр.
Если говорить точнее, то внутри ЭВМ данное слово циркулирует в виде двоичных чисел: 01000011В-01000001В-01001101В-01000001В-01010000В-01000001В. Аналогично кодируются цифры (например, 1 - 49D, 2 - 59D) и символы (например, ! - 33D, + - 43D). Наряду с алфавитно-цифровыми символами в кодовой таблице закодированы управляющие сигналы. Например, код 13D заставляет печатающую головку принтера вернуться к началу текущей строки
, а код 10D перемещает бумагу, заправленную в принтер, на одну строку вперед. Кодовая таблица может быть представлена не только с помощью десятичной СС, но и при помощи шестнадцатеричной СС. Еще раз обращаем внимание на тот факт, что внутри ЭВМ циркулируют сигналы, представленные в двоичной системе счисления, а в кодовой таблице для большего удобства чтения пользователем - в десятичной или шестнадцатеричной СС. Каждая буква, цифра, знак препинания или управляющий сигнал кодируются восьмиразрядным двоичным числом. С помощью восьмиразрядного числа (однобайтового числа) можно представить (закодировать) 256 произвольных символов - букв, цифр и вообще графических образов.
В разных странах, на различных моделях ЭВМ, в разных операционных системах могут использоваться и разные варианты второй половины кодовой таблицы (их называют расширениями ASCII). Например, таблица, которая используется в операционной системе MS-DOS, называется СР-866. При работе в операционной системе Windows используется таблица кодов СР-1251, в которой кодировка латинских букв совпадает с кодировкой таблиц СР-866 и ASCII, a вторая половина таблицы имеет собственную раскладку (кодировку) символов. Поэтому слово «САМАРА», написанное заглавными русскими буквами, будет иметь внутри ЭВМ другое представление.
Таким образом, внешне одинаковое слово (например, «САМАРА») внутри ЭВМ может быть представлено различным образом. Естественно, это вызывает определенные неудобства. При работе в Интернет национальный текст порой становится нечитаемым. Наиболее вероятной причиной в этом случае является несовпадение кодировок второй половины кодовых таблиц. Заметим, что если для составления писем, отправляемых по электронной почте, используется первая половина кодовой таблицы (латиница), то проблемы с кодировкой не возникают.
Общим недостатком всех однобайтовых кодовых таблиц (в них для кодировки используются восьмиразрядные двоичные числа) является отсутствие в коде символа какой-либо информации, которая подсказывает машине, какая в данном случае используется кодовая таблица.
Сообществом фирм Unicode предложена в качестве стандарта другая система кодировки символов.
В этой системе для представления (кодирования) одного символа используются два байта (16 битов), и это позволяет включить в код символа информацию о том, какому языку принадлежит символ и как его нужно воспроизводить на экране монитора или на принтере. Два байта позволяют закодировать 65 536 символов. Правда, объем информации, занимаемой одним и тем же текстом, увеличится вдвое. Зато тексты всегда будут «читаемыми» независимо от использованного национального языка и операционной системы.