Перейти к содержанию

Ассемблер, опкоды


ttt222

Рекомендуемые сообщения

вопрос к тем кто действительно знает avr  и все их тонкости

пишу на ассемблере, в студии 6.

вот строчка LDI R16,  1,    если посмотреть в Instruction Set Nomenclature то опкод выглядит так 1110 КККК dddd КККК     константа которая заносится в регистр разбита на 2 части, регистры от р16 до р31

значит наша строка должна выглядеть так 1110 0000 0000 0001, регистр р16 имеет значение 0, в хекс это будет как Е001.

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

набираю эту строчку LDI R16,  1, компилирую, в хекс E01D  что соответствует  LDI R17,  13,  если ниже еще раз набрать LDI R16,  1 тут уже компилятор в хекс файле выдаст следующее E001 E03A первое значение уже соответствует действительности, второе нет, и кстати, оно не соответсвует и предыдущему когда строчка была одна, а не две

хотелось бы чтобы кто нибудь прояснил ситуацию, как такое возможно,  и как потом это заливается в мк, и работаем

очевидно что я чтото не понимаю, но ребус какой то сложноватый оказался

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Компилим единственную строчку кода в 4й студии "LDI R16,  1"

Смотрим че у нас хексе:

:020000020000FC
:0200000001E01D
:00000001FF

Нас интересует вторая строка (:0200000001E01D):

: символ с которого начинается любая строка в хексе

02 - количество байт данных, в данном случае 2 (что логично мы ведь скомпилили одну команду и она двухбайтовая)

следующие 0000 - начальный адрес с которого данные будут записаны в МК

следующие 00 - поле команды (программатор по нему распознает функциональное назначение строки, в данном случае 00 указывает что в строке находятся данные для записи в память МК.

А вот теперь идут непосредственно данные 01E0 - точно два байта как указывалось в начале

а что такое оставшийся байт 1D ? - а это контрольная сумма,.

И вот только не надо меня спрашивать почему 01E0 а не E001, ибо я пошлю в гугл читать какой байт записивается первым а какой вторым, старший или младший.

Нет никакой заслуги тому, кто даёт золото, думая, что даёт камень (Будда)

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...