Лекция 324. Atmega8: Анатомия команд

Описано множество часто используемых команд контроллера. Они классифицированы по коду команды для привязки к предыдущей лекции. Кратко указаны выполняемые действия и влияние на биты признаков. Описанные команды позволяют написать большинство программ на ассемблере. Показано распределение битов внутри команды на код, источник и приемник данных. Список всех лекций на сайте автора в описании канала.

Пікірлер: 41

  • @ProgrammerForever
    @ProgrammerForeverАй бұрын

    Сколько раз убеждался в том, что если объяснить зачем оно так, а не просто декларировать - то это понимается моментально. В данном случае сразу понятно почему некоторые команды работают только с некоторыми регистрами.

  • @transformer7171
    @transformer71717 жыл бұрын

    Спасибо вам за лекцию. Продолжайте пожалуйста.

  • @user-cu6tl7hg7u
    @user-cu6tl7hg7u7 жыл бұрын

    А где можно эту таблицу скачать?

  • @user-3461
    @user-34612 жыл бұрын

    Анатолий Борисович, поясните, пожалуйста, как работают эти команды на практике в АЛУ из лекции 323. Если эти команды появляются на выходе памяти команд, то значит попадают на вход дешифратора. Дешифратор, по идее, двоичный код на входе должен перевести в десятичный на выходе, т.е. выдать всего один бит. Но на мультиплексор и демультиплексор явно подается комбинация из множества битов. Так же, непонятно как дешифратор обрабатывает команды, содержащие константы (данные). Было бы здорово взять несколько команд из таблицы лекции 324 и отследить их прохождение на принципиальной схеме АЛУ лекции 323 прямо от памяти команд до РОН. Заранее спасибо.

  • @anastasltvin4754
    @anastasltvin47546 жыл бұрын

    здорово

  • @alekskapitonov2738
    @alekskapitonov27383 жыл бұрын

    СПАСИБО.

  • @cscage
    @cscage7 жыл бұрын

    Замечательная лекция!

  • @allallall2321

    @allallall2321

    2 жыл бұрын

    очень много ошибок уроки ничего не дадут в изучении, утопия

  • @cscage

    @cscage

    2 жыл бұрын

    @@allallall2321 а именно? Не могли бы вы их перечислить?

  • @eurosetvk
    @eurosetvk7 жыл бұрын

    Отличная лекция. Теперь понятно, как реализуется блок условия. Вычисляем выражение, далее если флаг ноль, то одной командой вылетаем на Else. Я же думал, что это реализовано иначе.

  • @vlcdn

    @vlcdn

    7 жыл бұрын

    У ARM есть ещё один занятный способ. Для любой инструкции можно указать код условия. Если условие выполняется, то инструкция срабатывает, если нет, то игнорируется. Классическое ветвление там, конечно, тоже есть.

  • @Saironsmv
    @Saironsmv5 жыл бұрын

    Спасибо большое. Который раз убеждаюсь в правдивости фразы, что ассемблер нельзя выучить - только понять. Только на этой лекции понял смысл ограничений наложенных на некоторые команды в доступе к регистрам РОН и работе с константами.

  • @alinavolkova337

    @alinavolkova337

    5 жыл бұрын

    Ага))) dihalt РОН 0...15 просто назвал "какие то не полноценные", а тут всё ясно!

  • @user-im5ok5px2p
    @user-im5ok5px2p3 жыл бұрын

    Надеюсь, в ходе обучения пойму, что значат єтие квадратики

  • @timichpyatigorsk9093
    @timichpyatigorsk90937 жыл бұрын

    Ого! Я заметил ошибку в таблице)).

  • @user-xc9cu3sy6w
    @user-xc9cu3sy6w4 жыл бұрын

    Добрый вечер, подскажите пожалуйста где можно приобрести полный курс ваших лекций, а то у меня не всегда имеется интернет !

  • @Zefar91

    @Zefar91

    4 жыл бұрын

    Пожалуйста, зайдите в описание моего канала. Там есть ссылка на мой сайт. Перейдите на него и скачайте свободно все лекции( Новые я добавляю туда с некоторой задержкой )

  • @Zefar91

    @Zefar91

    2 жыл бұрын

    Зайдите на мой сайт (см описание канала). Там в разделе Электроника есть ссылки на эти лекции. Когда будет интернет скачайте их всех. Это бесплатно.

  • @TheNewWorld823

    @TheNewWorld823

    Жыл бұрын

    @@Zefar91 Спасибо огромное!!!

  • @sense3247
    @sense32477 жыл бұрын

    И откуда вы берете эту информацию? Неужели в даташите всё это есть? Я не видел такой информации. А может плохо смотрел?)

  • @vlcdn

    @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

  • @user-pz8fw1ik4f
    @user-pz8fw1ik4f7 жыл бұрын

    Здравствуйте, я очень начинающий, подскажите пожалуйста а что такое *роны*-звучит примерно на 3:52 минуте, этой лекции.Спасибо.

  • @Zefar91

    @Zefar91

    7 жыл бұрын

    РОН - регистр общего назначения, для таких регистров имеется большое множество команд процессора.

  • @user-pz8fw1ik4f

    @user-pz8fw1ik4f

    7 жыл бұрын

    Спасибо огромное, извиняюсь ума не хватило додуматься что это сокращение.А вообще все просмотренные ваши лекции много полезного для меня.

  • @vlcdn
    @vlcdn7 жыл бұрын

    Такое, как вы выразились, «безобразно» большое число команд конечно же осмысленно. Сами посудите: проверки флагов на Set/Cleared - уже 10 команд. Проверка, включены ли прерывания - ещё 2. Остальные - проверки на равенство, больше/меньше и знак. Всё отлично! Это же не x86 тут команд на две странички всего. Хотя конечно, ассемблер MIPS или MSP430 ещё проще. Кстати, для радиолюбителей, на мой взгляд, MSP430 и STM8 поприятнее будет для всякой мелочёвки. А для чего покрупнее - STM32. Единственный минус - надо заказывать, а то по непонятным причинам радиомагазины в основном на AVR ориентированы.

  • @eurosetvk

    @eurosetvk

    7 жыл бұрын

    По понятным. Ардуино ориентировано на AVR.

  • @vlcdn

    @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. Очень удобно. Есть, конечно, неприятные моменты вроде фьюзов, но в целом неплохое семейство. Я просто за разнообразие и здоровую конкуренцию. :)

  • @ufoufo2908
    @ufoufo29087 жыл бұрын

    В фильме "Спектральный анализ" довольно хорошо показано что могут сотворить молдавские радиотехники :). Ясно теперь чем в Рыбницком филиале занимаются :).

  • @stepansml6713
    @stepansml6713 Жыл бұрын

    А где лекции с 1 до 232? Начало есть?

  • @ibrag2012
    @ibrag20126 жыл бұрын

    Послухав через ностальгію: перша мова програмування була асемблер)

  • @user-im5ok5px2p

    @user-im5ok5px2p

    3 жыл бұрын

    Перша мова була якась двійкова мова, а не збирач. Збирач це вже досконала мова кінцевих років

  • @world093
    @world0933 жыл бұрын

    А где можно скачать

  • @user-xc9cu3sy6w

    @user-xc9cu3sy6w

    2 жыл бұрын

    Эффективнее будет переписать из ролика, усвоиться лучше!

  • @MsKhch
    @MsKhch5 жыл бұрын

    Вот на первый взгляд все понятно, разжевано и все такое... Но!!! Некоторые команды занимают старшие 4 бита. Некоторые 5. Есть и 9. Так каким образом процессор понимает, что эти биты команда, а не часть данных или номера регистра, первые 4 бита понятно, вроде универсально. Было бы понятно, если бы все было по 9 бит, допустим. Можно аппаратно сделать так, чтобы эта часть читалось только как команда. Но они имеют разное количество бит.

  • @keycimag3316

    @keycimag3316

    5 жыл бұрын

    Да. Тоже интересно узнать.

  • @mikhailanisimov2160

    @mikhailanisimov2160

    5 жыл бұрын

    Прочитав первые 4 бита можно понять к какой группе относится команда и решить если следующие биты определяют код команды или операнд. В отличие от программы, аппаратно процессор посчитает всё что возможно параллельно, нужно только выбрать правильный результат в конце =)

  • @TGodessa
    @TGodessa7 жыл бұрын

    это ассемблер или С?

  • @TGodessa

    @TGodessa

    7 жыл бұрын

    Спасибо, понял досмотрев.

  • @SuperLeoSG
    @SuperLeoSG6 жыл бұрын

    Все прекрасно, есть пара уточнений: "SUB" конечно же не "суб", а "сэб" от полного subtraction, также SWAP читается как "своп"

  • @MDunaev

    @MDunaev

    5 жыл бұрын

    Леонид, а Вы зря предираетесь. Нет необходимости искать англопроизношение комманд. Они же написаны не по-английски, а латинскими буквами. Вы же, надеюсь, не из тех невежд, которые считают, что существуют английские буквы.

  • @o.tatarinov7476
    @o.tatarinov74762 жыл бұрын

    Nob na" Cancel pomenyatti