| 
 
  
 
 
  
 
 Лабораторная работа № 1
 
 
 Основные команды отладчика Debug и особенности их выполнения1 Цель работыЦель работы состоит в изучении основных инструкций отладчика Debug, ознакомлении со структурой микроЭВМ IBM PC и освоении особенностей выполнения этих инструкций.
 
 
 2 Сведения из теории2.1 Состав и структура IBM PC
 Структурную схему персональных компьютеров типа IBM PC различных модификаций можно представить в обобщенном виде, как показано на рисунке 1.1.
 
  
 Рисунок 1.1
 
 Персональный компьютер построен по модульному принципу, т.е. в его состав могут входить различные модули-устройства в зависимости от желания и финансовых возможностей покупателя. Отдельные модули соединяются между собой при помощи системной шины. На рисунке 1.1 показан минимальный комплект, включающий центральный процессор, оперативную память, дисплей с клавиатурой, накопители на гибких и жестких дисках, принтер и другие устройства. Центральный процессор, постоянная и оперативная память подсоединяются к общей шине непосредственно, а остальные устройства - при помощи контроллеров. В современных компьютерах для повышения производительности используют несколько шин различных типов.
 
 Конструктивно обычно процессор, оперативная память, накопители на дисках и контроллеры остальных устройств объединены в один электронный блок. При этом процессор, а также оперативная и постоянная память располагаются на так называемой системной, или материнской плате, к которой с помощью штепсельных разъемов подсоединяются остальные устройства.
 
 2.2. Структура микропроцессора
 Основу компьютера составляет микропроцессор, упрощенная структура которого показана на рисунке 1.2. [Здесь приведена структурная схема процессора Intel 80286.] Для этого компьютера данные и команды имеют в основном формат длиной 2 байта (16 бит), а оперативная память может быть емкостью до 1 Мбайт.
 
 
  
 Рисунок 1.2
 
 Устройство управления дешифрирует команды и вырабатывает сигналы управления различными блоками процессора, а также блоками остальных устройств. Основой блока управления служит микропрограммная память, на адресный вход которой подается код операции из регистра команд.
 
 Арифметико-логическое устройство (АЛУ) служит для выполнения арифметических и логических операций. Помимо результата операции, который сохраняется в регистре или памяти, АЛУ определяет ряд признаков результата, или флагов, которые фиксируются на специальном регистре – регистре флагов. Они будут описаны ниже.
 
 В качестве регистра команд используется блок очереди команд; он позволяет хранить шесть очередных байтов команды. Очередь команд заполняется автоматически, как только освобождаются 2 байта в регистрах этого блока. Этот блок позволяет разместить в нем длинную команду и совместить во времени выполнение одной команды и выборку из основной памяти (ОП) следующей команды.
 
 Для формирования исполнительного адреса памяти [он определяется сложением начального адреса сегмента, находящегося в регистре, и смещения в команде (см. ниже)] служит сумматор адресов. Буферы адреса/состояния и адреса/данных обеспечивают связь микропроцессора с другими устройствами. Шина адреса/данных имеет разрядность 16 бит. По этой шине передаются данные или младшие 16 бит адреса. Для передачи старших четырех бит адреса используется шина адреса/состояния.
 
 Микропроцессор содержит 14 программно-доступных регистров, т.е. регистров, имеющих адреса, к которым можно обратиться из программы:
 
 
            общие регистры, или регистры общего назначения (AX, CX, DX, BX);
 
адресные регистры (SP, BP, SI, DI);
 
сегментные регистры (CS, SS, DS, ES);
 
регистр флагов (признаков результата);
 
счетчик команд (IP).
 
 Программно-доступные регистры позволяют хранить слова длиной 16 бит. Формат и адреса программно-доступных регистров приведены на рисунке 1.3. Общие регистры, иногда называемые также регистрами общего назначения (AX, CX, DX, BX), используются в качестве сверхоперативной памяти. Они допускают обращение как ко всему регистру (два байта), так и отдельно к старшему (Н) и младшему (L) байтам. Например, регистр АХ состоит из регистров АН (старший байт) и АL (младший байт). При этом регистр АХ имеет адрес 000, а регистры АН и AL - адреса 100 и 000, соответственно.
 
 Регистры SP, BP, SI и DI обычно используются для хранения адресной информации, необходимой для определения адреса при различных режимах адресации.
 
 Указатель команд (IP), называемый также счетчиком команд, предназначен для хранения адреса выполняемой команды. Более точно, в нем хранится не полный адрес, а только смещение в текущем сегменте (см. ниже).
 
 Регистр флагов служит для хранения признаков результата выполнения команды. Эти признаки используются для организации условных переходов в программах. На рисунке 1.3 показано, что в регистре флагов используются только 8 разрядов.
 
 
  Рисунок 1.3
 
 Значения флагов:
 
 C - перенос (заем) – CY - если перенос выполняется и NC - если нет;
 
 P - четность числа единиц в младшем байте результата (PE – четное, PO – нечетное);
 
 A - перенос из младшей тетрады в старшую (NA – переноса нет, AC перенос произошел);
 
 Z - флаг нуля (ZR – нулевой, NZ – ненулевой результат);
 
 S - флаг знака (старший бит результата положительный PL или отрицательный NG);
 
 O - переполнение (OV – переполнение произошло, NV – переполнение отсутствует);
 
 D - флаг направления обработки цепочек (от меньших или от больших адресов);
 
 I - флаг разрешения прерываний (EI – прерывание разрешено);
 
 Сегментные регистры (DS, CS, ES, SS) служат для сегментной организации оперативной памяти. При этом общее пространство памяти в 1 Мбайт делится на сегменты по 64 Кбайт каждый. Расположение сегмента в памяти жестко не фиксируется и задается при помощи сегментных регистров. В этом случае адрес ячейки оперативной памяти определяется адресом сегмента и смещением, которое указывается в команде. Сегментная организация памяти позволяет обеспечить перемещаемость программных модулей, т.е. возможность их записи на любое свободное место в оперативной памяти. Назначение сегментных регистров:
 
 CS - сегмент кода (программы), используется для задания начального адреса сегмента памяти, в котором записана программа;
 
 DS - сегмент данных, задает начальный адрес сегмента памяти, в котором записаны данные для активной программы;
 
 SS - сегмент стека, используется при организации стековой памяти;
 
 ES - дополнительный сегмент, используется для временного хранения других сегментов, например, при выводе данных на терминал.
 Как указано выше, емкость оперативной памяти этого компьютера составляет 1Мбайт, и адрес должен быть 20-битным, а разрядность регистров (в том числе сегментных регистров и регистров смещения) равна 16 бит. Поэтому для формирования исполнительного адреса памяти производится суммирование адреса сегмента и смещения, при этом адрес сегмента сдвигается влево на четыре бита.
 
 Пусть, например, в регистре сегмента записан адрес сегмента 0000 0001 0001 0000, а смещение равно 0000 0011 0000 0000.
 
 Тогда адрес памяти будет равен:
 
 0000 0001 0001 0000
 
 + 0000 0011 0000 0000
 
 ---------------------------------------------
 
 0000 0001 0100 0000 0000
 
 или в шестнадцатеричном виде 0 1 4 0 0
 Для удобства ввода информации с клавиатуры она представляется в шестнадцатеричной системе счисления.
 
 
 |