Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSoC.doc
Скачиваний:
24
Добавлен:
11.02.2015
Размер:
2.72 Mб
Скачать

2.12. Набор команд для управления системой

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

  1. Машинный цикл ускоренного микроконтроллера стандарта 8051 составляет 4 такта, в отличие от машинного цикла оригинального микроконтроллера стандарта 8051, который составляет 12 тактов;

  2. Ускоренный микроконтроллер выполняет за один машинный цикл одну выборку, т.е. на одну выборку приходятся 4 такта, а оригинальный микроконтроллер осуществляет две выборки за машинный цикл, и на одну выборку приходятся 6 тактов.

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

Способы адресации

Микроконтроллер стандарта 8051 поддерживает 8 различных способов адресации, описание которых будет представлено ниже:

  1. регистровая адресация;

  2. прямая адресация;

  3. косвенно-регистровая;

  4. непосредственная;

  5. косвенно-индексная;

  6. относительная адресация;

  7. абсолютная;

  8. длинная адресация.

Регистровая адресация

В регистровой адресации используются 8 рабочих регистров (R0-R7) активного на данный момент банка регистров, размещенного в сверхоперативном ОЗУ. Последние три бита в коде команды указывают на выбранный регистр. Существуют 4 банка рабочих регистров, активным из которых может быть один и выбирается через два бита RS1-RS0 в регистре слова состояния PSW. Таким образом, одна и та же команда может получить доступ к различным регистрам, если менять номер активного банка. Аккумулятор АСС, регистр B, текущий указатель данных DPTR, определяемый битом DPS.0, и CY могут быть также адресуемы, как регистры.

Прямая адресация

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

Прямая адресация также используется для обращения к бит-адресуемой области памяти, которая занимает адресное пространство 20H-2FH в сверхоперативном ОЗУ. Эти биты имеют индивидуальный адрес от 00H до 7FH, необходимый для прямого обращения к ним. Несколько регистров специального назначения также являются бит-адресуемыми. Адрес отдельных битов таких регистров указывается добавлением битовой позиции к адресу регистра.

Косвенно-регистровая адресация

Этот способ адресации используется для доступа к ячейкам памяти сверхоперативного ОЗУ в пределах верхних 128 байт. Адрес целевой ячейки хранится в регистрах R0 и R1 активного на данный момент банка. Изменяя содержимое регистров R0 и R1, одна и та же команда может обращаться к различным ячейкам памяти. Этот способ адресации не может быть использован для обращения к регистрам специального назначения.

Операции со стеком также являются примером косвенно-регистровой адресации. Но в данном случае вместо рабочих регистров R0 и R1 используется стековый указатель SP для хранения адреса вершины стека. Косвенно-регистровая адресация используется в командах PUSH и POP.

Этот способ адресации также используется для обращения к внешней памяти данных. Для этого предназначена команда MOVX и регистры R0, R1, DPTR или DPTR1. Если в качестве указателей адреса используются регистры R0 и R1, то младшие 8 бит адреса будут содержаться в одном из этих регистров, а старшие 8 бит в регистре специального назначение P2. Для этого содержимое в регистре P2 должно быть определено заранее, до того, как будет использована команда обращения к внешней памяти данных. Если в качестве указателей адреса используются регистры DPTR и DPTR1, то в одном из них будет содержаться целый 16-ти битный адрес.

Непосредственная адресация

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

Косвенно-индексная адресация

Применяется для доступа к байту памяти программ косвенным путем. Адрес целевой ячейки памяти вычисляется как сумма содержимого счетчика команд PC или DPTR/DPTR1 и индекса в аккумуляторе ACC. Значение результата всегда сохраняется в аккумуляторе поверх значения индекса.

Относительная адресация

Относительная адресация применима в командах короткого перехода на ячейку памяти программ в пределах 128 байт относительно текущего адреса в счетчике команд.

Адрес перехода состоит из двух дополнительных адресов смещения, которые прибавляются к содержимому счетчика команд. Относительный адрес занимает по размеру один байт памяти, таки образом, смещение может быть в пределах от -128 до +127 байт.

Абсолютная адресация

Этот способ адресации используется в командах перехода ACALL и AJMP. Операндом этих команд являются 11 бит адреса, открывающих доступ к любой ячейки памяти программ в пределах 2К текущей страницы.

16-ти битный адрес перехода складывается из 5 старших битов адреса следующей команды (РС+2) и 11 младших битов кода текущей команды. Полученный адрес будет указывать на байт в памяти программ в пределах страницы, размером 2 Кбайт, относительно первого байта следующей команды.

Длинная адресация

Используется в командах LJMP и LCALL для организации длинных переходов и ветвлений в любую ячейку памяти программ в пределах 64 Кбайт.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]