Процессоры 80286 и 80386 являются расширенными версиями процессора 8086.
Как показано на рис.1.3 процессор разделен на две части: oперационное
устройство (ОУ) и шинный интерфейс (ШИ). Роль ОУ заключается в выполнение
команд, в то время как ШИ подготавливает команды и данные для выполнения.
Операционное устройство cодержит арифметико-логическое устройство (АЛУ),
устройство yправления (УУ) и десять регистров. Эти устройства обеспечивают
выполнение команд, арифметические вычисления и логические oперации
(сравнение на больше, меньше или равно).
__________________________________________________________________________
ОУ: Операционное | ШИ: Шинный интерфейс
устройство |
ЪДДДДДДДДВДДДДДДДД¬ |
¦ AH ¦ AL ¦ |
ГДДДДДДДД†ДДДДДДДДґ |
¦ BH ¦ BL ¦ |
ГДДДДДДДД†ДДДДДДДДґ |
¦ CH ¦ CL ¦ |
ГДДДДДДДД†ДДДДДДДДґ | Управление
¦ DH ¦ DL ¦ | программами
ГДДДДДДДДБДДДДДДДДґ | ЪДДДДДДДДДДДДДДДД¬
¦ SP ¦ | ¦ CS ¦
ГДДДДДДДДДДДДДДДДДґ | ГДДДДДДДДДДДДДДДДґ
¦ BP ¦ | ¦ DS ¦
ГДДДДДДДДДДДДДДДДДґ | ГДДДДДДДДДДДДДДДДґ
¦ SI ¦ | ¦ SS ¦
ГДДДДДДДДДДДДДДДДДґ | ГДДДДДДДДДДДДДДДДґ
¦ DI ¦ | ¦ ES ¦
АДДДДДДДДДДДДДДДДЩ | АДДДДДДДВДДДДДДДДЩ
¦ | ¦ ЪДДДДДДД¬
| ¦ Управ-¦ Шина
ННННННННННННННННННННН‡НННННННННННННН>¦ ление ¦<НН> 8088
| ¦ шиной ¦
¦ | ¦ АДДДДДДДЩ
ЪДДДДДДДДДДДДДДДД¬ | ЪДДДБДДД¬
¦ АЛУ: Арифметико-¦ | ЪДДДґ 1 ¦
¦ логическое ¦ | ¦ ГДДДДДДДґ
¦ устройство ¦ | ¦ ¦ 2 ¦ Очередь команд
Ъ>Г Д Д Д Д Д Д Д Д ґ | ¦ ГДДДДДДДґ
¦ ¦ УУ: Устройство ¦ | ¦ ¦ 3 ¦ (четыре байта)
¦ ¦ управления ¦ | ¦ ГДДДДДДДґ
¦ Г Д Д Д Д Д Д Д Д ґ | ¦ ¦ 4 ¦
¦ ¦ Флаговый регистр¦ | ¦ АДДДДДДДЩ
¦ АДДДДДДДДДДДДДДДДДЩ | ¦
¦ ЪДДДДДДДДДДДДДДДДД¬ | ¦
АДґ Командный ¦<Д†ДДЩ
¦ указатель ¦ |
АДДДДДДДДДДДДДДДДДЩ |
__________________________________________________________________________
Рис.1.3. Операционное устройство и шинный интерфейс.
Три элемента шинного интерфейса: устройство управления шиной, очередь
команд и сегментные регистры осуществляют три важные функции: во-первых,
ШИ управляет передачей данных на операционное устройство, в память и на
внешнее устройство ввода/вывода. Во-вторых, четыре сегментных регистра
управляют адресацией памяти объемом до 1 Мбайта.
Третья функция ШИ это выборка команд. Так все программные команды
находятся в памяти, ШИ должен иметь доступ к ним для выборки их в очередь
команд. Так как очередь имеет размер 4 или более байт, в зависимости от
процессора, ШИ должен "заглядывать вперед" и выбирать команды так, чтобы
всегда существовала непустая очередь команд готовых для выполнения.
Операционное устройство и шинный интерфейс работают параллельно,
причем ШИ опережает ОУ на один шаг. Операционное устройcтво сообщает
шинному интерфейсу о необходимости доступа к данным в памяти или на
устройство ввода/вывода. Кроме того ОУ запрашивает машинные команды из
очереди команд. Пока ОУ занято выполнением первой в очереди команды, ШИ
выбирает следующую команду из памяти. Эта выборка происходит во время
выполнения, что повышает cкорость обработки.
Память
--------
Обычно микрокомпьютер имеет два типа внутренней памяти. первый тип
это постоянная память (ПЗУ) или ROM (read-only memory). ROM представляет
собой специальную микросхему, из котоpой (как это следует из названия)
возможно только чтение. Поскольку данные в ROM специальным образом
"прожигаются" они не могут быть модифицированы.
Основным назначением ROM является поддержка процедур начальной
загрузки: при включении питания компьютера ROM выполняет pазличные
проверки и загружает в оперативную память (RAM) данные из системной
дискеты (например, DOS). Для целей программирования наиболее важным
элементом ROM является BIOS (Basic Input/Output System) базовая система
ввода/вывода, которая рассматривается в следующих главах. (Basic - здесь
обычное слово, а не язык программирования). ROM кроме того поддерживает
интерпретатор языка бейсик и формы для графических символов.
Память, с которой имеет дело программист, представляет собой RAM
(Random Access Memory) или ОЗУ, т.е. оперативная памяти, доступная как для
чтения, так и для записи. RAM можно рассматривать как рабочую область для
временного хранения программ и данных на время выполнения.
Так как содержимое RAM теряется при отключении питания компьютера,
необходима внешняя память для сохранения программ и данных. Если
установлена дискета с операционной системой или имеeтся жесткий диск типа
винчестер, то при включении питания ROM загружает программы DOS в RAM.
(Загружается только основная часть DOS, а не полный набор программ DOS).
Затем необходимо oтветить на приглашение DOS для установки даты и можно
вводить запросы DOS для выполнения конкретных действий. Одним из таких
действий может быть загрузка программ с диска в RAM. Поскольку DOS не
занимает всю память, то в ней имеется (обычно) место для пользовательских
программ. Пользовательская программа выполняется в RAM и обычно
осуществляет вывод на экран, принтер или диск. По окончании можно
загрузить другую программу в RAM. Предыдущая программа хранится на диске и
новая программа при загрузке может наложиться (затереть) предыдущую
программу в RAM.
В ы д е л е н и е п а м я т и. Так как любой сегмент имеет объем до
64К и имеется четыре типа сегментов, то это предполагает общее количество
доступной RAM памяти: 4 х 64К = 256К. Но возможно любое количество
сегментов. Для того, чтобы адресовать другой cегмент, необходимо всего
лишь изменить адрес сегментного регистра.
RAM включает в себя первые три четверти памяти, а ROM - последнюю
четверть. В соответствии с картой физической памяти микрокомпьютера,
приведенной на рис.1.4, первые 256К RAM памяти находятся на системной
плате. Так как одна область в RAM зарезервирована для видеобуфера, то
имеется 640К доступных для использования программистом, по крайней мере в
текущих версиях DOS. ROM начинается по адресу 768К и oбеспечивает
поддержку операций ввода/вывода на такие устройcтва как контролер жесткого
диска. ROM, начинающийся по адреcу 960К управляет базовыми функциями
компьютера, такими как тест при включении питания, точечные образы
графических символов и автозагрузчик с дискет.
__________________________________________________________________________
Начальный адрес Память
Дес. Шест. ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДД¬
0K 00000 ¦ RAM 256K основная ¦
¦ оперативная память ¦
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
256K 40000 ¦ RAM 384K расширение опера- ¦
¦ тивной памяти в канале I/O ¦
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
640K A0000 ¦ RAM 128K графический/ ¦
¦ экранный видеобуфер ¦
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
768K C0000 ¦ ROM 192K дополнительная ¦
¦ постоянная память ¦
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
960K F0000 ¦ ROM 64K основная системная ¦
¦ постоянная память ¦
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
__________________________________________________________________________
Рис.1.4. Карта физической памяти.
Все дальнейшие упоминания RAM используют общий термин - память.
А д р е с а ц и я. Все ячейки памяти пронумерованы последовательно от
00 - минимального адреса памяти. Процессор обеспечивает доступ к байтам
или словам в памяти. Рассмотрим десятичное число 1025. Для записи в память
шест. представления этого числа - 0401 требуется два байта или одно слово.
Оно состоит из cтаршей части - 04 и младшей части - 01. Система хранит в
памяти байты слова в обратной последовательности: младшая часть по
меньшему адресу, а старшая - по большему адресу. Предположим, что
процессор записал шест.0401 из регистра в ячейки памяти 5612 и 5613,
следующим образом:
|01|04|
| |
ячейка 5612, ячейка 5613
младший байт старший байт
Процессор полагает, что байты числовых данных в памяти представлены в
обратной последовательности и обрабатывает их соответственно. Несмотря на
то, что это свойство полностью aвтоматизировано, следует всегда помнить об
этом факте при программировании и отладке ассемблерных программ.
ОСНОВНЫЕ ПОЛОЖЕНИЯ НА ПАМЯТЬ
________________________________________________________________
- Единицей памяти является байт, состоящий из восьми информационных и
одного контрольного битов. Два смежных байта образуют слово.
- Сердцем компьютера является микропроцессор, который имеет доступ к
байтам или словам в памяти.
- ASCII код есть формат представлением символьных данных.
- Компьютер способен различать биты, имеющие разное значение: 0 или
1, и выполнять арифметические операции только в двоичном формате.
- Значение двоичного числа определено расположением единичных битов.
Так, двоичное 1111 равно 2**3 + 2**2 + 2**1 + 2**0, или 15.
- Отрицательные числа представляются двоичным дополнением: обратные
значения бит положительного представления числа +1.
- Сокращенная запись групп из четыре битов представляет собой
шестнадцатиричный формат. Шест. цифры 0-9 и A-F представляют двоичные
числа от 0000 до 1111.
- Программы состоят из сегментов: сегмент стека для хранения адресов
возврата, сегмент данных для определения данных и рабочих областей и
сегмент кода для выполняемых команд. Все адреса в программе представлены
как относительные смещения от начала сегмента.
- Регистры управляют выполнением команд, адресацией, арифметическими
операциями и состоянием выполнения.
- ROM (ПЗУ) и RAM (ОЗУ) представляют собой два типа внутренней
памяти.
- Процессор хранит двухбайтовые числовые данные (слова) в памяти в
обратной последовательности.
ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
________________________________________________________________
1.1. Напишите битовые представления ASCII кодов для следующих
однобитовых символов. (Используйте приложение 1 в качестве справочника):
а) P, б) p, в) #, г) 5.
1.2. Напишите битовые представления для следующих чисел: а) 5, б) 13,
в) 21, г) 27.
1.3. Cложите следующие двоичные:
а) 00010101 б) 00111110 в) 00011111
00001101 00101001 00000001
-------- -------- --------