Главная > Схемотехника > Микропроцессорные автоматические системы регулирования. Основы теории и элементы
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

9.5. СИСТЕМА КОМАНД МИКРОПРОЦЕССОРА

Микропроцессор (МП) КР580ВМ80А (в дальнейшем К580) выполняет команды из некоторого фиксированного набора, называемого системой команд [23].

Естественно, что никаких других команд, кроме этого набора, МП выполнять не может. Следовательно, решение любой задачи по обработке информации с применением МП должно быть представлено в виде последовательности этих команд, составляющих программу.

В распоряжение пользователя (программиста) предоставляются следующие средства.

Семь рабочих 8-разрядных регистров, используемых при выполнении всех операций над данными и для хранения адресов ячеек памяти (ЯП): А — специальный регистр, называемый аккумулятором; В, С, D, Е, Н, L — регистры общего назначения (РОН), образующие сверхоперативное запоминающее устройство (ООЗУ)

Принято следующее кодирование адресов (номеров) этих регистров: А-111, В-000. С-001, D-010, Е-011. Н-100, L-101. Код 110 является признаком косвенной адресации.

Память, в которой хранятся программы и данные; для получения требуемой информации необходима соответствующая адресация, т. е. способ формирования исполнительного адреса.

Счетчик команд (СК), часто его называют также программным счетчиком, указывающий сначала адрес текущей, а затем — следующей команды.

Указатель стека (УС) — регистр, позволяющий использовать различные области памяти в качестве стека; он упрощает выполнение программ и обслуживание прерываний.

Устройства (схемы, порты) ввода-вывода, с помощью которых осуществляется связь между МП и внешними устройствами.

Ряд команд предусматривает обработку или пересылку машинных слов двойной длины. В этих случаях пары регистров В и С. D и Е, Н и L объединяются в 16-разрядные регистры (регистровые пары), имеющие коды (адреса) 00, 01 и 10 соответственно. При символическом представлении таких регистров используются обозначения только первого в паре регистра, т. е. В, D и Н соответственно. Для обозначения пары регистров А и F (где F-регистр признаков или флаговый регистр) используется символика PSW.

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

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

Все это позволяет представить микропроцессорную систему в виде регистровой или программной модели (рис. 9.4), которая дает пользователю (разработчику микропроцессорной автоматической системы) достаточно полное и цельное представление об используемых микропроцессорных средствах.

Подобная модель целесообразна еще и по той причине, что ячейки памяти (оперативной и постоянной, ОЗУ и ПЗУ соответственно) и порты ввода-вывода, по существу, тоже можно представлять в виде регистров.

Таким образом, микропроцессорная система как основная часть МПАС представляет собой большое число регистров, а ее функционирование, в процессе которого реализуется алгоритм обработки цифровой информации, заключается в передаче машинных слов между регистрами.

Порядок передач, часть из которых сопровождается элементарными преобразованиями над словом, определяется программой, т. е. последоватььностью команд, поочередно выполняемых микропроцессором.

Команда — это инструкция, под воздействием которой выполняется какая-либо машинная операция.

Каждая команда имеет определенный формат, под которым понимают способ представления команды в памяти МЭВМ с указанием расположения, назначения и размера отдельных частей (полей) команды: кода операции (поле КОП), первого операнда (или его адреса), второго операнда (или его адреса), признаков и т. п.

Рис. 9.4

Для системы команд МЭВМ, построенных на базе МП К580, характерны три формата команды.

Формат 1 — однобайтовая команда, содержит лишь код операции. Таким образом, в данном случае содержимое байта указывает формат команды, код операции, вид адресации и регистры или регистровые пары, если они участвуют в выполнении операции. Операнды в таких командах либо отсутствуют (например, в команде останова HLT), либо определяются неявно, т. е. по принципу умолчания. Например, в команде сложения ADD М указывается, что первый операнд находится в аккумуляторе, а второй в ЯП, адрес которой берется из пары регистров HL.

Формат 2 — двухбайтовая команда кроме кода операции содержит 8-разрядное число (второй байт команды), представляющее собой непосредственные данные (операнд) или адрес (номер) устройства (порта) ввода-вывода. Например, команда MVI А, 41 осуществляет занесение числа 41, которое записано во втором байте команды, в аккумулятор А; число в данном случае представлено в шестнадцатеричной системе счисления.

Формат 3 — трехбайтовая команда, второй и третий байты команды содержат либо 16-разрядный адрес операнда (в командах с прямой адресацией), либо 16-разрядное число, представляющее собой непосредственные данные (операнд) в командах загрузки регистровых пар и указателя стека. При этом в обоих случаях второй байт (т. е. байт, следующий за байтом с кодом операции) хранит младшую часть операнда или адреса, а третий байт — старшую.

Следует также отметить, что после выполнения некоторых операций в АЛУ вырабатываются соответствующие признаки результата, значения которых могут влиять на выполнение последующих команд (но не всех) и условной передачи управления.

Для удобства сохранения и восстановления состояния МП (во время прерываний и перехода к ПП) все признаки располагают в одном регистре, который называют регистром признаков (или флаговым регистром F). Значение каждого признака фиксируется в отдельном триггере. Содержимое пары регистров А и F иногда называют словом состояния программы и обозначают PSW.

Способы адресации (режимы адресации) обеспечивают доступ к операндам, хранящимся в ОЗУ и/или внутри МП (СОЗУ), а также играют большую роль в организации управления ходом выполнения программы.

Выбором способа адресации можно обеспечить минимальный объем памяти для хранения программы и/или наименьшее время ее исполнения, а это весьма существенно при реализации микропроцессорных автоматических систем (МПАС). Выбор способа адресации определяется также системой команд МП.

Для МЭВМ на базе МП К580 характерны следующие способы адресации. При их рассмотрении содержимое поля адреса кода команды будем называть исходным адресом, а адрес ЯП, на которую в конечном итоге осуществляется ссылка и которая содержит операнд, - действительным или исполнительным адресом.

Неявная адресация (подразумеваемая), когда адрес операнда неявно задается в коде операции (КОП) команды. Подразумевается, что операнд находится в определенном внутреннем регистре МП и его специально адресовать не нужно. Например, все команды сдвига рассматриваемого МП оперируют только содержимым А, т. е. А уже адресуется кодом команды и нет необходимости его указывать специально. Именно так построены все бинарные операции преобразования данных (арифметические и логические команды), когда подразумевается, что одним из операндов является содержимое А и что результат операции загружается в него же. При неявной адресации формат команды — однобайтовый.

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

В общем случае один из операндов всегда находится в одном из внутренних регистров МП, а второй может быть адресован прямо, косвенно или непосредственно. От способа адресации второго операнда зависит формат команды.

Непосредственная адресация используется при необходимости включения непосредственно в программу фиксированных элементов (констант, кодов символов, слов-масок и т. д.). Операнд команды является частью команды, а именно, вторым байтом команды и расположен в памяти непосредственно за ЯП, содержащей КОП. Естественно, что такая адресация применяется в тех случаях, когда операнд известен при написании программы. В МП К580 допускается непосредственно адресовать 8- и 16-разрядные слова, при этом во втором байте команды находятся младшие разряды, а в третьем байте — старшие разряды слова. Отсюда следует, что непосредственная адресация предполагает использование двухбайтовых и трехбайтовых форматов команд.

Прямая адресация. Это наиболее естественный и простой способ, когда в команде задается сразу действительный адрес (исходный равен действительному). Такой способ адресации является наиболее неэкономным, так как формат команды в этом случае трехбайтовый, причем во втором и третьем байтах находится адрес операнда.

Косвенная регистровая адресация — это очень эффективный и важный способ адресации, когда исходный адрес служит указателем ЯП, в которой находится действительный адрес, т. е. исходный адрес — это «адрес адреса». Адрес операнда берется из двух РОН, чаще всего это регистры Н (для старшего байта адреса) и L (для младшего байта адреса. Команда в этом случае имеет однобайтовый формат. Для ссылки на пару регистров HL в команде на символическом языке используется символ (имя) М. Например, команда MOV А, М осуществляет загрузку аккумулятора содержимым байта памяти (ячейки М), адрес которого находится в регистрах Н и L. Таким образом, косвенная адресация (код 110) позволяет обращаться к памяти с помощью 16-разрядного адреса, размещенного в паре регистров HL. В зависимости от расположения кода 110 в команде производится обращение к соответствующей ячейке памяти для считывания операнда или записи результата операции. Пара регистров может также содержать два байта непосредственных данных.

Для того чтобы иметь четкое представление о возможностях МП по обработке информации, необходимо знать следующие характеристики каждой из команд: название команды; используемые способы адресации; символическое (мнемоническое) обозначение команды; длину команды и ее размещение в памяти; представление действий, выполняемых командой с помощью логических символов;

объяснение действий (интерпретация), выполняемых командой;

воздействие результата выполнения команды на регистр признаков МП.

Классификация и краткая характеристика команд. Количество базовых команд МП К580 - 78. Однако многие из них порождают несколько различных кодов операций, поэтому общее число команд составляет 244. С функциональной точки зрения всю совокупность команд можно разделить на следующие команды:

пересылки данных;

обработки данных;

передачи управления;

обращения к подпрограммам (ПП);

ввода-вывода;

специальные.

Команды пересылки данных — обеспечивают простую, т. е. без обработки, пересылку данных. В этой группе можно выделить:

команды, связанные с обращением к регистрам, когда содержимое одного из регистров пересылается в другой, или же в регистр заносятся данные, указанные в одном из полей кода команды (второй байт команды — );

команды, связанные с обращением к пямяти, когда содержимое одной из ЯП засылается в регистр или же содержимое регистра пересылается в ЯП; в этих командах необходимо указывать номер регистра, адрес ЯП и, если это необходимо, номер модуля памяти.

Если при выполнении операции участвуют регистры МП (один или два), то они указываются в первом байте команды. При этом для адресов (номеров) регистров в коде команды отводятся вполне определенные разряды: три младших кодируют номер регистра — источника (S), т. е. регистра, содержащего операнд, а три соседних (старших) — номер регистра—приемника (D), т. е. регистра, в который засылается результат операции.

Команды обработки данных — обеспечивают выполнение операции над данными. Перед началом выполнения любой команды из этой группы один из операндов должен быть помещен в аккумулятор, а другой (если команда однобайтовая) — в один из РОН или ячейку памяти, адресуемую содержимым регистровой пары HL. В двухбайтовой команде значение второго операнда непосредственно задается во втором байте команды.

Результат выполнения команды помещается в аккумулятор. Возможности МП во многом обусловлены командами сложения и вычитания, логическими командами, а также командами сдвига и другими над 8-разрядными операндами. Операции умножения и деления, а также операции с другими форматами данных реализуются с помощью ПП, что приводит к ограничениям возможностей микропроцессорных систем (МПС).

В данной группе команд можно выделить следующие команды: арифметических операций, в которых операнды представляются в формате целого числа со знаком в дополнительном коде с диапазоном изменений от — 128 до + 127;

логических операций, в которых операции являются поразрядными, т. е. выполняются независимо для каждого из восьми разрядов операнда;

соответствующие разнообразым унарным операциям, т. е. операциям с одним операндом, такие, как сдвиги влево, вправо, инвертирование и т. д.

При использовании двоично-кодированных десятичных чисел (когда байт содержит две тетрады, соответствующие двум десятичным цифрам, представленным в двоичном коде) сложение выполняется в два этапа:

операнды складываются как двоичные числа;

производится коррекция в общем случае неправильного промежуточного результата.

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

В командах логических операций неадресуемый операнд находится в аккумуляторе, туда же (после выполнения операции) заносится результат операции. Признаки устанавливаются в зависимости от результата операции.

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

Наличие команд передачи управления обусловливает существенное расширение возможностей МП по обработке информации, так как они позволяют реализовать разветвляющиеся и циклические процедуры, в том числе передачу управления только при выполнении некоторых условий, заданных в воде операции.

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

При выполнении команд обращения к ПП (а также команд обработки прерываний) используется стек, при этом операции со стеком выполняются автоматически, т. е. они не задаются в явном виде программистом.

Стек, или стековая память — это область памяти, чаще всего ОЗУ, выделяемая пользователем для хранения адресов и данных при некоторых операциях.

Адреса, с которыми оперируют стековые команды, определяются с помощью программно-доступного 16-разрядного регистра — указателя стека (УС).

Он хранит адрес последней занятой ячейки в стековой памяти. Содержимое УС уменьшается перед записью кода в стек и увеличивается после чтения.

Группа команд обращения к подпрограммам (ПП) представляет собой трехбайтовые команды безусловной или условной передачи управления с возвратом. Первый байт таких команд содержит код операции, а второй и третий байты — это адрес перехода, представляющий собой начальный адрес подпрограммы.

Команды ввода-вывода — обеспечивают обмен информацией между МП и портами (устройствами) ввода-вывода, т. е. в конечном итоге это может быть обмен между ОЗУ и внешними устройствами. В данных командах второй байт представляет собой 8-разрядный адрес порта (addr). Прием и передача данных осуществляется при помощи аккумулятора, т. е. в МП он всегда является получателем или источником данных. МП К580 позволяет адресовать до 256 портов ввода и до 256 портов вывода.

Специальные команды. Эта группа однобайтовых команд используется для выполнения управляющих операций над самим МП.

<< Предыдущий параграф Следующий параграф >>
Оглавление