
- •Обзор существующих микроконтроллеров.
- •Структура синтезируемого микроконтроллера.
- •Состав ассемблерных команд.
- •Характеристика регистров микроконтроллера.
- •Словесная характеристика ассемблерных команд.
- •Словесная характеристика состава команд позволяет рационально организовать формат команды при вертикальном микропрограммировании, выполнять как дешифрацию команд, так и адресную выборку операндов.
- •Микрокомандное управление.
- •Блок-схема функционирования управляющего автомата.
- •Формирование требований к реализации узлов*.
- •1.1. Узел: регистр счетчик команд, воздействия***:
- •1.2. Узел: память программ, воздействие***:
- •1.3. Узел: декодирование кода операции, воздействие:
- •1.4. Узел: регистр указатель стека, воздействия***:
- •1.5. Узел: регистр флагов, воздействия***:
- •1.6. Узел: анализа состояния отдельного флага, воздействия:
- •1.7. Узел: оперативная память, воздействие:
- •1.8. Узел: преобразователь кодов, воздействие:
- •1.9. Узел: параллельный порт в, воздействия:
- •Функциональная схема микроконтроллера.
- •Вариант задания: группа ____ № _____ .
Словесная характеристика состава команд позволяет рационально организовать формат команды при вертикальном микропрограммировании, выполнять как дешифрацию команд, так и адресную выборку операндов.
Таблица кодирования команд.
Таблица кодирования команд является завершением аналитической разработки формата вертикального микропрограммирования всех команд.
Анализируя словесные характеристики исполняемых команд, на основании вертикального кодирования и структуры их формата, можно сделать вывод, что команды, приведенные в ТЗ подразделяются на:
безадресные – возврат из подпрограммы обработки прерываний (11);
безадресные с константой – переход по условию (1), абсолютный вызов подпрограммы (2);
одноадресные – сброс содержимого РОНа (3), перевод в дополнительный код содержимого РОНа (6), декремент содержимого РОНа (7), сохранение в стеке содержимого регистра (10); функция преобразования кода (12);
двухадресные – сложение содержимого двух РОН с переносом (4), сложение содержимого двух РОН (5), пересылка данных между двумя РОНами (8), косвенное чтение данных в РОН из ячейки памяти данных (9).
Обобщив краткие словесные характеристики исполняемых команд, формируется таблица их вертикального кодирования, исполняемая центральным процессорным элементом, как показано в табл. 4.
Таблица 4.
Кодирование всех ассемблерных команд.
№ |
Мнемоническое обозначение команды |
Код коман-ды |
Слов |
Формат ассемблерной команды. |
|||||||
коли-чество |
номер |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|||
3 6 7 |
CLR Rd; NEG Rd; DEC Rd. |
** |
1 |
1 |
Rd |
КОп – 1, 2, 3 |
|||||
CLR R11; (обнулить регистр 11) |
59h |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
|
CLR R1; (обнулить регистр 1) |
09h |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
|
NEG R7; (перевод в доп. код рег. 7) |
3Ah |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
|
NEG R9; (перевод в доп. код рег. 9) |
4Ah |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
|
DEC R8; (уменьшить на 1 регистр 8) |
43h |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
|
DEC R12; (уменьшить на 1 регистр 12) |
63h |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
|
10 |
PUSH Rr; |
** |
1 |
1 |
Rr |
КОп – 4 |
|||||
PUSH R7; (внести в стек регистр 7) |
3Ch |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
|
PUSH R1; (внести в стек регистр 1) |
0Ch |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
|
8 |
MOV Rd, Rr; |
** |
2 |
1 |
Rr |
КОп – 5 |
|||||
2 |
Rd |
резерв |
|||||||||
MOV R13, R5; (данные регистра 5 внести в регистр 13) |
6D,28h |
2 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
|
2 |
0 |
1 |
0 |
1 |
*(0) |
*(0) |
*(0) |
||||
12 |
FUN1 Rd, PORTB; |
** |
1 |
1 |
Rd |
КОп – 6 |
|||||
FUN1 R5, PORTB; (в регистр 5 вносится двоичный код с выходов ПК) |
2Eh |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
|
1 |
BREQ k; |
** |
2 |
1 |
ДКОп – 15 |
КОп – 7 |
|||||
2 |
Константа перехода – k |
||||||||||
BREQ 117; (переход на минус 53 слова, при установленном флаге Z ) |
7F,75h |
2 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
|
2 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
||||
9 |
LD Rd, Z; |
** |
2 |
1 |
Z |
ДКОп – 2 |
КОп – 7 |
||||
2 |
Rd |
резерв |
|||||||||
LD R5, Z; (данные ячейки памяти адр. которой указан в рег.Z внести в рег. 5) |
77,28h |
2 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
|
2 |
0 |
1 |
0 |
1 |
*(0) |
*(0) |
*(0) |
||||
2 |
CALL K |
** |
4 |
1 |
ДКОп – 0 |
КОп – 7 |
|||||
2 |
Константы абсолютного вызова подпрограммы – k (три слова) |
||||||||||
3 |
|||||||||||
4 |
|||||||||||
CALL 5DF5h; (переход по абсолютному адресу вызываемой подпрограммы 5DF5h) |
07, 5DF5h |
4 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
|
2 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
||||
3 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
||||
4 |
*(0) |
*(0) |
*(0) |
*(0) |
*(0) |
0 |
1 |
||||
4 5 |
ADC Rd, Rr; ADD Rd, Rr; |
** |
2 |
1 |
ДКОп – 12, 4 |
КОп – 7 |
|||||
2 |
Rd |
Rr |
|||||||||
ADC R8, R5; (сложение с учетом переноса, содержимого регистров 8 и 5) |
67,45h |
2 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
|
2 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
||||
ADD R10, R7; (сложение содержимого регистров 10 и 7) |
27,57h |
2 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
|
2 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
||||
11 |
RET I |
** |
1 |
1 |
ДКОп – 8 |
КОп – 7 |
|||||
RET I; (возврат из прерывания) |
47h |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
П
римечания
к таблице
2.
**
– выделены
коды без указания конкретных регистров;
.
выделены ключевые
поля дополнительного кода;
выделены определяющие поля дополнительного
кода.