Главная » Просмотр файлов » Кочегаров И.И. Микроконтроллеры AVR. Лабораторный практикум (2012)

Кочегаров И.И. Микроконтроллеры AVR. Лабораторный практикум (2012) (1264221), страница 14

Файл №1264221 Кочегаров И.И. Микроконтроллеры AVR. Лабораторный практикум (2012) (Кочегаров И.И. Микроконтроллеры AVR. Лабораторный практикум (2012)) 14 страницаКочегаров И.И. Микроконтроллеры AVR. Лабораторный практикум (2012) (1264221) страница 142021-07-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Прямая регистровая адресация РОН применяется во всехарифметических и логических командах, а также в некоторых командах работы с битами, так как эти команды выполняются в АЛУ только над содержимым РОН. Команды, вторым операндом которых является константа, могут использовать в качестве первого операндатолько регистры из старшей половины РОН (R16…R31).817Команда415КОПРОН0R009 5415КОПdОперанд7КомандаrdRdR31а)РОН0R00Операнд 1RdОперанд 2RrR31б)Рис. 19. Прямая регистровая адресация одного (а) и двух (б) РОНПри прямой регистровой адресации регистра ввода-выводаоперанд содержится в регистре ввода-вывода, указанном в команде.Адрес регистра ввода-вывода хранится в шести разрядах слова команды (рис.

20, на котором n определяет адрес регистра-источникаили регистра-приемника в РОН). Прямая регистровая адресация регистров ввода-вывода используется в командах чтения IN и записиOUT регистра ввода-вывода, а также в ряде других команд работы срегистрами ввода-вывода.7Команда515КОПnРегистрыввода-вывода000PОперандP63Рис. 20. Прямая регистровая адресация регистра ввода-выводаПримеры использования прямой регистровой адресации:; прямая регистровая адресация одного РОНCLR R1; очистка всех разрядов регистра R1; прямая регистровая адресация двух РОНADD R11, R12; сложение содержимого регистров R11 и R12Для адресации оперативной памяти данных используютсяпять способов адресации: непосредственная, косвенная, косвенная сосмещением, косвенная с предекрементом и косвенная с постинкрементом.1.

При непосредственной адресации оперативной памяти данных операндом является содержимое ячейки ОЗУ, адрес которой ука82зан в команде. Адрес операнда содержится в 16 младших разрядах32-разрядной команды (рис. 21, на котором Rr/Rd определяет адресрегистра-источника или регистра-приемника в РОН). Непосредственная адресация используется в команде LDS (Load Direct from DataSpace) загрузки из ОЗУ и в команде STS (Store Direct to Data Space)загрузки в ОЗУ. Зарезервировать байты в ОЗУ позволяет директива.byte. Для того чтобы на выделенную область памяти можно былоссылаться, директиве .byte должна предшествовать метка.

Директива .byte имеет один параметр – количество выделяемых байт – иможет использоваться только в сегменте данных, определяемом с помощью директивы .dseg (data segment). Задать требуемое размещение выделяемой области памяти позволяет директива .org (origin –смещение). Начало программного сегмента указывается с помощьюдирективы .cseg (code segment).

