Материал: Микропроцессорные устройства систем управления (2005)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Для выполнения программы сложения начальный адрес программы А4 должен выть указан в программном счетчике. После завершения предыдушей команды устройство управления производит чтение кода из памя­ ти по адресу А4 и его запись в регистр команд микропроцессора. Так как код этой команды содержит двухбайтовый адрес (А1), устройство управ­ ления дополнительно производит чтение остальных двух байт с автоин­ крементом адреса в программном счетчике. Только после чтения всех трех байт кода команды операция может быть выполнена, т.е. адрес А1 поступит в шину адреса, байт данных D1 будет помещен в аккумулятор, а в программном счетчике - адрес следующей команды (А4+3). Далее микро­ процессор производит чтение и выполнение следующей команды, автома­ тически формируя адреса последующих команд в программном счетчике, и т.д.

Необходимо обратить внимание на две важные особенности програм­ мной реализации. Во-первых, выполнение любой операции состоит из двух этапов: чтение и ввод кода выполняемой команды, и непосредственное вы­ полнение команды. Для ускорения работы в современных микропроцессо­ рах эти этапы обычно выполняют параллельно, выполнение текущей ко­ манды совмещают с вводом кода следующей команды. Во-вторых, порядок выполнения операций определяется программным счетчиком. При работе микропроцессора адрес в программном счетчике автоматически инкрементируется, что и определяет линейную очередность выполнения команд с нарастающими адресами в памяти. Если в программе требуется изменить порядок выполнения команд, необходимо изменить содержимое программ­ ного счетчика. Замена адреса в программном счетчике позволяет вызвать для выполнения другие фрагменты программы, изменяя линейную очеред­ ность выполнения команд.

Линейные алгоритмы с последовательным выполнением программы не­ достаточно функциональны, поэтому в реализуемых алгоритмах практиче­ ски всегда требуется управление выполнением программы. Для решения этой задачи набор команд любого микропроцессора содержит специальную группу команд управления. Назначение команд управления - изменение в программном счетчике адресов выполняемого в данный момент фрагмента программы. Такое управление программным счетчиком и позволяет вы­ полнять все необходимые функции управления работой программы.

Рассмотрим алгоритм, требующий управления работой программы, на­ пример, для задачи поддержания микроклимата в помещении. Типичная постановка задачи может быть следующая: нормальное состояние помеще­ ния при температуре в диапазоне tmin - tmax; если температура превышает W , должна включаться система охлаждения; если температура ниже t ^ , должна включаться система подогрева. Очевидно, что средства охлаждения и подогрева не должны работать одновременно, компенсируя работу друг друга. Возможный вариант алгоритма представлен на рис. 3.

15

OS

£

 

• Ввод кода температуры t

Рис. 3. Блок-схема алгоритма управления температурой

По-видимому, сам алгоритм работы в комментариях не нуждается. Од­ нако, с точки зрения программной реализации, имеются определенные осо­ бенности. По результатам операций контроля (блоки 2 - 5 алгоритма на рис. 3) работа программы должна продолжаться по одной из двух возмож­ ных ветвей алгоритма. Операции программы, представленные в блоках 4, 5 алгоритма, повторяются в разных ветвях. Количество точек для завершения цикла контроля температуры и возврата к началу повторного цикла (точки 1 в алгоритме) равно 6. Очевидно, что такой алгоритм можно реализовать только с помощью команд управления, выполняя в каждой точке разветв­ ления алгоритма операции управления для выбора требуемых функций в программе.

Возврат к началу цикла (блок 1 алгоритма) из точек завершения рабоче­ го цикла (точки 1) можно выполнить командами безусловной передачи управления, которые загружают в программный счетчик микропроцессора начальный адрес кодов блока 1. В точках ветвления алгоритма (блоки 2-5 алгоритма) продолжение работы зависит от результатов контроля (ветви "да" - "нет"). Управление работой программы в этих случаях необходимо производить командами передачи управления по выполнению определен­ ного условия (условная передача управления).

Признаки этих условий формируются в АЛУ микропроцессора автома­ тически при выполнении операций и содержатся в регистре флагов (рис. 2). Каждый используемый бит регистра флагов является признаком (флагом), который отображает особенности результата операции, выполненной АЛУ. Флаги этого регистра поступают в устройство управления микропроцессо­ ра и влияют на выполнение команд условной передачи управления. В Intel 8080 используется 5 флагов:

•Z - флаг нулевого результата, флаг Z = 1, если результат операции (байт аккумулятора) равен нулю;

•S - флаг знака результата, флаг S равен старшему биту результата, ко­ торый при кодировании чисел со знаком используется как знако­ вый бит;

•С - флаг переноса, флаг С = 1, когда формируется перенос из старшего разряда результата операции;

•АС - флаг вспомогательного переноса, флаг АС = 1, когда происходит перенос из младшей тетрады результата в старшую тетраду;

•Р - флаг паритета, флаг Р = I, когда количество единиц в байте резуль­

тата четно.

