Калабеков Б.А. Микропроцессоры и их применение в системах передачи и обработки сигналов (1988) (1092085), страница 15
Текст из файла (страница 15)
При обращении к памяти в качестве адреса может использоваться н содержимое любой пары регнстров блока РОН. Прн выдаче адреса содержимое соответствующих регистров передается в 16-разрядный регистр адреса РА, нз которого далее через буферы БА адрес поступает на 16-разрядную шину адреса. С этой шины адрес может быть принят в оперативную память. Число кодовых комбинаций !6-разрядного адреса равно 2", каждая из этих кодовых комбинаций может определять адрес (номер) одной нз ячеек оперативной памяти. Таким образом, обеспечивается возможность обращения к памяти, содержащей до 2" = 2'.2" = 64К 8-разрядных слов (байт). Арифметическо-логнческое устройство (АЛУ).
В 8-разрядном АЛУ предусмотрена возможность выполнения четырех арифметических операций (сложенне с передачей переноса в младший разряд и без учета этого переноса, вычитание с передачей заема в младший разряд н без него), четырех видов логических операций (операций конъюнкции, дизъюнкцни, неравнозначностн, сравнения), а также четырех видов циклического сдвига. Прн выполнении арнфметнческнх и логических операций одним из операндов служит содержимое аккумулятора н результат выполненной операции помещается в аккумулятор. Циклический сдвиг выполняется только над содержимым аккумулятора. Предусмотрена возможность выполнения арифметических операций над десятичными числами. Прн хранении десятичного числа разряды регистра делятся на две группы по 4 разряда н в каждой группе разрядов хранится одна десятичная цифра, представленная в коде тт 842/. Таким образом, в регистре можно хранить 2-разрядноедесятичное число.
Как указывалось в 8 3.4, при выполнении операции суммирования десятичных цифр может потребоваться коррекция результата путем прибавления к нему числа 01!О,. Такая коррекция результата в каждой 4-разрядной группе результата в микропроцессоре выполняется схемой десятичной коррекции (СДК). Регистр признаков (РП). Этот 5-разрядный регистр предназначен для хранения определенных признаков, выявляемых в числе, которое представляет собой результат выполнения некоторых операций. Пять триггеров этого регистра имеют следующее назначение: триггер Тс (триггер переноса) устанавливается в состояние, соответствующее переносу из старшего разряда при выполнении арифметических операций и содержимое выдвигаемого из аккумулятора разряда при выполнении операции сдвига; триггер Тх (триггер нуля) — устанавливается в состояние лог.
1, если результат операции АЛУ или операции приращения содержимого регистра равен нулю; триггер Тз (триггер знака) — устанавливается в состояние, соответствующее значению старшего разряда результата операции АЛУ или операции приращения содержимого регистра; триггер Тр (триггер четности) — устанавливается в состояние лог.
1, если число единиц в разрядах результата четно; триггер Тч (триггер дополнительного переноса) — хранит перенос, возникающий при выполнении операции из 4-го разряда. Блок управления. Состоит из регистра команд, куда принимается первый байт команды, и управляющего устройства, формирукнцего управляющие сигналы, под действием которых выполняются микро- операции в отдельных узлах.
Управляющее устройство содержит выполненную на программируемой логической матрице управляющую память, в которой хранятся микропрограммы отдельных операций. Однако, как уже указывалось, пользователь не может изменить содержимого управляющей памяти, а значит, и состава команд. Буферы. Буферы данных и буферы адреса обеспечивают связь центрального процессора с внешними шинами данных и адреса. Особенность буферов состоит в том, что в каждом разряде они используют ло- гические элементы с тремя состо- йис иик яниями. В них, кроме состояний емка йи ык лог, 0 и лог.
1, предусмотрено еще третье состояние, в котором они к име ими иь<е е кигииеские иеаииеские имеют практически бесконечно ммиекты еле неиив выходное сопротивление и оказываются отключенными от соответмй Йййьм ствукнцих шин. Использование таких буферов позволяет процессору отключаться от внешних шин Рнс. 3.2 Прннннп двунанравденной ), оставнередачн между внутренней н внеш- (шии данных и адреса), предоста ней шннамн данных ляя их в распоряжение внешних 78 устройств; а также позволяет использовать одну н ту же шину данных как для приема данных (т.
е. в качестве входной шины), так н для выдачи данных (т. е. в качестве выходной шины). Такое использование шины данных позволяет сократить число выводов микросхемы. На рнс. 3.2 показан принцип двунаправленного обмена даннымн между внутренней н внешней шинами данных. Если осуществляется прием данных (передача данных с внешней шины данных на внутреннюю шину данных), отключаются, переходя в третье состояние, выходные логические элементы; прн выдаче данных (передаче с внутренней шины на внешнюю шину) отключаются входные логические злементы. ФОРМАТ ДАННЫХ И КОМАНД (0,(Ре~ Рв~ Рв( Ре~ О, ~ Р, ~ Рв ! (байтданнык) Для команд используются одно-, двух-, трехбайтовые форматы. Однобайтовый формат команды: ~ Ре ~ Ра! Ов ~ Ре ~ Р, ! Рв ~ Р, ~ Ре ~ (код операции) Большинство команд является однобайтовыми.
Двухбайтовый формат команды: В,) Ре~ Р»~ Ра~ Ре~ Ра~ Ра ~ О, ~ Ре~ (код операции) (операнд илн номер устВа ! Рт ~ Ре ~ Рв ) Рв ~ Рт ~ Рт ~ 01 ! Ре ~ ройства ввода-вывода) В первом байте двухбайтовой команды указывается внд выполняемомой операции, во втором байте приводится число, являющееся операндом прн выполнении операции, либо номером устройства ввода нлн вывода прн обмене данными. Трехбайтовый формат команды: В1 ~ Ре ~ Ре ~ Рв ~ Ра ~ Ра ~ Ре ~ Ре ~ Ре ~ (код операции) (младший байт адреса или младший байт операнда) (старший байт адреса илн старший байт операнда) В, ~ 0 ~ О, ~ 0 ~ О, ~ 0 ~ О, ~ 0 ~ О. ~ Ва ~ Рт ~ Ре ~ Рв ~ Рв ~ 0а ~ 0е Рт ~ Ре ~ Уй Данные (обрабатываемая информация н результаты обработки) 'хранятся в оперативной памяти н в процессоре в виде 8-разрядных двоичных чисел. Таким образом, слово данных имеет следующий формат: Байты трехбайтовой команды имеют следующее назначенне: в первом указывается внд выполняемой операции, следующие два байта нспользуются для указания двухбайтового адреса команды (при выполненнн безусловных, условных переходов, обращении к подпрограммам), нлн адреса ячейки оперативной памятн, содержимое которого является операндом, нлн двухбайтового операнда.
Во всех случаях байт В, является младшим, байт В, — старшим. СПОСОБЫ АЛРЕСАЦИИ Для того чтобы могла быть выполнена определенная операция, в команде, кроме вида операции, должно содержаться указание, откуда берутся участвующие в операцнн числа н куда помещается результат выполненной операцнн(нначеговоря, указанне об источниках н прнемннке операндов). Под способами адресации поннмают способы, нспользуемые для указания нсточннков н приемников операндов. В микропроцессоре используются следующие способы адресации. Прямая адресация.
Прн этом способе адресом операнда является указанный в команде (в байте кода операции) адрес регистра мнкропроцессора. Адреса регистров приведены в следующей таблице. , о х'х йе "км к о" 3 х ям о .як к ' Ке я , о хвх оо аом„ 3 о" я к Ф„;,* <а д е а ев в и ооо )( н 00! !. 0(0 М В С О Е )00 !О! ! ! 0 ! ! ! Под М понимается ячейка оперативной памяти, адресом которой служит содержимое пары регистров Н1. Покажем некоторые примеры команд с прямой адресацией, взятых нз приведенного в табл. 3.2 списка команд микропроцессора.
Кодовая «омбинвцня команды Мнемоника команды Выпопияемае операция МОУ С,О АБО О С .(О) А е †(А) + (О) 01 001 0 !О !О 000 0)0 80 Здесь под мнемоникой команды понимают сокращенное ее обозначение, облегчающее запоминание команды. В кодовой комбинации команды 01 001 010 два старших разряда (01) определяют вид операции (операция пересылки содержимого одного регистра в другой), в последующих двух 3-разрядных группах (001 и 010) приведены адреса регистров С и Р. Команда представляет операцию пересылки в регистр С содержимого регистра Р. В команде 10 000 010 пять старших разрядов (10 000) представляют внд выполняемой операции (операция суммирования); в трех младших разрядах (010) указан адрес регистра Р, служащего источником операнда.
При выполнении операции суммирования источником другого операнда и приемником результата выполненной операции является аккумулятор А. Непосредственная адресация При этом способе адресации операнды (один либо два) задаются непосредственно в команде вслед за байтом кода операции во втором либо втором и третьем байтах. Ниже приведены примеры команд с непосредственной адресацией. 1) АР1 В„11 000 110 А» — (А) + <Вз) Вт 01 001 100 2) МЧ! Р В, 00 010 110 Р» — <В,) В, 01 001 110 З) ЕХ! Р В, ОО 010 001 Р -<В,~; Е <В,~ В, 01 100 !01 В3 10 100 101 Команда с мнемоникой АР! предусматривает суммирование содеримаго аккумулятора с числом, приведенным во втором байте команды примере это число равно 4С„,).
Команда МЧ! производит пересылку числа, приведенного во втором байте команды (в примере это число равно 4Е„), в регистр Р, адрес Эоторого (О!0) указан в разрядах Р,Р,Р, первого байта команды. Команда [.Х! производит пересылку чисел, приведенных во втором 1 третьем байтах (в примере — чисел 65„н А5„), соответственно в ладший и старший регистры пары регистров РЕ. В разрядах Р,Р,Ра [верного байта пара регистров указана адресом (010) одного из регистров Этой пары. Косвенная адресация.
При этом способе адресации в команде укавывается пара регистров блока РОН (путем указания адреса одного а регистров этой пары), содержимое которой служит адресом, по корому в оперативной памяти находится операнд. Примеры команд с косвенной адресацией: А» [(ВС)) 2) ВтАХ В ОО ООО 010 [(ВС)) (А) Здесь запись [(ВС)) означает ячейку памяти, адресом которой слуДкит содержимое пары регистров ВС. а! х а й т х о х тх О. с ~Х Ы с и х О.