Система команд

Для обеспечения функциональной полноты типичная команда процессора должна содержать код команды, определяющий операцию, выполняемую над двумя двоичными числами, и до четырех операндов в виде их адресов в оперативной памяти. Первые два адреса нужны для определения местоположения чисел, над которыми выполняется операция. Третий адрес должен указать, куда записывается результат операции. Четвертый операнд это следующая команда, к которой надо перейти после завершения текущей. Если реализовать вычислительную систему непосредственно по приведенным соображениям, то получим вычислительную машину с большим объемом требуемой памяти и относительно низким быстродействием. Если для задания адреса требуется 16 бит, то четырехоперандная команда займет минимум 9 байт памяти. В PIC-микроконтроллерах команда занимает только 1,5 байта.

Сократить размер команды позволяет уменьшение числа адресов задаваемых в явном виде. В большинстве микроконтроллеров используются одноадресные, т.е. явно задается только один адрес. Это достигается следующими приемами:

1. Адрес следующей команды указывается только в командах переходов; в остальных случаях очередная команда выбирается из ячеек памяти, следующих за выполненной командой.

2. Использование команд с регистром аккумулятором, в котором находится один из операндов и в нем же запоминается результат операции.

Так как лабораторные работы у нас выполняются на микроконтроллерах фирмы Microchip мы будем рассматривать все на примере PIC–микроконтроллеров, но все выводы применимы и к микроконтроллерам других производителей.

В PIC используется RISC-система команд, характеризующаяся малым набором одноадресных инструкций (33, 35 или 58) в зависимости от разрядности шины программ в разных семействах (12, 14 или 16 бит). Каждая из них имеет длину в одно слово и большинство выполняется за один машинный цикл, состоящий из четырех тактов ГТИ. В системе команд отсутствуют сложные арифметические команды (умножение, деление), предельно сокращен набор условных переходов.

Систему команд микроконтроллера условно можно разбить на пять групп:

· арифметические команды

· логические команды

· команды пересылки данных

· команды ветвления программ и передачи управления

· команды управления режимами работы микроконтроллера

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: