Электронный экзаменатор у вас дома. Информатика
.pdf2. Биты и байты |
11 |
|
|
6FA4 = 6 16 в степени 3 + 15 16 в степени 2 + 10 16 в степени 1 +
4 16 в степени 0 = 28580
2. Биты и байты
Условились восемь двоичных разрядов называть байтом — по числу проводов на шине адресов или данных в персональных компьютерах.
Введение этой единицы сделало более компактной запись адресов и данных в программных листингах и числовых характеристиках, относящихся к ПК.
Повторим то же самое, но несколько с других позиций.
Русский алфавит содержит 33 буквы. Для удобства представления всех букв пятипозиционным бинарным кодом исключим букву «й» (и краткое) из алфавита. Останется 32 буквы — два в степени пять.
а) Сначала поставим в соответствие каждой двоичной комбинации букву алфавита:
00001 — À,
00010 — Á,
00011 — Â,
00100 — Ã,
00101 — Ä,
-------------
-------------
è ò. ä.
б) Затем поставим в соответствие каждой двоичной комбинации цифры по порядку:
00001 — 1,
00010 — 2,
00011 — 3,
00100 — 4,
00101 — 5,
------------
------------
11111 — 31
100000 — 32
12 |
II. Представление чисел и букв в ПК |
|
|
Видно, что операции а) и б) есть операции кодирования цифр и букв двоичным пятипозиционным кодом.
Попробуем записать в общем виде формулу перевода двоичного числа в десятичное, так, как мы это сделали для пятипозиционного кода.
Итак, младшие разряды в этом коде располагаются справа, а старшие — слева. В каком смысле старшие и младшие? А вот в каком.
Интуитивно можно представить формулу перехода двоичного числа в десятичное таким образом (например, для двоичной цифры семь): 00111 — > 7
0* (2 в степени 4) + 0* (2 в степени 3) + 1* (2 в степени 2) + + 1* (2 в степени 1) + 1* (2 в степени 0) = 7.
Мы видим, что коэффициенты (нули и единицы) умножаются на множители с основанием äâà è степенью основания, уменьшающейся слева направо, т. е. В порядке уменьшения старшинства разрядов.
Особенности конструкции компьютеров предполагают, что число позиций в комбинациях единиц и нулей кратно двум:
первые микрокомпьютеры — 4-позиционный код (например, 0101), затем 8-позиционный, 16-позиционный, 32-позиционный и, наконец, в суперсовременных ПК — 64-позиционные комбинации.
Если мы расположим на восьми позициях комбинацию из единиц и нулей, например:
11010100, то такую комбинацию назовем: восьмипозиционный код или комбинация из восьми битов (т. е. из восьми позиций, каждая из которых имеет неопределенное состояние — 0 или 1 — то, что мы назвали áèò).
Для удобства обозначений такую 8-позиционную комбинацию назвали байт.
Можно представить себе ряд из восьми лампочек, каждая из которых либо горит, либо не горит (независимо от соседних лампо- чек) с вероятностью 0,5. Вот это и будет наглядным представлением байта.
3. Комбинации байтов
Максимальная величина числа, закодированного байтом, — два в восьмой степени — 256, двумя байтами — два в шестнадцатой степени — 65536. Какую максимальную величину числа можно получить четырьмя байтами, посчитайте сами.
4. Представление чисел, букв и символов в ПК |
13 |
|
|
4. Представление чисел, букв и символов в ПК
Буква на дисплее ПК — это байт (т. е. одна комбинация из 256), если она представлена в примитивном «черно-белом варианте». Если она представлена в графическом виде со сложной вязью и многоцветной палитрой, может не хватить и двух байт.
5. Сложение, вычитание, умножение и деление двоичных чисел
Двоичная арифметика — все арифметические операции можно выполнить с помощью чисел двоичной арифметики.
Сложение двоичных чисел подобно сложению десятичных. В обоих случаях процедура начинается с обработки наименьших значащих цифр, расположенных в крайней правой позиции, т. е. С младших разрядов.
Если результат сложения наименьших значащих цифр двух слагаемых не помещается в соответствующем разряде, то происходит перенос.
Цифра, переносимая в соседний слева разряд, добавляется к его содержимому. Сложение цифр любых одноименных разрядов может повлечь за собой перенос в старший разряд. В десятичной арифметике перенос возникает, если результат сложения цифр двух одноименных разрядов больше 9. В случае двоичной арифметики этот перенос возникает, если результат сложения двух цифр
больше единицы. |
|
|
десятичная |
двоичная |
|
арифметика |
арифметика |
|
перенос (единицы) 1 1 перенос (единицы)1 1 1 1 1 1 1 0 |
||
первое слагаемое |
0 9 9 |
0 1 1 0 0 0 1 1 |
второе слагаемое + 0 9 5 |
+ 0 1 0 1 1 1 1 1 |
|
|
______ |
____________ |
сумма |
194 |
1 1 0 0 0 0 1 0 |
Процедура сложения двух десятичных чисел 99 и 95 начинается с операции сложения цифр двух младших разрядов: 9 + 5 = 14. В разряд единиц результата записывается число 4, а оставшаяся единица переносится в соседний слева разряд десятков. Затем производится сложение цифр разряда десятков обоих слагаемых с добавлением 1, перенесенной из разряда единиц: 9 + 9 + 1 = 19.
14 |
II. Представление чисел и букв в ПК |
|
|
В разряд десятков записывается число 9, а 1 переносится в разряд сотен.
Сложение двоичных чисел выглядит намного проще и удобнее. Младший разряд двух слагаемых содержит единицы и при сложении дает 0, и 1 переносится в левый соседний разряд (второй слева). Единица + единица = 0 и плюс единица, перенесенная из младшего разряда = 1 и единица переноса снова в старший разряд (слева). 0 + 1 = 0 и плюс 1, перенесенная из младшего разряда = 1. И т. д.
Для того чтобы проверить правильность вычисления (сложения), нужно сложить все полученные разряды с весами, соответствующими их разрядам:
(2 в степени 7) + (2 в степени 6) + 0 + 0 + 0 + 0 + + (2 в степени 1) + 0 = 194
Вычитание двоичных чисел также подобно вычитанию десяти- чных. В обоих случаях процедура начинается с обработки наименьших значащих цифр, расположенных в крайней правой позиции, т. е. с младших разрядов.
Если для вычитания наименьших значащих цифр уменьшаемого и вычитаемого требуется сделать заем, то при этом происходит перенос этого заема в соседний старший разряд.
Цифра, переносимая в соседний слева разряд, вычитается от его содержимого. В десятичной арифметике заем возникает, если результат вычитания цифр двух одноименных разрядов является отрицательным или цифра уменьшаемого просто меньше цифры вычитаемого. В случае двоичной арифметики этот перенос возникает, если результат вычитания также является отрицательным или цифра (соответствующего разряда) уменьшаемого меньше цифры вычитаемого.
десятичная |
|
двоичная |
арифметика |
|
арифметика |
заем (единица) |
1 1 |
1 1 0 0 0 0 0 |
уменьшаемое |
1 0 9 |
0 1 1 0 1 1 0 1 |
вычитатемое |
– 4 9 |
–0 0 1 1 0 0 0 1 |
|
_____ |
______________ |
разность |
0 6 0 |
0 0 1 1 1 1 0 0 |
Процедура вычитания двух десятичных чисел 109 и 49 начинается с операции вычитания цифр двух младших разрядов: 9 – 9 = 0. Затем производится вычитание цифр разряда десятков с заемом
5. Сложение, вычитание, умножение и деление двоичных чисел |
15 |
|
|
десятка из старшего разряда десятков: 0 – 4 = 6. В разряд десятков записывается число 6, а заем 1 переносится в разряд сотен.
Вычитание двоичных чисел выглядит также намного проще и удобнее, как это было с процедурой сложения.
1 – 1 = 0;
0 – 0 = 0;
1 – 0 = 0;
1 – 0 = 0; 0 – 1 = 1 и при этом происходит заем единицы из старшего
разряда; 1 – 1 = 0, но был заем и поэтому 0 – 1 = 1 и происходит опять
заем из старшего разряда слева; 1 – 0 = 0, но был заем и поэтому 0 – 0 = 0 и, наконец, 0 – 0 = 0
Для того чтобы проверить правильность вычисления (вычитания), нужно сложить все полученные разряды с весами, соответствующими номеру разряда:
0 + 0 + (2 в степени 5) + (2 в степени 4) + (2 в степени 3) + + (2 в степени 2) + 0 + 0 = 60
Отрицательные числа — в вычислительной технике широко используется представление отрицательных чисел в «дополнительном» коде. Дополнительный код образуется из обратного кода добавлением единицы.
Число 4 |
в двоичной форме 0 0 0 0 0 1 0 0 |
|
Обратный код числа 4 |
1 1 1 1 1 0 1 1 |
|
Добавляемая к обратному коду 1 |
1 |
|
Число 4 |
в дополнительном коде |
1 1 1 1 1 1 0 0 |
Формирование дополнительного кода можно осуществлять следующим способом. Пишут прямой код, затем в поисках первого бита, равного единице, просматривают справа налево разряды числа, начиная с наименьшего по значимости, до тех пор пока встречаются нули, их копируют в одноименные разряды результата. Первая встретившаяся единица также копируется в соответствующий разряд результата, но каждый последующий бит исходного числа заменяется на обратный.
Операции с обратными кодами, дополнительными и прямыми существенно облегчают понимание физической сущности работы вычислительных машин, каковой и является ваш ПК.
16 |
II. Представление чисел и букв в ПК |
|
|
Умножение в двоичном виде также имеет большое сходство с умножением в десятичном виде. Для примера ограничимся вот такой лесенкой, представляющей умножение числа 17 на число 12:
множимое 17 — 0001 0001 множимое 12 — 0000 110
_________
0000 0000
0000 0000
0001 0001
0001 0001
0000 0000
0000 0000
0000 0000
0000 0000
0000 0000 0000 0000
____________________
0000 0000 1100 1100 — результат 204
Для того чтобы проверить правильность вычисления (умножения), нужно сложить все полученные результаты поразрядно со сдвигом с весами, соответствующими номеру разряда:
(2 в степени 7) + (2 в степени 6) + 0 + 0 + (2 в степени 3) + + (2 в степени 2) + 0 + 0 = 204
Из примера видно, что такое умножение осуществляется путем поразрядного сдвига и сложения частичных результатов, так же, как это реализуется и в десятичной арифметике.
Деление. Поскольку операция деления есть процедура, обратная умножению, то при делении повторяют вычитание до тех пор, пока уменьшаемое не станет меньше вычитаемого. Число повторений процедур вычитаний показывает, сколько раз вычитаемое укладывается в уменьшаемом.
Процедура деления несколько сложнее процедуры умножения, но она может быть упрощена применением дополнительного кода (он получается заменой единиц на нули и наоборот — нулей на единицы).
Предоставляем читателю самому разобраться с механизмом деления двоичных чисел, а сами перейдем к рассмотрению процедуры выполнения программы, чтобы на ее примере понять, каким образом компьютер производит вычисления.
6. Более сложные операции над числами |
17 |
|
|
6. Более сложные операции над числами
Мы доказали это тем, что все десятичные числа переводятся в двоичные числа, а арифметические действия с двоичными числами дают такой же результат, что и с десятичными числами. Если числа дробные или отрицательные, то и здесь находится достаточ- но простой механизм для действий с этими числами в двоичном виде. Знак учитывается дополнительным битом, а нецелое число представляется в виде двух частей — целого и оставшейся части.
7. Управление вычислительным процессом. Шины адресов, данных, управления
Данные подаются из памяти в микропроцессор, а затем, после завершения операции вычисления, пересылаются в память. Следовательно, шина данных должна обладать способностью передавать данные в обоих направлениях. Схемы так называемых «защелок» (латчей — latch) обеспечивают двунаправленность передачи данных.
Кроме прямого и обратного направления передачи данных шина данных (и адресов) имеет третье состояние — «отключено».
Управление состояниями шин адресов и данных обеспечивается линиями сигналов управления.
Забегая вперед, скажем, что архитектура персонального компьютера построена по магистрально-модульному принципу. Этот принцип обеспечивается «развязками» (т. е. независимостью, автономностью работы) между собой — шин данных, шин адресов, шин управления микропроцессором и контроллерами. Эти шины через систему «латчей» объединяются в магистральные øèíû.
Физически модульный принцип означает, что пользователь может формировать конфигурацию по своему усмотрению, т. е. пользователь может вносить изменение в начальные конфигурации ПК.
Конструктивно выделяют два вида магистральных øèí:
1)для подключения высокоскоростных устройств (видеоконтроллеры, контроллеры жестких дисков).
Обозначается: PCI.
2)для подключения низкоскоростных устройств (звуковая карта, контроллеры ввода/вывода).
Обозначается: ISA/EISA.
В последнее время применяются только магистральные шины
PCI.
III. Микропроцессор — основа ПК
1. Арифметико-логическое устройство (АЛУ)
Поскольку нам теперь известно, что все математические операции моделируются операциями алгебры Буля (5 операций), то мы можем представить, что для этого потребуется 2 регистра, взаимодействующих друг с другом — расположены в АЛУ (àðèô- метико-логическое устройство) и выдающих результат в третий регистр — аккумулятор.
2. Регистры сдвига и буферные регистры
Следовательно, микропроцессор — это АЛУ, регистры сдвига (аккумулятор), буферные регистры. Буферные регистры необходимы для приема (и передачи обратно) данных в микропроцессор из внешней шины данных и шины управления.
3. Дешифратор команд, счетчик команд и управляющие элементы
Если окажется, что двоичная комбинация, считанная из памяти, принадлежит команде, то мы должны ее распознать: для этого существует дешифратор команд. Счетчик команд нужен для того, чтобы синхронизировать программу со своевременной подготовкой данных и подачей следующей команды. После приема и дешифрования команды линии управления подают сигнал (команду в машинном коде) на АЛУ, набор сдвиговых регистров, регистр состояния и буферные регистры. Причем все это синхронизируется с приемо/передачей сигналов по внутренней шине данных, адресной шине и линиям сигналов управления.
4. Шина данных, адресная шина и линии сигналов управления
По внешней шине данных микропроцессор получает данные и команды из памяти, т. е. микропроцессор связан с памятью шиной
5. Набор машинных команд |
19 |
|
|
данных, адресной шиной и линиями сигналов управления. Следует еще раз заметить, что эти магистрали — двунаправленные т. е. они могут иметь состояние «выключено» и включено «к микропроцессору» или «от микропроцессора».
Таким образом, микропроцессор — это ÀËÓ, регистры сдвига и устройства управления.
5. Набор машинных команд
Итак, на входе дешифратора команд появляется двоичная комбинация нулей и единиц (00111011), которая имеет какой-то заранее вложенный в нее смысл. Ну, например, ЗАГРУЗКА АККУМУЛЯТОРА ПРЯМАЯ. Но запоминать такие комбинации или искать их по справочнику (когда этих команд более двухсот) — дело неблагодарное.
6. Язык программирования Ассемблер
Вместо того чтобы запоминать бессмысленную комбинацию (00111011), программисту проще запомнить или мнемоническое значение команды, или ее вербальную (словесную) аббревиатуру — сокращенное слово. ЗАГРУЗКА АККУМУЛЯТОРА ПРЯМАЯ — LDD A. По-английски слово «загрузить» — load (LD), прямая — direct(D). Вот и получается — LDD A (аккумулятор).
Таким образом, от машинных, трудно запоминающихся кодов мы приходим к командам языка Ассемблер. Написав программу на этом языке, мы пропустим ее через транслятор, специальную программу, которая переведет этот язык в машинные коды. А уж машинные коды напрямую поступят на микропроцессор.
7. Структура ПК
Таким образом, структура вычислительной машины содержит
арифметико-логическое устройство — ÀËÓ, аккумулятор (регистр),
вспомогательные регистры, буферные регистры, дешифратор команд, счетчик команд, шину данных, адресную шину и линии сигналов
управления.
20 |
III. Микропроцессор — основа ПК |
|
|
Еще раз отметим, что почти все вышеперечисленные блоки и узлы в своей основе — РЕГИСТРЫ, т. е. последовательности («цепочки») триггеров.
8. Взаимодействие микропроцессора с памятью
Рассмотрим оперативную память (условную), состоящую из 8 адресуемых ячеек по 12 бит информации в каждой. Объем такой памяти составит 12 · 8 = 12 байт.
Каждой ячейке памяти присвоим трехбитовый адрес.
Адреса |
Коды команд |
Адрес первого |
Адрес второго |
Адрес |
в памяти |
|
операнда |
операнда |
результата |
000 |
001 |
100 |
101 |
110 |
001 |
010 |
110 |
101 |
111 |
010 |
000 |
000 |
000 |
000 |
011 |
|
|
|
|
100 |
|
|
|
111 |
101 |
|
|
|
101 |
110 |
|
|
1 |
100 |
111 |
|
|
111 |
100 |
|
|
|
|
|
|
|
|
|
|
Âпамяти совместно хранятся коды команд и коды данных в двоичной форме. Данный принцип хранения информации носит название принципа хранения информации.
Программа, записанная в кодах, состоит из кодов команд и данных.
Код команды условно состоит из следующих компонентов: первые три бита — код ячейки оперативной памяти; вторые три бита — код адреса для первого операнда (данного) А1; третьи три бита — адрес второго операнда А2;
четвертые три бита — адрес для размещения полученного результата.
Процессор (условно) состоит из двух устройств:
1.Устройство управления (УУ) — обрабатывает команды и состоит из Автомата управления (АУ) и счетчика команд.
2.Арифметико-логическое устройство (АЛУ) — производит обработку данных и состоит из регистра памяти и сумматора.
Âкачестве примера работы программы рассмотрим вычисле-
ние по следующей формуле: (7 + 5) 5
