Рефераты. 8-разрядные КМОП RISC микроконтроллеры с внутрисистемно программируемым Flash ПЗУ

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

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

Команды этой группы предназначены для пересылки содержимого ячеек, находящихся в адресном пространстве памяти данных. Разделение адресного пространства на три части (РОН, РВВ, ОЗУ) предопределило разнообразие команд данной группы. Пересылка данных, выполняемая командами группы, может производиться в следующих направлениях:

* РОН <=> РОН;

* РОН <=> РВВ;

* РОН <=> память данных.

Также к данной группе можно отнести стековые команды PUSH и POP, позволяющие сохранять в стеке и восстанавливать из стека содержимое РОН.

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

Команды передачи управления

В эту группу входят команды перехода, вызова подпрограмм и воз-врата из них и команды типа «проверка/пропуск», пропускающие сле-дующую за ними команду при выполнении некоторого условия. Также к этой группе относятся команды сравнения, формирующие флаги регистра SREG и предназначенные, как правило, для работы совместно с командами условного перехода.

В системе команд микроконтроллеров семейства имеются команды как безусловного, так и условного переходов. Команды относительного перехода (RJMP), а в микроконтроллерах семейства Mega также косвенного (IJMP) и абсолютного (JMP) безусловного перехода являются самыми простыми в этой группе. Их функция заключается только в записи нового адреса в счетчик команд. Команды условного перехода также изменяют содержимое счетчика команд, однако это изменение происходит только при выполнении некоторого условия или, точнее, при определенном состоянии различных флагов регистра SREG.

Все команды условного перехода можно разбить на две подгруппы. Первая подгруппа -- команды условного перехода общего назначения. В эту подгруппу входят две команды BRBS s,k HBRBC s,k, в которых явно задается номер тестируемого флага регистра SREG. Соответственно, переход осуществляется при SREG.s = 0 (brbc) или SREG.S = I (brbs). Другую подгруппу составляют 18 специализированных команд, каждая из которых выполняет переход по какому-либо конкретному условию («равно», «больше или равно», «был перенос» и т. п.). Причем одни команды используются после сравнения без знаковых чисел, другие -- после сравнения чисел со знаком. Возможные проверяемые условия, а также соответствующие им команды условного перехода приведены в таблице.

Сводная таблица команд условного перехода

Проверка

Логическое условие

Команда

Обратная проверка

Логическое условие

Команда

Тип данных

Rd>Rr

Z»(N©V) = 0

BRLT*

Rd<Rr

Z + (N®V)=1

BRGE*

Co знаком

Rd>Rr

(NeV) = 0

BRGE

Rd<Rr

(N©V) = 1

BRLT

Co знаком

Rd = Rr

Z=l

BREQ

Rd^Rr

Z = 0

BRNE

Co знаком

Rd<Rr

Z + (N®V) = 1

BRGE*

Rd>Rr

Z»(N©V) = 0

BRLT*

Co знаком

Rd<Rr

(N®V)=1

BRLT

Rd>Rr

(N®V) = 0

BRGE

Co знаком

Rd>Rr

C + Z = 0

BRLO*

Rd<Rr

C + Z=l

BRSH*

Без знака

Rd>Rr

C = 0

BRHS/ BRCC

Rd<Rr

C=l

BRLO/ BRCS

Без знака

Rd = Rr

z-\

BREQ

Rd*Rr

z = o

BRNE

Без знака

Rd<Rr

C = Z=1

BRSH *

Rd>Rr

c = z = o

BRLO*

Без знака

Rd<Rr

C=l

BRLO/ BRCS

Rd>Rr

c=o

BRSH/ BRCC

Без знака

«Перенос»

C = l

BRCS

«Нет пере-носа»

c = o

BRCC

«Меньше нуля»

N = 1

BRMI

«Больше ну-ля»

N = 0

BRPL

«Перепол-нение»

V=l

BRVS

«Нет пере-полнения»

V=0

BRVC

«Ноль»

Z=l

BREQ

«Не ноль»

z=o

BRNE

* Для перехода по этому условию операнды предшествующей команды сравнения должны быть записаны в обратном порядке, т. е. вместо СР Rd.Rr-->CP Rr.Rd.

Вообще говоря, команды, указанные в таблице, являются всего лишь эквивалентными мнемоническими обозначениями команд BRBS s, к и BRBC s , к с определенными значениями операнда «s». Команда BREQ имеет, например, такой же код операции, что и команда BRBS 1,к, а команда BRGE k - BRBC 4,к.

Команды вызова подпрограммы (icall, rcall, call) работают практически так же, как и команды безусловного перехода. Отличие заключается в том, что, перед тем как выполнить переход, значение счетчика команд сохраняется в стеке. Кроме того, подпрограмма должна заканчиваться командой возврата RET.

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

Команды управления системой

В эту группу входят всего 3 команды:

* NOP -- пустая команда;

* SLEEP -- перевод микроконтроллера в режим пониженного энер-гопотребления;

* wdr -- сброс сторожевого таймера.

Все команды этой группы выполняются за один машинный цикл.

Сводные таблицы команд

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

Группа команд логических операций

Мнемоника

Описание

Операция

Циклы

Флаги

AND Rd, Rr

«Логическое И» двух РОН

Rd = Rd * Rr

1

Z,N,V

ANDI Rd, K

«Логическое И» РОН и константы

Rd = Rd * К

1

Z,N,V

EOR Rd, Rr

«Исключающее ИЛИ» двух РОН

Rd = Rd ® Rr

1

Z,N,V

OR Rd, Rr

«Логическое ИЛИ» двух РОН

Rd = Rd v Rr

1

Z,N,V

ORI Rd, K

«Логическое ИЛИ» РОН и константы

Rd = Rd v К

1

Z,N,V

COM Rd

Перевод в обратный код

Rd = $FF-Rd

1

Z,C,N,V

NEG Rd

Перевод в дополнительный код

Rd = $00-Rd

1

Z,C,N,V,H

CLR Rd

Сброс всех разрядов РОН

Rd = Rd ® Rd

1

Z,N,V

SER Rd

Установка всех разрядов РОН

Rd = $FF

1

TST Rd

Проверка РОН на отрицательное или нулевое значение

Rd * Rd

1

Z,N,V

SWAP Rd

Обмен местами тетрад в РОН

Rd(3...O) = Rd(7...4),

Rd(7...4) = Rd(3...O)

1

Страницы: 1, 2, 3, 4, 5, 6, 7



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.