Структура арифметико-логического устройства МК. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Структура арифметико-логического устройства МК.



В состав арифметическо-логического устройства входят следующие блоки: комбинационная схема обработки байт, регистр временного хранения операнда Т, регистр-аккумулятор А, схема десятичного корректора, схема формирования признаков, часть из которых фиксируется в регистре слова состояния программы ССП и используется логической схемой управления-переходами по программе.

При выполнении операций обработки данных в АЛУ формируются признаки, часть которых не фиксируется на триггерах, а формируется на комбинационной схеме. К таким признакам относятся следующие: - признак нулевого содержимого аккумулятора, - признак наличия единицы в селектируемом разряде аккумулятора.

Арифметико-логическое устройство (АЛУ) процессора используется для выполнения всех математических операций в программе. Это операции включают сложение, вычитание, логическое И, логическое ИЛИ, сдвиг содержимого регистров и установку содержимого регистра состояния в соответствии с полученным результатами. АЛУ не используется при чтении или записи данных или команд, оно служит только для обработки данных. АЛУ можно представить как аппаратный блок, который обрабатывает два слова данных (операнды) и сохраняет полученный результат (см. рис.). Как вводятся операнды в АЛУ и куда поступает результат – зависит от конкретного типа МК. В этом состоит одно из основных различий между разными типами процессоров и системами команд. Некоторые МК выбирают один операнд из регистра-аккумулятора и сохраняют результат также в аккумуляторе. Другие МК позволяют использовать различные источники операндов и места размещения результатов.

АЛУ обычно работает только с положительными целыми числами. Однако при выполнении вычитания получаются отрицательные числа, если вычитаемое больше уменьшаемого. Для представления отрицательных чисел используется дополнительный код – «дополнение до двух». Это необходимо учитывать при знакомстве с работой АЛУ. Вместо вычитания одного числа из другого, происходит добавление отрицательного числа: А – В = А + (-В), где отрицательное число (-В) представляется в дополнительном коде. Чтобы получить дополнительный код отрицательного двоичного числа, необходимо инвертировать значение каждого бита, а затем прибавить единицу: -В = (В ^ 0хff) + 1, где ^ - операция «исключительное или». Сложность АЛУ во многом определяет сложность всего МК в целом. Часто над созданием АЛУ работает группа разработчиков, сравнимая по составу с той, которая работает над остальной частью микропроцессора или микроконтроллера. От того, как работает АЛУ, зависит функционирование процессора, входящего в состав МК, а значит и всего МК в целом.

Форматы команд МК.

Если первый символ в строке отличный отп робела явл символ #, то такая строка рассматривается процессором как командная.

Командная строка наз директивами предпроцессора.

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

Осн директивы предпроцессора(в начале обозн #):

Include – испл для включения в прогу др файла;

Defain – для замены единиц языка Си на другие;

Undef – для отмены действия директивы Defain.

Для условных компиляций - If, else, if def, if undef.

Error позволяет остановить компиляцию и сообщить об ошибке.

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

Операнд – математическая функция. Каждый операнд имеет тип.

В кач операндов могут служить:

- (); - [ ]; - «.»(точка), PORTB.1 – обращение к элементу структуры.

Арифметические:

- «++», «--» - операторы инкремента и автодекремента после того, как выражение, в кот задействован операнды вычислено. - «+-» изменение знака операнда

- «*» умножение; - «/» деление; A=++B – А присвоить значение В, а потом увеличить на единицу.

Логические операнды:! – логиц отрицание; & - «и»; ^ - исключающее «или»;

| - «или» и т.д.

Переменный деляться на типы. Переменная каждого типа может принимать значение из одного опред диапазона.

Char – только целые числа; Fload – вещественные числа (в частности десятичная дробь); Bit – 0 или 1; Integer – 16 бит…

В языке си любая переменная прежде чем быть использованной должно быть описанной.

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

Имя переменной выбирает программист. Допускается использование только латинских букв, цифр и символа «_». Наичнаться имя должно с буквы и с «_». Кроме арифм и лог выраж Си использует функции.

Любая прога должна обязательно содержать 1 главную функцию. Главная ф-я наз main.

Выполнение проги всегда начинается с выполнения main.

Оператор while – организ цикл многократногоповторениятела цикла, кот записывается в фигурных скобках. Повторение происходит, пока выполняется условие. Т.е. пока {} является истинным. Принято считать, что выражение истинно, если оно ≠ 0 и ложно, если оно=0.


 

Способы адресации в МК.

Непосредственная адресация используется только при обращении к регистовому файлу:

А)Непосредственная регистровая, операнды - один регистр и константа;

