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

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

В любой команде можно выделить две части: код операции (КОП) и адрес. Код операции настраивает МП на выполнение нужной операции, а адрес указывает место­положение данных операндов, участвующих в операции. В 24-разрядном (трехбайтовом) командном слове первые восемь разрядов (0...7) указывают адрес первого операнда (А1), вторые 8 разрядов (с 8-го по 15-й) —адрес вто­рого операнда (А2) и последние 8 разрядов (с 16-го по 23-й) — код операции.

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

Команды, реализующие заданную программу, через устройство ввода-вывода вводятся в определенную часть ЗУ. Для обеспечения естественного порядка выполнения команд коды последовательно выполняемых команд рас­полагаются в ячейках ЗУ с последовательно нарастаю­щими адресами.

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

Команды арифметических и логических операций обеспечивают выполнение операций арифметического сло­жения, вычитания и умножения двоичных и двоично-десятичных чисел, их сравнение, а также выполнение операций логического сложения (дизъюнкции), логического умножения (конъюнкции), сложение по модулю 2 (ИСКЛЮЧАЮЩЕЕ ИЛИ), инверсию чисел, т. е. замену нулей единицами, а единиц — нулями, и некоторые другие. После выполнения этих команд результат операции по­ступает в аккумулятор или в указанную в этих командах ячейку ЗУ.

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

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

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

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

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

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

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

К специальным командам относятся команды разреше­ния прерывания, запрещения прерывания, останов и хо­лостая операция. При исполнении команды «Холостая операция» никакие операции не выполняются, а содержи­мое счетчика адресов увеличивается на 1, после чего выполняется следующая по порядку команда.