Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

ГЛ А В А 7 С истема команд AVR Познакомившись в предыдущей главе с простейшими программами для АVR, мы теперь попробуем рассмотреть систему команд АVR в целом, чтобы понять, какие возможности нам предоставляются. Всего для АVR насчитывается от 90 до 1 3 3 команд (в зависимости от контроллера), и их подробное описание в офици­ альном РDF-справочнике [8] занимает 1 60 страниц. Потому все команды, которые к тому же часто взаимозаменяемы, мы описывать не станем, для этого существуют справочники. С некоторыми из тех команд, что выпадут из рассмотрения в этой главе, мы познакомимся по ходу дела в дальнейшем. Очень рекомендуется всегда иметь перед собой полный справочник по командам - лучше всего указанный официальный с подробными описаниями (в формате PDF или онлайн [8]), а не про­ сто перечень команд, который приводится в конце каждого <щаташита» на кон­ кретные контроллеры. К тому же, в некоторых последних описаниях, выпущенных уже под лейблом Microchip, к составлению этих перечней отнеслись как-то " .легко­ мысленно, если не сказать жестче. Обе версии официального справочника имеют очень удобную навигацию по командам, а отсутствие некоторых редких команд (в РDF-версии их всего 1 28) не должно вас смущать, потому что они относятся к тем контроллерам, которые вы никогда на ассемблере программировать не будете. В книгах Евстифеева [ 6, 7] есть перевод на русский подробных описаний команд из официального справочника и, кроме того, удобные сводные таблицы команд, сгруппированных по выполняемым функциям с краткими комментариями на рус­ ском языке к их использованию. Но перевод этот все-таки несколько сокращенный, и англоязычный оригинал остается основным пособием: ЗАМЕТКИ НА ПОЛЯХ Как и в отношении главы 2, я уверен , что при первом прочтении вы из материала этой главы мало что усвоите. Но я все-таки советую прочесть ее внимательно в качестве занимательного чтения перед сном , а потом регулярно сюда возвращаться , когда вы в практических действиях столкнетесь с той или иной непонятной командой , - так ма­ териал лучше запомнится . Обращу также ваше внимание на то, что большинство ко­ манд устанавливают те или иные флаги в регистре SREG, что позволяет их применять для сокращения программ в нестандартном качестве. Примером может служит коман­ да уменьшения на единицу ctec, которую мы в главе б использовали одновременно в качестве детектора достижения нуля. Другой пример вы встретите в главе 9, где

RkJQdWJsaXNoZXIy MTExODQxMg==