Директивы .dseg и .cseg неимеют параметров. Выделенные в оперативной памяти данных байтыне инициализируются.7Команда3120 190$000016КОП Rr/RdАдрес15ОЗУОперандАдрес0$FFFFРис. 21. Непосредственная адресация ячейкиоперативной памяти данныхПример использования непосредственной адресации:; непосредственная адресация.dseg; сегмент данных (оперативная памятьданных).org $0065; по адресу $0065cnt1:.byte 1; резервирование 1 байта для cnt1.cseg; программный сегмент (память программ);...LDS R10, cnt1 ; загрузка cnt1 в R10832. При косвенной адресации оперативной памяти данных операндом является содержимое ячейки ОЗУ, адрес которой находится врегистре X, Y или Z (рис.

22). Косвенная адресация используется вкоманде LD (Load Indirect) косвенной загрузки из ОЗУ и команде ST(Store Indirect) косвенной загрузки в ОЗУ.Команда150КОП7ОЗУ$0000Rr/RdОперанд0150АдресАдресРегистр X, Y или Z$FFFFРис. 22. Косвенная адресация оперативной памяти данныхПример использования косвенной адресации:; косвенная адресация.dsegмять данных)cnt1: .byte 1; сегмент данных (оперативная па; резервирование 1 байта для cnt1.cseg; программный сегмент (память программ);...LDI R30, low(cnt1) ; загрузка в R30 младшего байта адресаcnt1LDI R31, high(cnt1) ; загрузка в R31 старшего байта адреса cnt1LD R1, Z; загрузка cnt1 в R1, т.

е. R1 <- (R31:R30)В приведенном примере использованы функции low и high,возвращающие соответственно младший и старший байты выражения (в данном случае – адреса ячейки памяти с символическим именем cnt1).3. При косвенной адресации оперативной памяти данных сосмещением адрес операнда в оперативной памяти данных вычисляется путем прибавления к содержимому регистра Y или Z смещения,указанного в команде. Смещение содержится в шести разрядах словакоманды (рис. 23). Косвенная адресация со смещением используетсяв команде LDD (Load Indirect with Displacement) косвенной загрузкииз ОЗУ со смещением и в команде STD (Store Indirect with Displacement) косвенной загрузки в ОЗУ со смещением.84Команда1565 010nКОП7ОЗУ0$0000aОперанд+15Адрес + a0Адрес$FFFFРегистр Y или ZРис.

23. Косвенная адресация оперативной памяти данныхсо смещениемПример использования косвенной адресации со смещением:; косвенная адресация со смещением.dseg; сегмент данных (оперативная память данных)arr: .byte 5; резервирование 5 байт для массива arr.cseg; программный сегмент (память программ)LDI R30, low(arr) ; загрузка в R30 младшего байта адреса arrLDI R31, high(arr) ; загрузка в R31 старшего байта адреса arr;...LDD R10, Z + 0 ; загрузка первого элемента массива arr в R10LDD R11, Z + 1 ; загрузка второго элемента массива arr в R114. При косвенной адресации оперативной памяти данных спредекрементом (лат. decrementum – уменьшение, убыль) перед выполнением команды содержимое указанного в команде регистра X, Yили Z декрементируется (уменьшается на единицу); декрементированное содержимое регистра X, Y или Z является адресом операнда воперативной памяти данных (рис.

24). Косвенная адресация с предекрементом используется в команде LD косвенной загрузки из ОЗУи команде ST косвенной загрузки в ОЗУ.; косвенная адресация с предекрементомLD R10, -Z; Z <- Z – 1, R10 <- (Z)Команда1515КОПАдрес7n0$000000ОперандРегистр X, Y или Z1ОЗУАдрес – 1$FFFF+Рис.

24. Косвенная адресация оперативной памятиданных с предекрементном855. При косвенной адресации оперативной памяти данныхс постинкрементом (лат. incrementum – увеличение, рост) адресомоперанда в оперативной памяти данных является содержимое регистра X, Y или Z, указанного в команде; после выполнения командысодержимое регистра X, Y или Z инкрементируется, т. е.

увеличивается на единицу (рис. 25). Косвенная адресация с постинкрементомиспользуется в команде LD косвенной загрузки из ОЗУ и команде STкосвенной загрузки в ОЗУ. Например:; косвенная адресация с постинкрементомLD R10, Z+; R10 <- (Z), Z <- Z + 1Команда15КОПn1570ОЗУ0$00000АдресРегистр1ОперандАдресX, Y или Z$FFFF+Рис. 25. Косвенная адресация оперативной памятиданных с постинкрементомДля адресации памяти программ используется непосредственная адресация, косвенная адресация, относительная адресация,адресация константы и адресация константы с постинкрементом.При непосредственной адресации памяти программ выполнение программы продолжается с адреса, указанного в команде(рис.

26; FLASHEND – символическое имя адреса последней ячейкипамяти программ). Непосредственная адресация памяти программиспользуется в командах JMP и CALL.Команда31Память программ16158 7$0000КОПАдресАдрес1500АдресFLASHENDРис. 26. Непосредственная адресация памяти программ86При косвенной адресации памяти программ выполнениепрограммы продолжается с адреса, содержащегося в регистре Z,т.е.

в программный счетчик загружается содержимое регистра Z(рис. 27). Косвенная адресация памяти программ используется в командах IJMP и ICALL.КомандаПамять программ151508 70$0000КОП150АдресАдресРегистр ZFLASHENDРис. 27. Косвенная адресация памяти программПри относительной адресации памяти программ выполнениепрограммы продолжается с адреса (PC + k + 1), где PC – содержимоепрограммного счетчика; k – указанный в команде относительный адрес, который может принимать значения от –2048 до 2047 (рис. 28).Относительная адресация памяти программ используется в командахRJMP и RCALL.Память программКоманда15158 70КОПk1+0$0000PC+k+1Программныйсчётчик (РС)FLASHENDРис.

28. Относительная адресация памяти программ:k – относительный адресПри адресации константы адрес байта константы содержится врегистре Z (рис. 29): старшие 15 разрядов занимает адрес ячейки памяти программ (от 0 до 32 К); состояние младшего разряда (LSB) определяет выбор младшего(LSB = 0) или старшего (LSB = 1) байта ад87ресуемой ячейки памяти. Адресация константы в памяти программиспользуется в командах LPM (Load Program Memory), которая загружает адресованный регистром Z байт в указанный в команде регистр.

Если регистр-приемник не указан (команда используется безоперандов), байт загружается в регистр R0. Команда ELPM (ExtendedLoad Program Memory) служит для загрузки константы из памятипрограмм объемом более 64 К слов. При этом для расширения регистра-указателя Z используется регистр RAMPZ, связанный с регистром Z.Команда15Память программ08 7150$0000КОП151Адрес0АдресLSBLSB = 1Регистр ZLSB = 0FLASHENDРис. 29.

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

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

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