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

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

Комментарии • 41

  • @МихаилДу-п4ш
    @МихаилДу-п4ш 7 лет назад +20

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

  • @eurosetvk
    @eurosetvk 7 лет назад +2

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

    • @vlcdn
      @vlcdn 7 лет назад

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

  • @user-3461
    @user-3461 2 года назад +4

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

  • @transformer7171
    @transformer7171 7 лет назад +3

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

  • @Крщенебудуказати
    @Крщенебудуказати 3 года назад +1

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

  • @ProgrammerForever
    @ProgrammerForever 4 месяца назад

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

  • @timichpyatigorsk9093
    @timichpyatigorsk9093 7 лет назад +1

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

  • @ВикторДунаевский-п2ш
    @ВикторДунаевский-п2ш 4 года назад +3

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

    • @Zefar91
      @Zefar91  4 года назад +5

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

    • @Zefar91
      @Zefar91  2 года назад +2

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

    • @TheNewWorld823
      @TheNewWorld823 Год назад

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

  • @ibrag2012
    @ibrag2012 6 лет назад +1

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

    • @Крщенебудуказати
      @Крщенебудуказати 3 года назад

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

  • @sense3247
    @sense3247 7 лет назад +1

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

    • @vlcdn
      @vlcdn 7 лет назад +6

      Конечно, есть. Откуда же ещё могут взяться такие сведения?
      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

  • @stepansml6713
    @stepansml6713 Год назад

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

  • @anastasltvin4754
    @anastasltvin4754 6 лет назад +1

    здорово

  • @o.tatarinov7476
    @o.tatarinov7476 2 года назад

    Nob na" Cancel pomenyatti

  • @MsKhch
    @MsKhch 6 лет назад

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

    • @keycimag3316
      @keycimag3316 6 лет назад

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

    • @mikhailanisimov2160
      @mikhailanisimov2160 6 лет назад +2

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

  • @alekskapitonov2738
    @alekskapitonov2738 3 года назад

    СПАСИБО.

  • @vlcdn
    @vlcdn 7 лет назад

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

    • @eurosetvk
      @eurosetvk 7 лет назад +2

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

    • @vlcdn
      @vlcdn 7 лет назад +6

      Да не, это задолго до Ардуино сложилось. Эта платформа не так давно и появилась. Вообще, раньше такое однообразие в самом деле было оправданным.
      - Интернет не так развит был, а книжки можно было только по 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. Очень удобно. Есть, конечно, неприятные моменты вроде фьюзов, но в целом неплохое семейство. Я просто за разнообразие и здоровую конкуренцию. :)

  • @кожевникедвард
    @кожевникедвард 7 лет назад

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

    • @Zefar91
      @Zefar91  7 лет назад +6

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

    • @кожевникедвард
      @кожевникедвард 7 лет назад +3

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

  • @world093
    @world093 3 года назад

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

  • @Saironsmv
    @Saironsmv 5 лет назад +2

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

    • @alinavolkova337
      @alinavolkova337 5 лет назад

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

  • @ufoufo2908
    @ufoufo2908 7 лет назад

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

  • @cscage
    @cscage 7 лет назад +1

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

    • @allallall2321
      @allallall2321 2 года назад +1

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

    • @cscage
      @cscage 2 года назад

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

  • @TGodessa
    @TGodessa 7 лет назад

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

    • @TGodessa
      @TGodessa 7 лет назад

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

  • @SuperLeoSG
    @SuperLeoSG 6 лет назад +1

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

    • @MDunaev
      @MDunaev 5 лет назад +4

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