Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпт 2013.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
2.12 Mб
Скачать

26.Ассемблер,структура команд, операнды. Виды регистровой адрессации

Адресация операндов коды данных - операнды.

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

М етоды адресации

Н епосредственная адресация - операнд (входной) находится в памяти непосредственно за кодом команды. Операнд обычно представляет собой константу, которую надо куда-то переслать, к чему-то прибавить и т.д.

Прямая (она же абсолютная) адресация - операнд (входной или выходной) находится в памяти по адресу, код которого находится внутри программы сразу же за кодом команды.

Р егистровая адресация - операнд (входной или выходной) находится во внутреннем регистре процессора.

К освенно-регистровая (она же косвенная) адресация - во внутреннем регистре процессора находится не сам операнд, а его адрес в памяти.

Ассемблер

Язык ассемблера — система обозначений, используемая для представления в удобочитаемой форме программ, записанных в машинном коде.

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

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

ADD Сложить без переноса

ADC Сложить с переносом

SUB Вычесть без переноса

SBC Вычесть с переносом

SUBI Вычесть непосредственное значение

SBCI Вычесть непосредственное значение с переносом

CP Сравнить

CPC Сравнить с учетом переноса

CPI Сравнить c константой

INC Инкрементировать

DEC Декрементировать

NEG Выполнить дополнение до двух

ADIW Сложить непосредственное значение со словом

SBIW Вычесть непосредственное значение из слова

Регистры и операнды

Rd: Регистр назначения (и источник) в регистровом файле

Rr: Регистр источник в регистровом файле

R: Результат выполнения команды

K: Литерал или байт данных (8 бит)

k: Данные адреса константы для счетчика программ

b: Бит в регистровом файле или I/O регистр (3 бита)

s: Бит в регистре статуса (3 бита)

X, Y, Z: Регистр косвенной адресации (X=R27:R26, Y=R29:R28, Z=R31:R30)

P: Адрес I/O порта

q: Смещение при прямой адресации (6 бит)

STACK: Стек для адреса возврата и опущенных в стек регистров

SP: Указатель стека

PC: Счетчик команд

Адресация одного и двух регистров

Структура кодов команд

45. Регистры 8-разрядного таймера. Функциональные блоки таймера.

Регистр таймера-счетчика (TCNTn) и регистр порога сравнения (OCRn) - 8-разр. регистры. Сигналы запроса на прерывание представлены как флаги прерываний таймера в регистре TIFR. Все прерывания индивидуально маскируются с помощью регистра маски прерываний таймеров (TIMSK). Регистры TIFR и TIMSK не представлены на функциональной схеме, т.к. они совместно используются с другими таймерами микроконтроллера.

Таймер-счетчик может тактироваться через предделитель внутренне или асинхронно через внешние выводы TOSC1/2.

Асинхронная работа управляется регистром асинхронного состояния (ASSR). Блок синхронизации осуществляет выбор, какой тактовый источник используется для инкрементирования (декрементирования) состояния таймера-счетчика.

Если источник тактирования не задан, то таймер-счетчик находится в неактивном состоянии.

Выход логики выбора синхронизации обозначен как синхронизация таймера (clkTn).

Значение регистра порога сравнения с двойной буферизацией (OCRn) непрерывно сравнивается со значением таймера-счетчика. Результат сравнения может использоваться для генерации сигналов с ШИМ или прямоугольных импульсов переменной частоты на выводе OCn. Совпадение порога сравнения со значением таймера-счетчика приводит к установке флага результата сравнения (OCFn), который может использоваться для генерации запроса на прерывание по результату сравнения.

Блок счетчика

Основу 8-разр. таймера-счетчика составляет программируемый двунаправленный счетчик. Рисунок показывает функциональную схему счетчика и окружающих его элементов.Описание сигналов (внутренние сигналы):

Счет - Инкрементирует или декрементирует TCNTn на 1.

Направление - Задает направление счета: инкрементирование (+1, прямой счет) или декрементирование (-1, обратный счет).

Сброс - Сбрасывает содержимое TCNTn (запись лог. 0 во все разряды).

clkTn - Синхронизация таймера-счетчика.

Верхний предел - Задает максимальное значение, которое может достигнуть TCNTn.

Нижний предел - Задает минимальное значение, которое может достигнуть TCNTn (ноль).

Блок сравнения

8-разрядный цифровой компаратор непрерывно выполняет сравнение содержимого регистра таймера-счетчика TCNT0 с регистром порога сравнения OCR0.

Всякий раз, когда значение TCNT0 совпадает со значением OCR0 компаратор устанавливает флаг совпадения OCF0 следующим тактом синхронизации таймера.

Если разрешено прерывание битом OCIE0 = 1, то установка флага совпадения вызывает запрос на прерывание. Флаг OCF0 автоматически сбрасывается во время выполнения процедуры обработки прерывания.

А льтернативно, флаг OCF0 можно сбросить программно путем записи лог. 1 в позицию данного бита.

Генератор сигнала использует сигнал результата сравнения для генерации прямоугольных импульсов по одному из алгоритмов, который выбирается битами задания режима работы таймера WGMn1, WGMn0 и битами задания режима формирования выходного сигнала (COMn1, COMn0). Верхний и нижний пределы счета используются в некоторых режимах работы для выполнения специальных действий.

Блок формирования выходного сигнала

Б иты задания режима формирования выходного сигнала (COMn1:0) имеют двойное назначение.

С одной стороны биты COMn1, COMn0 используются формирова-телем сигнала и определяют какое логическое состояние должно быть на выходе OCn при возникновении следующего совпадения.

С другой стороны, биты COMn1, COMn0 используются для разре-шения/запрета альтернативной функции вывода порта OCn.

Функция линии универсального порта ввода-вывода заменяется на функцию выхода формирователя сигнала OCn, если хотя бы один из бит COMn1, COMn0 установлен (логика ИЛИ).

Однако, управление направлением вывода OCn (вход или выход) в этом случае остается за соответствующим битом регистра направления данных порта (DDRx).

Чтобы значение регистра OCn присутствовало на выводе OC0 необходимо настроить данную линию на вывод (установить бит DDRx.n). Управление вводом альтернативной функции не зависит от режима генерации сигнала.

Схемотехника выходной логики позволяет инициализировать состояние регистра OCn перед разрешением настройки вывода OCn в качестве выхода.

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