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

 

Система команд семейства микроконтроллеров MCS-51 включает 111 команд, из них 49-однобайтовых, 45-двухбайтовых, 17-трехбайтовых. Большинство команд (64) выполняются за один машинный цикл (12 периодов OSC), 45 команд выполняются за два машинных цикла, а две однобайтные команды DIR и MUL выполняются за четыре машинных цикла. В двухбайтовых командах адрес приемника определяется первым, а источник - вторым байтом.

Все множество команд MCS-51 можно разбить на пять групп: передачи данных, арифметических операций, логических операций, операций над битами и передачи управления - примеры в /23/.

В процессе исполнения команды влияют на ряд флажков - признаков результата, входящих в состав PSW.

Набор команд MCS-51 поддерживает следующие режимы адресации.

Прямая адресация, при которой операнд определяется 8-битным адресом в инструкции. Прямая адресация используется только для внутренней памяти данных и регистров SFR. Прямая адресация осуществляется через прямой восьмибитный адрес direct. В командах direct может быть задан мнемоническим обозначением (MOV A,P1; здесь P1- имя порта) либо числом (INC 40H; команда увеличения на 1 ячейки с адресом 40H), либо символическим именем (MOV A,MEMORY).

Косвенная адресация, при которой инструкция адресует регистр, содержащий адрес операнда. Данный вид адресации используется для внешнего и верхней половины внутреннего ОЗУ. Для указания восьмибитовых адресов могут использоваться регистры R0 и R1 выбранного в данный момент регистрового банка (@Ri, i=0-1), например, MOVA,@R1 или указатель стека SP.

Для шестнадцатибитной адресации используется только регистр указателя данных DPTR.

Регистровая адресация, при которой регистры R0-R7 текущего регистрового банка могут быть адресованы через конкретные инструкции, содержащие 3-битовое поле, указывающее номер регистра в самой инструкции. Такая адресация эффективна с точки зрения объема кода, так как не содержит адреса байта.

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

Непосредственная адресация, при которой операнд (константа) непосредственно указывается в программе за кодом операции, например:

MOV A,#15; загрузка в аккумулятор десятичного числа 15.

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

Индексная адресация, которая используется для доступа к программной памяти и только в режиме чтения. Например, в этом режиме осуществляется просмотр таблиц в памяти программ. 16-битовый регистр (программный счетчик или DPTR) указывает базовый адрес требуемой таблицы, а аккумулятор указывает на точку входа в нее. Адрес таблицы располагается в программной памяти и складывается из значения аккумулятора и регистра. Индексная адресация применяется при реализации условных переходов «по выбору», когда адрес инструкции перехода вычисляется как сумма базового указателя и аккумулятора.

 

12.5. Периферийные устройства микроконтроллера:








Дата добавления: 2016-06-13; просмотров: 658;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.