Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих (2007), страница 5
Описание файла
DJVU-файл из архива "Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих (2007)", который расположен в категории "". Всё это находится в предмете "компьютерные методы и технологии автоматизации и управления" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. .
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 5 - страница
Инструнентальные средства нрахтикута знаком ЕМУ.Я1. Дробные сомножители имеют формат 1.7, их произведение — формат 1.15, где справа от точки указано число дробных разрядов, Во всех операциях умножения источниками операндов являются регистры Кб и Кг, произведение формируется в регистрах К1:КО. При выполнении операций сложения1вычитания приемником результата является один из регистров общего назначения, в котором до операции находится один из операндов. Таким образом, можно говорить о реализации АЛУ аккумуляторного типа по отношению к любому регистру общего назначения (сравните: микроконтроллеры с ялром МСЯ-51 имеют всего лишь один аккумулятор, что, безусловно, ухудшает эффективность обработки данных и ведет к снижению производительности в целом). Особенностью системы команд микроконтроллеров АУК является отсутствие команды двоично-десятичной коррекции. Команды пересылки можно использовать для передачи данных из регистра в регистр, для пересылок между регистрами и косвенно адресуемыми ячейками адресного пространства 8КАМ, регистрами ввода1вывода и регистрами общего назначения, для сохранения и извлечения данных из стека, чтения констант из НазЬ- памяти программ и даже записи во Най-память (в модели АТшейа8515).
Следует обратить внимание, что непосредственная загрузка константы в регистры общего назначения первой половины (Ко...К15) невозможна. Для этого необходимо предварительно загрузить константу в один из регистров второй половины (Км...Кз1), а затем переслать содержимое вспомогательного регистра в регистр первой половины. Широко представлена группа команд передачи управления. Помимо традиционных команд безусловной и условной передачи управления по флагу имеются команды косвенного перехода и косвенного вызова подпрограмм.
Команды условных переходов делятся на два типа. Команды первого типа при выполнении условия обеспечивают переход по адресу, вычисляемому как сумма (РС -ь к -ь 1). При невыполнении условия происходит переход к следующей команле программы по адресу (РС + 1).
Команды второго типа при выполнении условия обеспечивают переход к команде, следующей за очередной, т. е. по адресу (РС + 2), если длина очередной команды составляет одно слово, или по адресу (РС + 3), если длина очередной команды составляет два слова. Если условие не выполняется, происходит переход к следующей команде по адресу (РС л- 1). Такое разнообразие команд управления способствует эффективной работе компиляторов программ, написанных на языке Си.
1. 1, лгикроконтроллеры А тл8515 В битовых операциях следует обратить внимание, что все операции пересылки битов в области регистров общего назначения осуществляются только через вспомогательный бит Т регистра состояния 8К.ЕО. В области регистров ввода/вывода биты можно изменять только путем установки 1 или О. Программно путем установки 1 или О можно изменять состояния флагов регистра состояния ВКЕО. В эту группу включены также операции ФРК (сброс сторожевого таймера)„8ЕЕЕР (перевод в энергосберегающий режим), пустая операция ХОР.
Директивы Ассемблера При написании программ на языке Ассемблер используются директивы, которые указывают компилятору положение программы в памяти, определяют макросы, инициализируют память и др. Список директив и их описание приведен в табл. 1.8. Запись всех директив начинается с точки. Кратко перечислим выполняемые директивами функции в каждом из сегментов. Сегмент программы открывается директивой .СБЕО.
Если программа начинается с этого сегмента, директива может отсутствовать. В сегменте программы с помощью директивы .ОКО можно указать начало сегмента. Директива .РВ в сегменте определяет олин байт или группу байтов, констант, записываемых во Най-память. Директива .Р% определяет слово или группу слов, записываемых в память в качестве констант. Начало записи констант определяется меткой, стоящей перед соответствующей директивой. Перечисляемые константы разделяются запятыми. Директива .РЕР присваивает регистру символическое имя.
Директивы .Е( 1), .ЯЕТ присваивают значение имени. Имя, которому присвоено значение директивой .Е9Ц не может быть переназначено, н значение не может быть изменено. Имя, присвоенное директивой . БЕТ, может быть изменено другой директивой .8ЕТ. Директива .РЕУ1СЕ определяет тип целевого микроконтроллера, который будет использован для выполнения программы. Наличие этой директивы полключает средства контроля инструкций программы по отношению к физическому устройству, предупреждая о невозможности выполнения некоторых инструкций, размеров используемой памяти и др. Директива .1ХСЕ()РЕ с именем файла используется для включения в текст программы другого файла. Таблица 1.8. Список директив Описание Директива .ВУТЕ .СБЕб .РВ .РЕР .РЕЧ1СЕ Директивы .МАСКО и .ЕХРМАСКО обрамляют макроопределение.
Макроопределение может иметь до 10 параметров с фиксированными именами ~®0,...,~®9. При вызове макроопределения параметры задают в виде списка в порядке нумерации. Сегмент данных начинается директивой .РЯЕО. В сегменте могут быть использованы директивы .ОКО и .ВУТЕ. Директива .ВУТЕ определяет количество байтов„к которым будет производиться обращение при выполнении программы. Резервируемая область начинается по адресу, определяемому меткой перед директивой.
Сегмент типа ЕЕРКОМ начинается директивой .ЕБЕО. В сегменте могут быть использованы директивы .ОКО, .РВ, .Р%. Директива .РВ в сегменте определяет один или группу байтов, записываемых в ЕЕРКОМ. Директива РЧУ определяет слово или .РЯЕб .Р% .ЕХРМ, . ЕХРМАСКО .ЕЯ15 .ЕВЕб .ЕХ1Т .1ХСЫ1РЕ .ЫЯТ Л.БТМАС .МАСКО .ХОЫБТ .ОКб .эЕТ 1. Инструментальные средства практикума Резервировать байты в ОЗУ Сегмент программы Определить байт — константу во Р!авЬ-памяти или ЕЕР КОМ Назначить регистру символическое имя Определяет устройство, лля которого компилируется программа Сегмент данных Определяет слово во Р1авЬ-памяти или ЕЕРКОМ Конец макроса Установить постоянное выражение Сегмент ЕЕРКОМ Выход из файла Вложить другой файл Включить генерацию листинга Включить разворачивание макросов в лисзинге Начало макроса Выключить генерацию листинга Установить положение в сегменте Установить для переменной эквивалентное выражение 1,1.
Микроконтроллеры АТлВ515 группу слов, записываемых в память ЕЕРКОМ парами гю 2 байта. Начало записи байтов и слов определяется меткой, стояшей перед соответствующей директивой. Директивы Л.1ЕТ, .ХО1.1ЕТ, .1.18ТМАС используют для управления выводом листинга. Выражения При записи команд на Ассемблере могут использоваться выражения, по которым в процессе ассемблирования программы вычисляются значения. Операндами выражений могут быть: — числа (десятичные„шестнадцатеричные и двоичные); — метки; — коды символов АЯС11 ('А') и строки АЕСП; — символические имена, представляющие переменные, определенные директивой .ЯЕТ, и константы, определенные директивой .ЕО15; — текущее значение счетчика команд (РС). Для обозначения шестнадцатеричных чисел используют указатели Ох или 3 (Ох1а, Ох1Т, Зй), для двоичных чисел — ОЬ (ОЬ00001111, ОЫ 1111111), десятичные числа не имеют указателей (255, 0).
Помимо операндов в выражения могут входить функции, например: 1.О% (выражение) — возвращает младший байт выражения; Н1ОН (выражение) — возвьпагцает старший байт выражения; ЕХР2 (Х) — возвращает 2; 1.ОО2 (Х) — возвращает целую часть 1одзХ. При записи выражений можно использовать арифметические, логические и операции отношения. Группу арифмстичсских операций образуют сложение двух чисел или выражений (Х л- М), вычитание (Х вЂ” М), умножение (Х*М), деление (Х/М), изменение знака числа ( — Х). Группу логических операций образуют инверсия (-Х), побитовое И (ХВсМ), побитовое ИЛИ (Х ~ М), побитовое исключаюшес ИЛИ (ХЙМ), сдвиг влево (Х«М вЂ” сдвинуть Х влево на М разрядов), сдвиг вправо 1Х»М вЂ” сдвинуть Х вправо на М разрядов).
Операции отношений: — логическое отрицание (1Х вЂ” возвращает 1, если Х = О, и О, если Х~О); — меньше (Х < М вЂ” возвращает 1, если Х < М, и О, если Х > М); 32 о соовмоо Воо/а Х О ноосо н м: о ь о1 оооо!; овощь в вово и о 2 — аяза 1, Инструментаньные средства практикума — больше (Х > М вЂ” возвращает 1, если выражение Х > М, и О, если Х < М); — меньше или равно (Х <= М вЂ” возвращает 1, если Х <= М, и О, если Х > М); — больше или равно (Х >= М вЂ” возвращает 1, если Х >= М, и О, если Х < М); — равно (Х = М вЂ” возвращает 1, если Х = М, и О, если Х х М); — не равно (Х 1= М вЂ” возвращает 1, если Х х М, и О, если Х=М); — логическое И (Хос8сМ вЂ” возвращает 1, если Х х 0 и М х О, иначе 0); — логическое ИЛИ (Х()М вЂ” возвращает 1, если Х = 0 и М = О, иначе 0).