Лабораторная работа №1 Основные команды отладчика Debug и особенности их выполнения 1




старонка1/6
Дата канвертавання21.04.2016
Памер472.59 Kb.
  1   2   3   4   5   6







Лабораторная работа № 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


Для удобства ввода информации с клавиатуры она представляется в шестнадцатеричной системе счисления.

  1   2   3   4   5   6


База данных защищена авторским правом ©shkola.of.by 2016
звярнуцца да адміністрацыі

    Галоўная старонка