Символ ¦ Код(HEX) Символ ¦ Код(HEX) Символ ¦ Код(HEX)
--------+--------- -------+--------- -------+---------
"ничего"¦ 00 "A" ¦ 41 "А" ¦ 81
"0" ¦ 30 "B" ¦ 42 "Б" ¦ 82
"1" ¦ 31 "C" ¦ 43 "В" ¦ 83
.. ¦ .. .. ¦ .. .. ¦ ..
"9" ¦ 39 "Z" ¦ 5A "Я" ¦ 9F
":" ¦ 3A "[" ¦ 5B "а" ¦ A0
\_________ASCII кодировка___________/
\_______________альтернативная кодировка_______________/
В Internet для русского языкаиспользуется кодировка КОИ-8. В настоящее время разработан и используется 16-тибитовый Unicode с 65536 различными симвоволами.
Служит для отображения образа BCDили HEX цифры высвечиваемой на индикаторе в виде набора 0 и 1. Может бытьпринято следующее соответствие между битами и сегментами:
Внизу приведен битовый набор длявысвечивания цифры 4. Единицы обычно соответствуют светящимся сегментам.
Набор единиц и нулей хранящихся врегистре или ячейке памяти (двоичный набор) для микропроцессора ничего неозначает. Пусть в регистре находится набор из восьми битов 10000110.Он может быть интерпретирован следующим образом, как:
1) двоичное число = 10000110, имеющее
а) шестнадцатиричный эквивалент = 86(HEX),
б) восьмиричный эквивалент = 206(OCT),
в) десятичный эквивалент числа без знака = 134(DEC),
2) дополнительный код отрицательного числа =-122(DEC),
3) двоично-десятичное упакованное число = 86(BCD),
4) альтернативный код буквы "Ж",
4') код КОИ-8 символа "¦",
5) восьмисегментный код цифры "1.",
6) часть вещественного числа,
7) реализация множества,включающего 3 элемента из 8-ми,
8) часть адреса ячейки памяти или внешнего устройства,
9) код операции и т.д.
Поэтому ответственностьза интерпретацию двоичных наборов возлагается на программиста.Например, попытка сложить ASCII коды "1" + "2" не даст всумме код "3", а даст 31(HEX) + 32(HEX) = 63(HEX), что соответствуеткоду латинской буквы "c".
Огромное количествомикропроцессоров (МП) не позволяет рассмотреть ихособенности, поэтому выбор пал на родоначальника семейства 80x86 : МПК1810ВМ86/88 (8086/8088). Такой выбор оправдан, во-первых преобладающим паркомЭВМ с этим МП, во-вторых тем, что все МП этого семейства при включении начинаютработу в реальном режиме МП 8086, и в-третьих - программной совместимостью ихассемблеров снизу вверх. На рис 1. приведена структурная схема МП8086 и внешнийвид типового микропроцессора.
Устройство управления декодирует байтыпрограммы и управляет работой операционного устройства и шинногоинтерфейса. Операционное устройство МП состоит из 4-хшестнадцатиразрядных регистров общего назначения: РОН(AX,BX,CX,DX), из 4-х регистров указателей (адресных регистров SP,BP,SI, DI) и арифметико-логическогоустройства (АЛУ) с регистром признаков операций(флагов F).
РОН служат для храненияпромежуточных результатов операций, т.е. операндов. Помимо общих, каждый изэтих регистров имеет и некоторые специальные функции, окоторых будет сказано далее. Каждый РОН может раcсматриваться, как состоящий издвух независимых 8-ми разрядных регистров AH, AL, BH, BL, CH, CL и DH, DL.
Адресные регистры хранят 16-тибитовые указатели (адреса) на области памяти. В SP (StackPointer)находится текущий адрес "вершины стека" - специальноорганизованной области памяти, которая будет описана далее. Регистр BP(BasePointer) хранит любой базовый адрес в области стека. Дварегистра SI и DI (Source и Destination Index) адресуют области памяти,называемые источником и приемником данных.
Шинный интерфейс, на рис.1 егоузлы отмечены двойной чертой, выполняет операции обмена между МП и памятью иливнешними устройствами. В сегментных регистрах CS,SS,DS,ESхранятся указатели на 64-х килобайтные области памяти называемые сегментами.Значения этих указателей могут перекрываться. Адрес байта в ячейке памятиполучается суммированием содержимого одного из сегментных регистров и одного изрегистров (SP,SI,DI,IP). Например адрес текущего байта программы, извлекаемогоиз памяти определяется суммой адресов, хранящихся в регистре кодового сегмента(CS) и указателе команд (IP). В регистре IP хранится 16-битовый адресбайта в кодовом сегменте к которому микропроцессор дожен обратиться.Подробнее об этом будет сказано далее. Связь с внешними устройствамиосуществляется через специальные тристабильные схемы с повышенной нагрузочнойспособностью и называемые буферами.
Текущий байт программынаправляется в очередь команд: шесть однобайтовых регистров расположенных конвейером(по принципу "первым вошел - первым вышел" или FIFO ). Конвейерпозволяет одновременно выполнять команду из очереди и загружать следующую,повышая производительность МП. Буферные тристабильные элементы увеличиваютмощность сигналов до стандартных значений ТТЛ.
По результатам операций АЛУустанавливает либо сбрасывает отдельные биты в регистре флагов F.
x обозначает, что содержимоеэтого бита не имеет значения. Некоторые операции влияют только на отдельныефлаги, а другие совсем на них не воздействуют, поэтому при описании флаговподразумевается выполнение тех команд (операций), которые влияют на эти флаги.В дальнейшем, в тексте, фраза "содержимое XX" будет обозначатьсякруглыми скобками - (XX).
Рассмотрим в качестве примерасложение двух однобайтовых чисел: 125 + 4 = 129 выходит за пределы -128....+127 чисел со знаком (для беззнаковых чисел 129 - корректный результат).
0 1 1 1 1 1 0 1 = +125
0 0 0 0 0 1 0 0 = +4
1 0 0 0 0 0 0 1 = +129 > +128 (или -127 ???)
/ / :
0 1 :
Перенос в бит D7 равен 1, а избита D7 = 0, в результате сложения чисел (OF) = 1, (CF) = 0, (ZF) = 0, (SF) =1, (PF) = 0, (AF) = 1. Остальные три флага будут рассмотрены далее. Содержимоерегистра признаков называется также словом состоянияпроцессора(программы) и обозначается PSW.
МП 8086 имеет 20-ти разрядную шинуадреса ША, позволяющую обращаться к 2^20 или примерно к одному миллиону ячеекпамяти. 16-ти битовая шина данных ШД может пересылть информацию байтами илисловами. Память обычно организована в виде линейного одномерного массива байтов,причем два соседних байта могут рассматриваться как слово. Все мегабайтноепространство памяти условно делится на 16 сегментов объемом по 64Kb.Микропроцессору доступны в каждый момент четыре - кодовый сегмент, где хранитсяпрограмма, стековый сегмент, сегмент данных программы и дополнительный сегментданных. Начальные адреса этих сегментов хранятся в регистрах CS,SS,DS и ES. Таккак эти регистры 16-ти битовые, а все адресное пространство 20-ти битовое, тоМП начальный сегментный адрес в 20-ти битовом сумматоре сдвигает на четыре битавлево (эквивалентно умножению на 16) и складывает с содержимым одного изрегистров (IP,SP,DI,SI).
Полученное число называетсяфизическим адресом. Например, извлекая из памяти очередной байт кода программыМП формирует физический адрес по формуле: Физический адрес = (IP) + (CS) * 16,где (IP) - смещение, эффективный или исполнительный адрес, (CS) - сегментныйадрес, а (CS) * 16 - называется начальным сегментным адресом. Организацияпамяти приведена на рис.2.
включает микропроцессор,стабилизируемый кварцем генератор импульсов, два устройства для формированияадресных и управляющих сигналов и двунаправленный буфер шины данных. Схема ПБпредставлена на рис.3. Для уменьшения общего количества выводов МП, понекоторым из них в разные моменты передаются разные сигналы, поэтому младшие 16линий адреса и шина данных совмещены (мультиплексированы).
Конденсатор C до включенияпитания разряжен. В начальный момент времени t0 подается напряжение питания навыводы (+). Начиная с этого момента времени на входе ~RES действует логический0 до момента t1, когда напряжение на конденсаторе C достигнет пороговогозначения логической 1. В течение интервала t0..t1 выходной сигнал RESET имеетактивный уровень лог.1. Микропроцессор переводится в исходное состояние. Приэтом в регистр CS записывается код FFFFh, а в регистр IP код 0000h.