Главная » Просмотр файлов » Гребнев В.В. - Микроконтроллеры семейства AVR фирмы Atmel

Гребнев В.В. - Микроконтроллеры семейства AVR фирмы Atmel (1044208), страница 18

Файл №1044208 Гребнев В.В. - Микроконтроллеры семейства AVR фирмы Atmel (Гребнев В.В. - Микроконтроллеры семейства AVR фирмы Atmel) 18 страницаГребнев В.В. - Микроконтроллеры семейства AVR фирмы Atmel (1044208) страница 182017-12-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 18)

П7.1. Таблица П7.1 Формула для определения значения переменной С в зависимости от значений переменных а, Ь и Я имеет вид; С Яа,Ь,Я) аЬЯч аЬЯч аЬЯ ч аЬЯ аЯч аЬч ЬЯ. При выполнении операции вычитания с числами без знака единичное значение переменной С в старшем разряде свидетельствует о получении неверного результата, поскольку в разрядной сетке отсутствует разряд, из которого требуется занять единицу. Числа со знаком представляются в дополнительном двоичном коде. При этом старший разряд (и) имеет вес (-2"), а соседний младший разряд — вес +2" .

Единица займа из старшего разряда должна иметь вес+2"-2 2" . Операция вычитания в старшем разряде выполняется по общему для всех разрядов правилу (табл. П?,1). Результат, который должен быть получен в старшем разряде при выполнении операции а-Ь-с с учетом весов разрядов дополнительного кода при разных комбинациях значений переменных а, Ь и с, указан в табл. П7.2. 108 Приложения Табли цо П7.2 Результат, получаемый в третьей и шестой строках табл.

П7.2, не может быть представлен в данной разрядной сетке. В этом случае признак переполнения разрядной сетки при выполнении операций с числами со знаком (ч) должен иметь единичное значение. Формула для определения значения переменной Г в зависимости от значений переменных а, Ь и Я имеет вид: Ъ'=~(а, Ь, Я) = аЬЙ ч аЬК П8. Разработка программы на языке АУЯ Ассемблера фирмы А1те! П8.1. Программа на языке ассемблера представляется в виде одного или нескольких текстовых файлов.

Файл состоит из одного или нескольких сегментов. Программа может иметь в своем составе сегменты трех типов — СЯЕС, ЕНЕС и РЯЕ( . Сегмент типа СЯЕС является обязательным. Запись программы выполняется построчно. Строка может содержать до 120 символов (буквы, цифры, знаки, пробелы). Строка может быть пустой.

В строке выделяются три поля. Слева находится поле для записи метки. Метка представляет собой последовательность из букв, цифр и некоторых знаков и начинается с буквы. Запись метки заканчивается знаком ":". Поле метки может быть пустым. Справа от поля метки находится поле для записи мнемокодов команд и директив ассемблера.

Поле может быть пустым. Далее находится поле для записи комментария. Запись комментария начинается со знака ";". Поле комментария может быть пустым. 109 Разработка программы на языке АУк Ассемблера фирмы Аале! В процессе ассемблирования мнемокоды команд преобразуются в машинные коды команд, директивы ассемблера и метки используются при формировании программы в машинных кодах. Комментарии игнорируются. Они используются программистами в качестве пояснений к программе. Мнемокоды команд рассмотрены при описании системы команд (см.

главу 2) и приведены в табл. 2.1 — 2.14. Директивы ассемблера выполняют следующие функции: ° определяют тип сегмента (директивы .СБЕЙ, .ЕНЕС, .РАДЕС); ° распределяют память микроконтроллера (директивы .ОКО, .РВ, .РЖ, .ВУТЕ); ° присваивают имена и значения (директивы .РЕЕ, .ЕЯ(3, 5ЕТ); ° управляют процессом ассемблирования (директивы . РЕЧ1СЕ, .1ХСШРЕ, .ЕХ1Т, .МАСКО, .ЕХРМАСКО); ° управляют формированием листинга (директивы .1ч01.1БТ,,1.1ЯТ, .1.1БТМАС). П8.2. Сегмент тип СБЕЙ начинается с директивы .СЯЕС. Если запись программы начинается с сегмента этого типа, директива может отсутствовать. В сегменте типа СЕКЕС записываются мнемокоды команд и могут записываться все директивы ассемблера, кроме директивы .РТЕ.

Метка является символическим адресом в адресном пространстве НазЬЙОМ. Реальный адрес вычисляется в процессе ассемблирования. Исходное значение задается с помощью директивы .ОИ, записанной в начале сегмента после директивы СБЕЙ. В программе могут находиться несколько сегментов типа СБЕС. При отсутствии директивы .ОКО в первом из них в качестве исходного принимается нулевой адрес в НазЬВ.ОМ. В сегменте типа СЯЕС директива .РВ определяет байт или группу байтов, которые должны быть записаны в На~ЬКОМ в качестве констант, начиная с адреса, обозначенного меткой перед директивой.

Пример 1. . СВЕВ .ОВВ $140 МИМ;,08 $12, $34, $56, $78 Байт $12 записывается в НазИОМ по адресу 1ч0М = $140 в младшую половину ячейки, байт $34 — по этому же адресу в старшую половину ячейки, байт $56— по адресу 1чОМ+1 $141 в младшую половину ячейки, байт $78 — по адресу 1ч0М+! в старшую половину ячейки. Запись выполняется при программировании микроконтроллера.

Директива .РЖ определяет слово или группу слов, которые должны быть записаны в НазЫОМ в качестве констант, начиная с адреса, обозначенного меткой перед директивой. 110 Приложения Пример 2. ЙБМЯ.',ОИ $1234, $5678, $9АВС Слово $1234 записывается в Р)азИОМ по адресу МОМЯ, слово $5678 — по адресу МОМЯ+1, слово $9АВС вЂ” по адресу МОМЯ+2. Реальные адреса вычисляются в процессе ассемблирования. Запись в Р)азпкОМ выполняется при программировании микроконтроллера.

Кроме символических адресов, указанных в сегменте СВЕС в поле метки и используемых в мнемокодах команд безусловного и условногс перехода, при записи программы на языке ассемблера могут вводиться символические имена для регистров общего назначения и отдельных разрядов в них, для регистров ввода-вывода и отдельных разрядов в них, для переменной К в мнемокодах команд в табл.

2.2 и 2.3 и для переменной г) в мнемокодах команд в табл. 2.5. Директива .БЕЕ присваивает символическое имя регистру общего назначения. Это имя может указываться в мнемокодах команд вместо стандартного обозначения (Я6, Я„). Пример 3. . ОЕГ ТЕМР Н16 Е01 ТЕМР, $ГО В регистр общего назначения к16 заносится байт $РО. Директивы .ЕЯ11 и 5ЕТ присваивают значение имени, введенному программистом.

Пример Я. . ЕОО ООНС1М1Т $38 !01 ТЕМР, ООНС1М1Т ООТ $14. ТЕМР Коду, который должен быть занесен в регистр 00кС (Мв $14), программист присвоил имя 00НС!М1Т. При выполнении программы в регистр 00НС будет занесен двоичный код 00111011, который определяет направление передачи через выводы порта С.

Пример 5. .ОЕР МАЯТЕЯТ Н20 .ЕОО КТЕЯТ = 6 ЯВНС МАЯТЕЯТ, КТЕЯТ Выполнение команды, условного перехода (команда Мв111) зависит от состояния шестого разряда в регистре общего назначения к20. Разработка программы на языке А тк Ассемблера фирмы Аяпе! Пример 6. . ЕОО БТАСК1М1Т = $025Г Коду, предназначенному для занесения в регистр-указатель стека, программист присвоил имя и задал значение. Значение, присвоенное директивой .ЕЯУ, остается неизменным для всей программы. Значение, присвоенное директивой .ЯЕТ, может быть изменено в другом месте программы. Регистры ввода-вывода и отдельные разряды в некоторых из них имеют штатные символические имена.

Штатные имена регистров ввода- вывода у микроконтроллеров разных типов приведены в приложении П4. Штатные имена разрядов регистров ввода-вывода приведены в тексте книги при описании работы устройств, в которых эти регистры используются, и указаны в приложении П5. С использованием штатного имени мнемокод второй команды в примере 4 принимает вид: ООТ ООНС, ТЕМР Директива .ВЕЧ1СЕ определяет тип микроконтроллера, для которого составляется программа.

По этой директиве в ассемблере выбирается служебный файл, в котором присвоены имена регистрам ввода-вывода и их разрядам, указана емкость запоминающих устройств и отмечены другие особенности микроконтроллера используемого типа. Пример записи директивы: . РЕЧ1СЕ АТ9058515 Директива .1ХСШРЕ указывает имя дополнительного файла, который должен быть использован в процессе ассемблирования. Пример записи директивы: . 1МСЫОЕ "ОАНТ. АВМ", где УАКТ.АЯМ вЂ” имя дополнительного файла. Директива .ЕХ1Т указывает конец используемой при ассемблировании части файла, если не требуется использовать весь файл. Директивы .МАСКО и .ЕХРМАСКО обрамляют участок программы ~макроопределение), который должен ассемблироваться каждый раз, когда в поле для мнемокодов команд и директив ассемблера появляется имя, заданное директивой .МАСКО.

Пример У. .МАСНО ЕЕИН 881 ЕЕСН, 2 881 ЕЕСН, 1 . ЕМОМАСНО 112 Приложения При появлении в программе на языке ассемблера в среднем поле имени ЕЕЮР (макровызов) ассемблируются мнемокоды 5В! ЕЕСР, 2 и БВ! ЕЕСР, 1 и в программу на машинном языке вставляются машинные коды этих команд. В макроопределении вместо конкретных имен и значений могут вводиться обобщенные обозначения параметров ФО, Ф1, ..., Р9.

В макровызове после имени указываются значения параметров для данного макровызова в порядке их номеров. Пример УА. .МАСНО А0016 АОО ФО, У1 АООС е2, еЗ .ЕМОМАСНО .СБЕО А0016 Н4, Н10. Н5, Н11 При ассемблировании данного макровызова будут ассемблироваться команды с мнемокодом АОО Н4, Н10 АООС Н5, Н11 В процессе ассемблирования формируется файл для выдачи листинга. С использованием директив .МОНЕТ и .ПЯТ выделяется участок программы, который не требуется выводить на листинг. Директива 11БТ МАС, записанная перед именем, которое было указано в директиве .МАСКО, включает в листинг команды, обрамленные директивами МАСВО и ЕХОМАСКО, и помечает их знаком "+". П8.3. Сегмент типа ЕБЕНУ начинается с директивы .ЕНЕС.

В сегменте записываются директивы .РВ, .ИЪ' и .ОКС. Метка является символическим адресом в адресном пространстве ЕЕРКОМ. Реальный адрес вычисляется в процессе ассемблирования. Исходное значение задается с помощью директивы .ОКС, заданной в начале сегмента после директивы .ЕНЕС. В программе могут быть несколько сегментов этого типа, При отсутствии директивы .ОКО в первом из них в качестве исходного принимается нулевой адрес в ЕЕРКОМ. Директива .РВ определяет байт или группу байтов, которые должны быть записаны в ячейки ЕЕРКОМ, начиная с адреса, обозначенного меткой перед директивой .РВ.

Характеристики

Тип файла
DJVU-файл
Размер
3,74 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6390
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее