Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
258 Микроконтроллеры AVR от азов программирования... Новая версия команды работает так же, как предыдущая. Различие только в том, что прочитанная этой командой информация помещается в РОН, имя которого указано в качестве первого параметра. Третья версия команды является модификацией второй. Она тоже имеет два операнда: ♦ первый операнд — это имя регистра, куда помещается прочитан ный байт; ♦ второй операнд всегда равен Z+. От второго варианта третий отличается тем, что сразу после чтения байта происходит автоматическое увеличение содержимого регистровой пары Z на единицу. Данную команду удобно использовать для последо вательного чтения ряда констант из программной памяти. При каждом последующем вызове команда будет читать следующую константу. Первая модификация команды использовалась в старых версиях микроконтроллеров и оставлена для совместимости. В новых микро контроллерах гораздо удобнее пользоваться второй и третьей модифи кациями. .dw _________________________________________________________ Директива описания данных. При помощи этой директивы описыва ются данные, помещаемые в память программ или в энергонезависимую память. Оператор .dw описывает «слова» данных. То есть шестнадцати ричные числа, каждое из которых записывается в память в виде пары байтов. В правой части, сразу после оператора, помещается список чисел через запятую. При трансляции программы эти числа помещаются в про граммную память (или в EEPROM) одно за другим так же, как туда поме щаются команды. В строке 63 программы (листинг 5.15) в программную память поме щается набор коэффициентов деления. Создается своеобразная таблица коэффициентов деления. Адрес начала таблицы соответствует метке tabkd. С точки зрения основной адресации, каждый коэффициент зани мает одну шестнадцатиразрядную ячейку памяти. С точки зрения альтернативной адресации, каждый коэффициент — это два байта данных, записываемых в две соседние ячейки. Причем сначала записывается младший байт, а затем старший. При чтении этих данных используется альтернативная адресация. Если мы будем после довательно читать таблицу, начиная с адреса tabkd*2, мы получим сле дующую цепочку данных: 0х8С, 0x12, 0x84, 0x10, 0хВ8 , ОхОЕ, 0хЕ4 , OxOD, 0x60, ОхОС , 0x36, 0x0В, 0xD2 , 0x09.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==