Любой бит регистра флагов может быть использован в качестве условия для команд условной передачи управления. Если условие для такой коман­ ды управления выполняется, то производится загрузка в программный счетчик микропроцессора адреса, указанного в команде. Если условие не выполняется, адрес в программном счетчике автоинкрементируется и, как обычно, выполняется следующая по порядку команда.

17

Рассмотрим примеры применения команд управления.

Пример 1:

ml:

add В

; сложение (аккумуляторааккумулятор+регистрВ) и

 

; формирование флагов

т2: jmp

A1

; переход к программе по адресу А1

тЗ: . .

. .

; продолжение текста программы

Команда ml производит сложение двух байтов и формирование всех 5 флагов. Команда т2 запишет в программный счетчик адрес А1, поэтому далее фрагменттЗ выполняться микропроцессором не будет, а выполне­ ние программы всегда продолжится по адресу А1 (безусловная команда управления).

Пример 2:

ml:

add В

; сложение (аккумулятор-аккумулятор*регистрВ)

 

 

 

; и формирование флагов

т2:

}С

А2

; переход к программе по адресу А2, если флаг

 

 

 

; переноса С=/

тЗ:

jZ

A3

; переход к программе по адресу A3, если флаг

 

 

 

;нулевого результата Z= 1

т4: .

. . .

; продолжение текста программы

Команда ml производит сложение двух байт и формирование всех 5 фла­ гов. Команда т2 запишет в программный счетчик адрес А2, если в резуль­ тате сложения флаг переноса C-L Если переноса нет (С-0), команда т2 не выполняется и, следовательно, будет продолжено выполнение про­ граммы по тЗ. Аналогичным образом команда тЗ анализирует флаг Z Ра­ бота программы по т4 будет продолжена, если результат сложения не нулевой и не формируется перенос — в данном случае признак превышения результатом однобайтового формата. Таким образом, в примере 2 рабо­ та программы, в зависимости от результата сложения, может быть продолжена по одному из трех вариантов: по адресу А2, по адресу A3 или пот4.

Кроме указанных команд, в группе команд управления используются и другие команды, особенности выполнения которых будут рассмотрены позднее. В целом, система команд микропроцессора, включающая команды преобразования данных, команды пересылки данных и команды управле­ ния, является важнейшей характеристикой микропроцессора и, как было показано, система команд построена для выполнения всех необходимых

18

функций программной реализации при разнообразных алгоритмах преобра­ зования данных. Компоненты микропроцессора и микропроцессорной сис­ темы фактически являются средствами аппаратной поддержки системы ко­ манд и функций, реализуемых программно.

Последний элемент микропроцессора, который не был рассмотрен, - ре­ гистр указатель стека (рис. 2). Указатель стека - специальный адресный ре­ гистр с форматом, соответствующим формату ША (16 бит), он использует­ ся для специального способа адресации памяти микропроцессорной систе­ мы. При стековой организации хранения данных всегда используется ад­ рес, содержащийся в указателе стека. Поэтому в явном виде в операциях со стеком адрес не указывается. Более подробно использование стека будет рассмотрено позднее.

1.2.Форматы данных микропроцессорной системы

Вмикропроцессорной системе (рис. 2) разрядность ШД и регистров данных - 8, поэтому способы кодирования данных будем рассматривать применительно к однобайтовому формату. Этот формат данных является достаточно типичным для микропроцессорных средств. Байт данных D обозначим, начиная со старших разрядов, следующим образом:

D=D7D6D5D4D3D2D,Do .

Байт D при выполнении команд преобразования данных в микропроцес­ соре можно интерпретировать как целое число без знака, целое число со знаком, логическую переменную или символьную переменную. Операции в других форматах данных, например, для дробных чисел, чисел с плаваю­ щей точкой и т.п., требуют применения специальных алгоритмов преобра­ зования и способов кодирования. Рассмотрим выполнение операций преоб­ разования данных для разных способов кодирования.

Для целых чисел без знака каждый бит D, имеет вес 2х в соответствии со стандартным двоичным кодированием, диапазон изменения чисел 0 - 255 (28-1). В текстах программ числа без знака можно указывать в десятичном формате (0 - 255), в двоичном формате (ОЬОООООООО - 0Ы1111111, Ob - стандартный признак двоичного формата) и шестнадцатеричном (hex) фор­ мате (0x00 - Oxff, Ox - стандартный признак hex-формата). В hex-формате для основания системы счисления 16 в дополнение к десятичным символам используют первые 6 букв латинского алфавита а, Ь, с, d, e, f. Наиболее функционален hex-формат, так как он лучше соответствует исходному дво­ ичному кодированию байта данных. Для hex-формата байт условно разби­ вается на две тетрады, а каждая тетрада записывается как отдельный hexсимвол.

Иногда применяют двоично-десятичное кодирование (упакованный bedформат) с кодированием двух десятичных символов в каждой тетраде. Для выполнения арифметических операций bed-формат неудобен, так как ре-

19

Источник: https://studfile.net/preview/16521245/