Кодирование информации
Программа для микропроцессорной системы управления создается в виде последовательности команд. Каждая команда в общем случае содержит указание того, что должно быть сделано (код операции), и определение объекта действия, т. е. операнд. Способ задания операнда называется режимом адресации. Для микропроцессоров разработано около двух десятков режимов адресации, направленных на сокращение длины программы и времени ее выполнения. .
Наиболее простой, но и наиболее неэкономичной, является прямая адресация, при этом в поле операнда содержится полный адрес операнда в памяти. Таким путем можно обращаться к любой ячейке адресного пространства. Программирование ЭВМ на первых этапах их использования осуществлялось непосредственно в машинных кодах. Каждая команда представляла собой длинную последовательность единиц и нулей. Программирование было трудоемкой и утомительной процедурой: мало того, что программист должен был все время соотносить способ решения задачи с системой машинных команд и помнить, в каких ячейках содержатся данные и промежуточные результаты, он еще должен был выполнять непроизводительную и монотонную работу по записи громоздких двоичных кодов как машинных команд, так и адресов операндов. Значительно облегчило эту задачу использование восьмеричной и шестнадцатеричной систем кодирования.
Восьмеричная (октальная) шестнадцатеричная (гексадецимальная, НЕХ) системы кодирования применяются для упрощения восприятия длинных последовательностей единиц и нулей, представляющих двоичные числа. При этом применяется набор символов 0, 1, 2, 3 и т. д., каждый из которых закодирован последовательностью единиц и нулей в соответствии с двоичной системой счисления. Для бинарного кодирования всех символов какого-либо алфавита требуется различное число бит (табл. 2.1). Как видно из таблицы, для кодирования любого десятичного числа от 0 до 9 требуется четыре бинарных разряда (четыре бита).
Именно поэтому практически во всех микропроцессорах длина машинного слова кратна четырем (8, 12, 16 и т. д.). Для кодирования алфавитных символов недостаточно четырех, пяти и даже шести бинарных разрядов, так как это дает соответственно 16, 32 и 64 различные кодовые комбинации. Для кодирования всех букв русского (33) и латинского (26) алфавитов, а также символов арифметических и других операций приходится использовать семибитное кодирование, позволяющее получить 128 комбинаций.
Очень плодотворной оказалась идея использовать в ЭВМ машинное слово длиной 8 разрядов. При кодировании алфавитных символов используется 7 разрядов, а при кодировании числовой информации в 8-разрядном машинном слове размещается два десятичных разряда. Восьмиразрядное бинарное слово называется байтом. Бит и байт очень похоже звучит (по-английски соответственно и ) но путать их нельзя ни в коем случае. Бит, напоминаем,— это Один двоичный разряд, а байт — набор двоичных разрядов, обрабатываемых в ЭВМ как единое целое. В современных системах управления и обработки данных прочно укрепилось представление, что байт состоит из восьми бит (восьмибитный байт). Иногда правда, считают, что в байте содержится не восемь, а девять двоичных разрядов. Но при этом по-прежнему имеется восемь информационных бит и дополнительно еще один контрольный разряд. Контрольный разряд образуется таким образом, чтобы сумма единиц в двоичном коде каждого символа была обязательно нечетной. Подробнее о назначении и особенностях контрольного разряда будет сказано в § 4.2.
Восьмеричное и шестнадцатеричное кодирование. Как видно из табл. 2.1, три бинарных разряда позволяют закодировать только символы от 0 до 7. В результате получается восьмеричная система кодирования. Для вычислений она не применяется, но благодаря ей сокращается запись и облегчается запоминание кодов. При использовании этой системы последовательность единиц и нулей разбивается на группы по три символа (триады) и для каждой тройки бит записывается ее восьмеричный эквивалент. В ЭВМ МИР, например, когда машина вышла на режим ввода, в регистре адреса должно быть октальное значение 0115, а в регистре числа — 0124, т. е. в бинарной .форме
РА = 000 001 001 101 РЧ = 000 001 010 100
Именно такая комбинация светящихся ламп должна быть на отладочном пульте машины (рис. 2.7). Несомненно, что запомнить число 0124 гораздо легче, чем комбинацию ламп на рисунке.
Четыре бинарных разряда позволяют получить 16 различных кодовых комбинаций, из которых для представления чисел используются только 10 (от 0000 до 1001); оставшиеся шесть комбинаций (от 1010 до 1111) как десятичные числа смысла не имеют. Однако шестнадцатеричный код широко применяется для символьного кодирования программ управления. Кодовые комбинации, соответствующие числам 10 и более, условно обозначаются первыми буквами латинского алфавита (табл. 2.1). Чтобы не выписывать длинные вереницы единиц и нулей, в программах вместо каждых четырех бит записывается их шестнадцатеричный эквивалент. Например, операция 1111 1001 1100 0101 в шестнадцатеричном коде запишется как Р9С5.
Все разработчики систем управления и программисты предпочитают иметь дело с восьмеричными или шестнадцатеричными символами, вместо того чтобы писать бесконечные 1 и 0. Для начинающих проблема состоит только в изучении кода, но при некотором опыте восьмеричные и шестнадцатеричные символы читаются так же легко, как десятичные. Рассмотрим для примера показанную на рис. 2.8 бинарную последовательность длиной 16 бит. Разделим ее на четыре тетрады. Очевидно, что глаз лучше и скорее улавливает закономерность в четырех символах, чем в 16 битах. Возможность записи и чтения трех или четырех бит как одного символа представляет огромное преимущество для адресации и программирования, что будет показано далее.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.