Файл: Микропроцессорные устройства систем управления (Ю.И. Иванов, 2005).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2025
Просмотров: 1550
Скачиваний: 1
Входными данными для операций преобразования обычно служат две переменных, а результат преобразования - одна переменная. Например, для операции сложения в АЛУ входными переменными будут 2 слагаемых по одному байту, а результат-сумма - один байт и признак переноса, если сумма выходит за пределы однобайтового формата. Для хранения и вход ных переменных, и результатов преобразования микропроцессор содержит регистры: регистр-аккумулятор и 6 регистров блока регистров общего на значения (РОН). Одна из входных переменных (операндов) всегда разме щается в аккумуляторе, а полученный результат преобразования также все гда направляется в аккумулятор. Второй операнд может храниться в одном из регистров РОН. В коде команды преобразования обычно указывается ре гистр, из которого поступает второй операнд, если аккумулятор единствен ный (рис. 2), его не указывают в коде команды.
Количество регистров данных микропроцессора невелико, в данном примере - 7 регистров (аккумулятор и 6 регистров блока РОН), эти регист ры содержат данные, которые постоянно доступны для преобразования. Основной объем данных хранится в памяти микропроцессорной системы, однако для выполнения операций их необходимо переместить в регистры данных микропроцессора, используя процедуры адресации и управления обменом данных. Разрядность регистров блока РОН соответствует формату данных АЛУ - один байт. Эти 6 однобайтовых регистров (регистры В, С, D, E, H, L, рис. 2) могут использоваться независимо или объединяться в ре гистровые пары ВС, DE, HL для выполнения определенных операций с двухбайтовыми данными. В первую очередь двухбайтовый формат необхо дим для операций с адресами, так как адресация данных в микропроцес сорной системе производится двухбайтовым адресом ША. Такой формат адреса обеспечивает размер адресного пространства микропроцессорной системы 216 = 64 кбайт.
Организация микропроцессорной системы, кроме операций преобразо вания данных, требует выполнения операций пересылки данных, с помо щью которых обеспечивается доступ к преобразуемым данным. Операции пересылки должны производить обмен данных между регистрами микро процессора, между регистрами микропроцессора и памятью или устройст вами ввода-вывода. Эти операции так же, как и операции преобразования, задаются командами программы с указанием кода операции и адресов при емника и источника для пересылаемых данных.
В рассматриваемой микропроцессорной системе используется память с единым адресным пространством объема 64 кбайта и для данных, и для ко дов программы. Адреса данных содержатся в кодах программы, а адреса кодов программы определяются специальным регистром - программным счетчиком. Разрядность программного счетчика соответствует формату ад реса (2 байта), его содержимое определяет адрес ячейки памяти, в которой хранится код очередной команды. Последовательность выполняемых ко-
13
манд обычно формируется в виде линейной последовательности кодов про граммы и размещается в ячейках памяти с последовательно нарастающими адресами.
Стандартный цикл работы микропроцессорной системы для очередной команды выполняется следующим образом:
1. По сигналам устройства управления микропроцессора производится считывание и ввод в регистр команд кода очередной команды по адре су, указанному в программном счетчике.
2.Содержимое программного счетчика автоматически инкрементируется (увеличивается на единицу) для определения следующего адреса хранения кодов программы.
3.Если код команды поступил в микропроцессор полностью, команда выполняется; если требуется чтение недостающих элементов кода, по вторяется считывание с автоматическим инкрементом адреса в про граммном счетчике (повторение п.п. 1 и 2).
4.Когда очередная команда программы микропроцессорной системы выполнена, в программном счетчике уже содержится адрес следующей команды и начинается следующий рабочий цикл (см. п. 1).
Вкачестве примера программной реализации рассмотрим процедуру сложения двух переменных. Полагаем, что однобайтовые слагаемые D1 и D2 хранятся в ячейках памяти по двухбайтовым адресам А1 и А2, полу ченный однобайтовый результат необходимо сохранить по адресу A3, а последовательность кодов программы сложения также хранится в ячей ках памяти с начальным адресом А4. С учетом особенностей работы микропроцессорной системы алгоритм должен предусматривать ввод из памяти в регистры микропроцессора обоих слагаемых, сложение содер жимого двух регистров данных и пересылку в память полученного резуль тата.
Эта последовательность команд при использовании мнемонических обо значений операций для микропроцессора Intel 8080 будет следующая:
ml: |
Ida Al |
; чтение байта данных D1 из ячейки памяти по адресу А1 и |
|
; пересылка в аккумулятор микропроцессора |
|||
т2: |
mov |
В, А ; пересылка данных из аккумулятора в регистр В |
|
13 Ida А2 |
; чтение байта данных D2 из ячейки памяти по адресу А2 и |
||
; |
пересылка в аккумулятор микропроцессора. |
||
т4: add |
В |
; сложение содержимого аккумулятора и регистра В |
|
; (D1+D2), результат сложения помещается в |
|||
; аккумулятор (А-А+В) |
|||
т5: sta |
A3 |
; пересылка байта данных из аккумулятора в память и |
|
; запись в ячейку памяти по адресу A3
14
Для выполнения программы сложения начальный адрес программы А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