@kyklaed

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

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

как правильно это считать ?
  • Вопрос задан
  • 319 просмотров
Решения вопроса 1
leahch
@leahch
3Д специалист. Долго, Дорого, Дерьмово.
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 байт от начала. Его не надо считать, его надо знать.

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

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

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

Войти через центр авторизации
Похожие вопросы