Задать вопрос
@kyklaed

Как происходит адресация в памяти?

Привет, вопрос наверняка элементарный, например адрес в памяти 0х40 как понять что это за адрес ?
и выражение с адресом
x =0 , y = 0
0х40 * y + x = 0 \
но например если
x =8 , y = 0
0х40 * y + x = ??

как правильно это считать ?
  • Вопрос задан
  • 536 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик на C++
    12 месяцев
    Далее
  • Skillbox
    Профессия Разработчик С++
 с нуля + ИИ
    7 месяцев
    Далее
  • Яндекс Практикум
    Разработчик C++ расширенный
    12 месяцев
    Далее
Решения вопроса 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
1) это нулевые адреса. Нужно смотреть, что у вас в документации по этим адресам. Возможно, таблица прерываний
2) ваша формула смещает адреса по 64 байта, начиная с нулевого. Шестьнадцатеричное 0x40 = 64 десятичному!
3) в зависимости от контроллера, может быть адресация прямая, а может быть и через трансляцию через блок MMU, тогда нужно смотреть, в какой момент и с какими настройками трансляции адресов работает MMU
4) всегда нужно помнить о типе разрядности обращения. В классическом случае обращение *unsigned char и *unsigned int или *unsigned short могут иметь совершенно разные эффекты. Смотреть документацию, обычно пишут тип регистра и его разрядность!
5) некоторые контроллеры имеют как полноценные битовые регистры, так и битовые поля, отмапированные, для удобства программиста на адреса. Например 32-х разрядный регистр может иметь в памяти 32 8-битных регистра мапированные на биты основного регистра.

В общем, в любом случае курить документацию.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Xilian
Программист 1С, сетевые технологии, SQL
>>как понять что это за адрес
>>как правильно это считать ?

Адрес он просто адрес, просто целое число означающее смещение от начала области адресации. 0х - значит в восьмеричной системе счисления, в твоем случае это указатель на 4 байт от начала. Его не надо считать, его надо знать.

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

Надо курить документацию на конкретную модель микроконтроллера.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Альфа-Банк Москва
от 200 000 до 350 000 ₽
Private-Team Санкт-Петербург
от 3 000 $
ИНКОР Москва
от 100 000 до 200 000 ₽