б) Непосредственная регистровая, операнды - регистровая пара и константа.

 

Прямая адресация применима ко всему пространству памяти данных. В AVR-контроллерах есть четыре вида прямой адресации:

 

a) Прямая регистровая, операнд - один регистр. Используется при обращении к регистровому файлу.

б) Прямая регистровая, операнды - два регистра. Используется при обращении к регистровому файлу.

в) Прямая к памяти данных, операнды - регистр и 16-разрядный адрес байта в памяти данных. Используется при обращении к регистровому файлу.

г) Прямая к памяти программ (JMP, CALL) операнды - 16-разрядный адрес 16-разрядного слова в памяти программ.

 

При косвенной адресации используются регистры X, Y или Z в качестве неявного операнда. Есть четыре типа косвенной адресации:

а) Без явного операнда, используя регистр Z: LPM
б) С явным указанием индексного регистра и регистра-получателя: LD Rn,i, где i - X,Y или Z
в) С явным указанием индексного регистра, регистра-получателя и смещения: LD Rn,i+q, где i - Y или Z, q - значение смещения относительно адреса в i
г) С предекрементом или постинкрементом индексного регистра: LD Rn,X+

 

Относительная адресация используется только в командах RJMP и RCALL. Адрес следующей команды вычисляется относительно текущего значения счётчика комманд, используя формулу PC=PC+k+1, где -2048<=k<=2047.

 

Есть два вида битовой адресации:

  а) С непосредственным указанием бита (используется только при обращении к слову состояния SREG).
  б) С обращением к биту, используя адрес содержащего его элемента памяти данных, например SBR Rn,b

Битовая адресация используется только при обращении к регистровому файлу и к I/O-регистрам.

МК серии AVR

 


Основные группы команд МК.

Так же, как и в любой микропроцессорной системе, набор команд процессора МК включает в себя четыре основные группы команд:

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

• арифметические команды;

• логические команды;

• команды переходов.

Команды пересылки данных не требуют выполнения никаких операций над операндами. Операнды просто пересылаются (точнее, копируются) из источника (Source) в приемник (Destination). Источником и приемником могут быть внутренние регистры процессора, ячейки памяти или устройства ввода/вывода. АЛУ в данном случае не используется.

Арифметические команды выполняют операции сложения, вычитания, умножения, деления, увеличения на единицу (инкрементирования), уменьшения на единицу (декрементирования) и т.д. Этим командам требуется один или два входных операнда. Формируют команды один выходной операнд.

Логические команды производят над операндами логические операции, например, логическое И, логическое ИЛИ, исключающее ИЛИ, очистку, инверсию, разнообразные сдвиги (вправо, влево, арифметический сдвиг, циклический сдвиг). Этим командам, как и арифметическим, требуется один или два входных операнда, и формируют они один выходной операнд.

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

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

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

AND –«и»

OR-«или»

COM- перевод в обратный код

CLEAR- очистить

 

Группа команд арифметич операций:

ADD - сложение

SUB - вычитание

DEC – уменьш на 1

INC – увел на 1

 

CP - команда сравнения

ROL – сдвиг влево

ROR – сдвиг вправо

SWAG – замена мест тетрад

 

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

MOVE

LG - загрузка

IN – ввод

OUT - выдача

PUSH - запись байта в стэк

POP – извлечение

SLEEP

CALL

RET- возврат из подпроги

BR – ветвление

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

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

 

 



Поделиться:


Последнее изменение этой страницы: 2017-01-19; просмотров: 442; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.218.169.50 (0.019 с.)