Лекция 324. Atmega8: Анатомия команд
Описано множество часто используемых команд контроллера. Они классифицированы по коду команды для привязки к предыдущей лекции. Кратко указаны выполняемые действия и влияние на биты признаков. Описанные команды позволяют написать большинство программ на ассемблере. Показано распределение битов внутри команды на код, источник и приемник данных. Список всех лекций на сайте автора в описании канала.
Пікірлер: 41
Сколько раз убеждался в том, что если объяснить зачем оно так, а не просто декларировать - то это понимается моментально. В данном случае сразу понятно почему некоторые команды работают только с некоторыми регистрами.
Спасибо вам за лекцию. Продолжайте пожалуйста.
А где можно эту таблицу скачать?
Анатолий Борисович, поясните, пожалуйста, как работают эти команды на практике в АЛУ из лекции 323. Если эти команды появляются на выходе памяти команд, то значит попадают на вход дешифратора. Дешифратор, по идее, двоичный код на входе должен перевести в десятичный на выходе, т.е. выдать всего один бит. Но на мультиплексор и демультиплексор явно подается комбинация из множества битов. Так же, непонятно как дешифратор обрабатывает команды, содержащие константы (данные). Было бы здорово взять несколько команд из таблицы лекции 324 и отследить их прохождение на принципиальной схеме АЛУ лекции 323 прямо от памяти команд до РОН. Заранее спасибо.
здорово
СПАСИБО.
Замечательная лекция!
@allallall2321
2 жыл бұрын
очень много ошибок уроки ничего не дадут в изучении, утопия
@cscage
2 жыл бұрын
@@allallall2321 а именно? Не могли бы вы их перечислить?
Отличная лекция. Теперь понятно, как реализуется блок условия. Вычисляем выражение, далее если флаг ноль, то одной командой вылетаем на Else. Я же думал, что это реализовано иначе.
@vlcdn
7 жыл бұрын
У ARM есть ещё один занятный способ. Для любой инструкции можно указать код условия. Если условие выполняется, то инструкция срабатывает, если нет, то игнорируется. Классическое ветвление там, конечно, тоже есть.
Спасибо большое. Который раз убеждаюсь в правдивости фразы, что ассемблер нельзя выучить - только понять. Только на этой лекции понял смысл ограничений наложенных на некоторые команды в доступе к регистрам РОН и работе с константами.
@alinavolkova337
5 жыл бұрын
Ага))) dihalt РОН 0...15 просто назвал "какие то не полноценные", а тут всё ясно!
Надеюсь, в ходе обучения пойму, что значат єтие квадратики
Ого! Я заметил ошибку в таблице)).
Добрый вечер, подскажите пожалуйста где можно приобрести полный курс ваших лекций, а то у меня не всегда имеется интернет !
@Zefar91
4 жыл бұрын
Пожалуйста, зайдите в описание моего канала. Там есть ссылка на мой сайт. Перейдите на него и скачайте свободно все лекции( Новые я добавляю туда с некоторой задержкой )
@Zefar91
2 жыл бұрын
Зайдите на мой сайт (см описание канала). Там в разделе Электроника есть ссылки на эти лекции. Когда будет интернет скачайте их всех. Это бесплатно.
@TheNewWorld823
Жыл бұрын
@@Zefar91 Спасибо огромное!!!
И откуда вы берете эту информацию? Неужели в даташите всё это есть? Я не видел такой информации. А может плохо смотрел?)
@vlcdn
7 жыл бұрын
Конечно, есть. Откуда же ещё могут взяться такие сведения? www.atmel.com/Images/Atmel-2486-8-bit-AVR-microcontroller-ATmega8_L_datasheet.pdf - см. раздел «Instruction Set Summary». Если нужны подробности вроде опкодов (которые вообще не нужны для программирования) - www.atmel.com/images/Atmel-0856-AVR-Instruction-Set-Manual.pdf
Здравствуйте, я очень начинающий, подскажите пожалуйста а что такое *роны*-звучит примерно на 3:52 минуте, этой лекции.Спасибо.
@Zefar91
7 жыл бұрын
РОН - регистр общего назначения, для таких регистров имеется большое множество команд процессора.
@user-pz8fw1ik4f
7 жыл бұрын
Спасибо огромное, извиняюсь ума не хватило додуматься что это сокращение.А вообще все просмотренные ваши лекции много полезного для меня.
Такое, как вы выразились, «безобразно» большое число команд конечно же осмысленно. Сами посудите: проверки флагов на Set/Cleared - уже 10 команд. Проверка, включены ли прерывания - ещё 2. Остальные - проверки на равенство, больше/меньше и знак. Всё отлично! Это же не x86 тут команд на две странички всего. Хотя конечно, ассемблер MIPS или MSP430 ещё проще. Кстати, для радиолюбителей, на мой взгляд, MSP430 и STM8 поприятнее будет для всякой мелочёвки. А для чего покрупнее - STM32. Единственный минус - надо заказывать, а то по непонятным причинам радиомагазины в основном на AVR ориентированы.
@eurosetvk
7 жыл бұрын
По понятным. Ардуино ориентировано на AVR.
@vlcdn
7 жыл бұрын
Да не, это задолго до Ардуино сложилось. Эта платформа не так давно и появилась. Вообще, раньше такое однообразие в самом деле было оправданным. - Интернет не так развит был, а книжки можно было только по AVR и PIC, да и в «Радио» про них писали. Сейчас даташиты можно практически на всё найти. - AVR были в DIP-корпусах и можно было легко платы рисовать лаком для ногтей. Сейчас, когда у многих есть лазерные принтеры, можно ЛУТом достаточно легко делать платы с дорожками 0,2 мм в домашних условиях. Корпуса SOIC и LQFP паяются обычным паяльником. - Ассортимент был поменьше. Сейчас по цене Atmega8 можно купить STM32F103C8T6, у которой внутри 32-битное ядро ARM Cortex-M3, больше памяти, тактовая частота 72 МГц, куча периферии, поддержка USB. И 48 ног, что не может не радовать. - AVR можно было программировать по 5 проводкам, воткнутым в LPT. Сейчас всё равно LPT отмирает и есть не у всех, а тот же USB ASP стоит пару долларов. Для STM32 программатор STLink-v2 за те же деньги позволяет не только программировать, но и отлаживать код. Да и Ардуино сейчас на ARM переходит. В общем, тут дело в консервативности скорее всего. Не то, чтобы AVR плохие. Наоборот. Я вот для всякой мелочи закупил себе горсть Attiny13A в 8-ногом SOIC. Очень удобно. Есть, конечно, неприятные моменты вроде фьюзов, но в целом неплохое семейство. Я просто за разнообразие и здоровую конкуренцию. :)
В фильме "Спектральный анализ" довольно хорошо показано что могут сотворить молдавские радиотехники :). Ясно теперь чем в Рыбницком филиале занимаются :).
А где лекции с 1 до 232? Начало есть?
Послухав через ностальгію: перша мова програмування була асемблер)
@user-im5ok5px2p
3 жыл бұрын
Перша мова була якась двійкова мова, а не збирач. Збирач це вже досконала мова кінцевих років
А где можно скачать
@user-xc9cu3sy6w
2 жыл бұрын
Эффективнее будет переписать из ролика, усвоиться лучше!
Вот на первый взгляд все понятно, разжевано и все такое... Но!!! Некоторые команды занимают старшие 4 бита. Некоторые 5. Есть и 9. Так каким образом процессор понимает, что эти биты команда, а не часть данных или номера регистра, первые 4 бита понятно, вроде универсально. Было бы понятно, если бы все было по 9 бит, допустим. Можно аппаратно сделать так, чтобы эта часть читалось только как команда. Но они имеют разное количество бит.
@keycimag3316
5 жыл бұрын
Да. Тоже интересно узнать.
@mikhailanisimov2160
5 жыл бұрын
Прочитав первые 4 бита можно понять к какой группе относится команда и решить если следующие биты определяют код команды или операнд. В отличие от программы, аппаратно процессор посчитает всё что возможно параллельно, нужно только выбрать правильный результат в конце =)
это ассемблер или С?
@TGodessa
7 жыл бұрын
Спасибо, понял досмотрев.
Все прекрасно, есть пара уточнений: "SUB" конечно же не "суб", а "сэб" от полного subtraction, также SWAP читается как "своп"
@MDunaev
5 жыл бұрын
Леонид, а Вы зря предираетесь. Нет необходимости искать англопроизношение комманд. Они же написаны не по-английски, а латинскими буквами. Вы же, надеюсь, не из тех невежд, которые считают, что существуют английские буквы.
Nob na" Cancel pomenyatti