Система команд микропроцессора.
Способы наращивания разрядности.
В зависимости от способа наращивания разрядности обрабатываемых операндов МП делятся на МП замкнутого типа, куда входят однокристальные или многокристальные МП, разбиение которых осуществляется на структурном уровне, и МП секционированные, разбиение которых осуществляется по группам разрядов. В МП замкнутого типа разрядность обрабатываемых операндов 8, 16 или 32 бит и может быть увеличена только программным путем, т.е. последовательной обработкой многоразрядных операндов по частям. Это существенно снижает реальное быстродействие МП при работе с многоразрядными операндами.
Секционированные МП строятся в виде соединения одинаковых микропроцессорных секций. Каждая такая секция, оформленная в виде отдельной БИС, предназначена для обработки обычно 2-х, 4-х или 8-ми разрядов исходного операнда. Между секциями передаются необходимые сигналы переноса, возникающие при выполнении арифметических операций, сдвигов операнда и т.п. Наращивание разрядности обрабатываемых операндов в рассматриваемом случае производится аппаратным способом, т.е. путем увеличения числа микропроцессорных секций.
Что касается разрядности формируемых адресов, то в МП замкнутого типа эта разрядность фиксирована, а в секционированных МП число разрядов адреса как и операндов увеличивается до требуемой величины путем соединения соответствующего числа микропроцессорных секций.
Как правило, МП замкнутого типа имеют управление на уровне команд, а секционированные МП - управление на уровне микропрограмм. Примером отечественных однокристальных МП с управлением на уровне команд являются МП серий К580 (аналог Intel 8080), К581, К588, К1801/09, К1806, К1810 (аналог Intel 8086), К1821, К1824, К1831. Примером секционированных МП с управлением на уровне микропрограмм являются МП серий К583, К584, К589, К1802 (К1822), К1804 (аналог Am2900), К1832.
Поскольку МП воспринимает только двоичную форму информации, то команды должны быть представлены в виде двоичных кодов. Такая форма представления команд называется машинным языком или машинным кодом. Для человека машинные коды из нулей и единиц неудобны, поскольку их трудно запомнить и отождествить с фактическим назначением команды, а в самих машинных кодах легко перепутать 0 и 1. Для более краткой записи двоичных чисел используются также восьмеричная и шестнадцатеричная формы представления информации. Однако и в этом случае остается нерешенной основная проблема: что означает каждая команда, выраженная в подобной форме. По этой причине при описании команд используются условные обозначения в виде мнемонических названий. Мнемоническое название (мнемоника) команды представляет собой сокращение от английских слов, описывающих операцию, выполняемую командой. Мнемонический код команды позволяет легче запомнить ее функцию и значительно упрощает написание программ. Например, команда возврата из подпрограммы по которой хранящийся в стеке адрес пересылается обратно в счетчик команд имеет обозначение RET (от return – вернуться).
Каждый МП характеризуется своей системой команд. Система команд - это полный перечень тех операций, которые способен производить МП. Управляемый этими командами МП выполняет очень простые действия, такие, как элементарные арифметические и логические операции, операции пересылки данных, сравнения двух величин и другие. Однако, составив программу из последовательности таких команд, можно запрограммировать выполнение алгоритма любой сложности. Обычно все команды в системе команд объединяются в группы по функциональному назначению. Например, выделяют команды пересылки кодов, команды логических и арифметических действий, команды передачи управления и ряд команд других групп.
Условное обозначение команды помимо мнемоники может также включать названия регистров r и регистровых пар rp. Воспользуемся для примера гипотетическими, т.е. не привязанными к конкретному типу МП названиями регистров - аккумулятором А и регистрами общего назначения В и С. Регистровые пары, если их использование предусмотрено типом МП, даются как правило первыми буквами их обозначения. Так вместо регистровой пары BC в обозначениях команд будет записан символ В. Например, команда пересылки данных из регистра С в аккумулятор имеет обозначение MOV А, С (от move – переслать). Команда загрузки в стек содержимого регистровой пары ВС имеет обозначение PUSH B (от push – проталкивать).
При описании системы команд операнд может иметь условное обозначение data, адрес порта - условное обозначение port, а адрес ячейки памяти или адрес перехода - условное обозначение addr. Например, команда записи в регистр С операнда, содержащегося во втором слове команды имеет обозначение MVI C, data (от move immediate - передать непосредственно). Команда записи в аккумулятор данных из порта, адрес которого содержится во втором слове команды, имеет обозначение IN port (от input – ввести). Команда безусловного перехода, по которой адрес, содержащийся в команде записывается в счетчик команд, имеет обозначение JMP addr (от jump - перейти). При использовании команд в программе вместо обозначений data, port и addr будут подставлены конкретные числовые операнды и адреса.
Руководства по эксплуатации микропроцессоров, выпускаемых промышленностью, содержат описания соответствующих наборов команд с указанием команд в мнемонической форме и с указанием кодов операций, выполняемых командой в числовой форме. Потребность в такой документации возникает только тогда, когда составляют программу для работы микропроцессора, которым располагает разработчик.