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

15. Система команд в микропроцессорах. Команды условного перехода. Логические команды(Женатов)

Обобщенная структура микропроцессора

Программный счетчик (счетчик команд, стек, регистр команд) служат для обработки команд.

АЛУ, триггер переноса, общие регистры и регистр адреса данных служат для обработки данных.

Дешифратор команд и блок управления и синхронизации (БУС) управляют работой других компонентов.

Связь между другими блоками (ЗУ и устройства ввода/вывода) происходит по адресной шине, шине данных и управляющей шине.

Раньше микропроцессоры работали со словами из 8 битов, сейчас 32 разряда.

Однако адрес из 8 битов позволяет адресовать 28=256 ячеек памяти. Для реальных задач этого мало, поэтому используют 16 разрядов 216=65536.

Информация к микропроцессору и от него передается по шинам. Шины данных в соответствии с длиной слова состоят из 8 линий, а адресная шина из 16 линий.

Адресная шина однонаправленная. Шина данных двунаправленная.

По шине управления передаются управляющие и тактирующие сигналы между компонентами микропроцессора и другими блоками микрокомпьютера.

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

Одна из функций стека-сохранение адреса возврата из подпрограммы.

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

Регистр адреса данных содержит адрес операнда для команд обращающихся к памяти, и адрес порта для команд ввода/вывода или адрес следующей команды для команд перехода.

Обычно обращение к общим регистрам осуществляется при помощи R-селектора или r-селектора.

R-селектор позволяет обращаться к любому регистру, тогда как через r-селектор доступен только регистр 0000, 0001, 0010.

Все арифметические и логические операции выполняются в АЛУ. Вводами служат шины идущие от аккумулятора (регистр 0000) и от R-селектора. Еще одна входная линия поступает в АЛУ от триггера переноса С.

Результаты из АЛУ передаются в аккумулятор, также есть еще две выходные линии, идущие в БУС. Они передают информацию об аккумуляторе

Z-аккумулятор содержит все нули; N-старший разряд аккумулятора содержит 1.

Триггер переноса С, Z и N –называют флажками и используют в командах условного перехода.

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

При выполнении любой команды выделяется промежуток времени, обычно 1 такт. Импульс в конце машинного цикла для опроса состояния флагов, как внутренних, так и внешних.

Символ

Обозначение

(x)

Содержимое х

r

Код из двух бит регистров с динамической памятью H (01), L (10), Acc (00)

R

Содержимое любого регистра из общего регистра

d

Указатель направления

Передается на

Acc

Аккумулятор, адрес – 00

Acci

Разряд содержимого Асс

C

Триггер переноса, в котором фиксируются все заемы и переполнения

M

Ячейка главной памяти

<B2>

Второй байт команды

<B3>

Третий байт команды

Ячейка памяти с адресом х

PC

Программный счетчик

Stack

Стек

+

Операция сложения

-

Операция вычитания

Логическое «и»

Логическое «или»

Логическое «исключающее или»

1. Команда пересылки: MOV r to(d=0)/from(d=1) R – команда пересылки (1байт);

2. Команда с непосредственной адресацией: LRI R – загрузка регистра немедленно (2байта)содержимое второго байта передается в регистр R, адрес которого указан в первом байте;

3. Команды обращения к памяти:

LDR R – 3-х байтная, содержимое ячейки памяти, адрес которой указан во 2(ст.разряд адреса) и 3(младший разряд) байтах, передается в регистр, адрес которого указан в 1байте;

STR R – 3-х байтная, запоминание регистра, содержимое регистра R,адрес которого указан в 1байте, передается в ячейку внешней памяти, адрес которой указан во 2 и 3байтах;

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

Они служат для изучения нормальной последовательности выполнения команд, или для анализа определенных условий:

JCN-переход при ненулевом переносе.

Формат: 1 байт

<B2>

<B3>

Если (С)=1, то <в2>,<в3>→РС.

Если (С) = 1, то второй и третий байт команды передаются в программный счетчик

Если (С)≠1, то данная команда игнорируется.

JСZ- переход при нулевом переносе.

Формат: 1 байт

<B2>

<B3>

Если (С)=0, то <в2>,<в3>→РС.

Если (С) = 1, то второй и третий байт команды передаются в программный счетчик

Если (С)≠0, то данная команда игнорируется.

JAZ – переход при нулевом аккумуляторе

Команда трехбайтная, если Асс = 000..0, то <в2>,<в3>→РС; если содержимое Асс равно 0, то второй и третий байт команды передается в регистр программного счетчика.

JAN – переход при ненулевом аккумуляторе

Если , то <в2>,<в3>→РС.

JAP – переход при положительном аккумуляторе

Если (Асс зн. разряда) = 0, то <в2>,<в3>→РС.

JAM – переход при отрицательном аккумуляторе

Если (Асс зн. разряда) = 1, то <в2>,<в3>→РС.

JMP безусловный переход, по этой команде обязательно происходит переход на выполнение команды, адрес к-ой указан во 2и 3 байтах;

JHL – команда перехода по косвенному адресу, содержимое (H) (L)→PC.1-байтовая

5. Команды обращения к подпрограммам:

JMS – переход на подпрограмму,3х байтная, (stacki)→stacki+1 (PC)→stack1 <в2>,<в3>→РС;

RET – команда возврата из подпрограммы, 1байтная stacki+1→(stacki) stack1→РС ;

6. Арифметические и логические команды:

ADD R – сложение с регистром,1байтная(Acc)+(R)→Acc,если есть перенос→С;

AD C R – сложение с регистром и триггером переноса,1б;

SUB R – вычитании регистра, заем→С,1б;

SUC R – вычитание регистра и триггера переноса, заем→С, 1б;

AND R – логическое «и», (Acc)^(R)→Acc, 1б;

OR R – логическое «или», (Acc)v(R)→Acc, 1б;

XOR R – логическое исключающее «или»,(Acc) (R)→Acc, 1б ;

CMA – обращение аккумулятора, содержимое аккумулятора инвертируется на противоположное,1б;

CMC – обращение переноса содержимое переноса инвертируется на противоположное,1б;

RSC – сброс переноса, 0→С,1б;

RTL – циклический сдвиг аккумулятора и триггера переноса влево,1б, (С)→ Acc 0 (Acci)→Acci+1 (Accст.разр)→С;

RTR – циклический сдвиг аккумулятора и триггера переноса вправо, 1б;

Команды ввода-вывода:

INP – команда ввода, 2б, <b2>→Acc;

OUT – команда вывода, 2б, (Acc)→b2;

Специальные команды:

PUSH – опустить данные в стек,1б, (stacki)→stacki+2 (Acc)(C)→stack2 (H) (L) →stack1 ;

POP – поднять данные из стека, 1б;

EIT – разрешить прерывание,1б, 1→флаг прерывания;

DIT – запрет на прерывание, 1б, 0→флаг прерывания.