Часть 1. Первоначальные сведения об ассемблере и разработке программ для процессора 8086
Глава 2. Архитектура процессора 8086
Устройство персонального компьютера
Традиционный настольный персональный компьютер (ПК) состоит из системного блока, монитора, клавиатуры и мыши. Системный блок содержит: блок питания, системную (материнскую) плату, адаптеры внешних устройств, накопители на жестких магнитных (НЖМД) и гибких (НГМД) дисках, а также ряд других устройств.
Для нас вначале наибольший интерес представляет системная плата, на которой размещаются оперативная память, процессор и логика управления, связанные между собой наборами проводников, которые называются шинами.
Оперативная память физически выполнена в виде микросхем и предназначена для временного хранения программ и данных, которыми они манипулируют. Логически оперативную память можно представить в виде последовательности ячеек, каждая из которых имеет свой номер, называемый адресом. Использование оперативной памяти определяется тем, что считывание или запись в ее ячейку занимает доли микросекунды, а для других устройств это время в 10, а для медленных периферийных устройств даже в 1000 раз больше.
Центральный процессор (ЦП) в современных персональных компьютерах выполнен в виде одной сверхбольшой интегральной микросхемы (СБИС), содержащей свыше миллиона транзисторов. ЦП выполняет машинные команды, выбирая их в заданной последовательности из оперативной памяти.
Работа всех электронных устройств компьютера координируется сигналами управления, вырабатываемыми ЦП и некоторыми другими СБИС, сигналами тактового генератора (тактовой частоты), с помощью которых синхронизируются действия всех сигналов.
Возможности компьютера в наибольшей степени зависят от типа установленного процессора и его тактовой частоты. Семейство процессоров 80õ86 корпорации Intel включает в себя следующие микросхемы:
• 16-разрядные: 8086, 8088, 80286;
• 32-разрядные: i386, 486S;
• 64-разрядные: Pentium.
Совместимые с процессорами 80х86 микросхемы выпускают также фирмы AMD, IBM и Cyrix.
Основные сведения о процессоре 8086. Системы счисления, принятые для представления данных в программах на ассемблере
С точки зрения программиста, процессор 8086 состоит из 8 регистров общего назначения, 4 сегментных регистров, регистра адреса команды и регистра флагов. Процессор выставляет на шину адреса адрес выбираемых из памяти команд (или данных), которые поступают в шестибайтный буфер (очередь команд). Это определяет также невозможность модификации в программе команды, следующей за выполняемой в текущий момент.
Адресную шину можно представить в виде 20 проводников, в каждом из которых может либо протекать напряжение заданного уровня (сигнал 1), либо отсутствовать (сигнал 0). Система счисления, построенная на цифрах 0 и 1 называется двоичной. Цифра 2 в двоичной системе записывается как 10, 3 – как II, 4 – как 100, 5 - как 101, 6 - как 110 и т.д.
Минимальная единица информации, соответствующая двоичному разряду, называется бит. Группа из 8 битов называется байтом (байт – наименьшая адресуемая единица основной памяти), 2 байта (16 бит) образуют слово, а 16 байтов – параграф.
Таким образом, с помощью 16-разрядной шины данных можно передавать числа от 0 (во всех проводниках сигнал 0) до 65535 (во всех проводниках сигнал 1). Несмотря на то, что двоичная система обладает высокой наглядностью, она имеет существенный недостаток – числа, записанные в двоичной системе, слишком громоздки. С другой стороны, привычная для нас десятичная система слишком сложна для перевода чисел в двоичную и обратно. Поэтому наибольшее распространение в практике программирования получила шестнадцатеричная система счисления.
На рис.2.2 приведены представления чисел от 0 до 16 в двоичной, десятичной и шестнадцатеричной системах. Используя эту таблицу, можно легко переводить числа из шестнадцатеричной системы в двоичную и обратно. Например, шестнадцатеричное значение 6F запишется в двоичной системе как 01101111 (6=0110 + F=1111), а двоичное 001111011100 – как шестнадцатеричное 3DC (0011=3 + 1101=D + 1100=С). Для указания основания системы счисления после числа пишется буква, например: 11 – десятичное 11, 11b – двоичное 3, 11h – шестнадцатеричное 17
Двоичное Десятичное Шестнадцатеричное
0000 00 00
0001 01 01
0010 02 02
0011 03 03
0100 04 04
0101 05 05
0110 06 06
0111 07 07
1000 08 08
1001 09 09
1010 10 0A
1011 11 0В
1100 12 0С
1101 13 0D
1110 14 0E
1111 15 0F
10000 16 10
Рис.2.2. Формы представления чисел.