2016-05-30 6 views
0

Я очень новичок в программировании на «низком уровне», и на самом деле я просто перебираю какой-то код в затмении. В «Разборном представлении» внутри eclipse первый столбец представляет адрес памяти. Это выглядит следующим образом:Различные виды представления физической памяти?

000936fc: E5DCC000 LDRB   R12, [R12] 
00093700: E35C0000 CMP    R12, #0 

Таким образом, «фиктивный» вопрос: Я знаю только представление памяти, как таким образом:

0x5600000: 

0x825ffff: 

Итак, адрес памяти в первом примере, то же самое, что и следующее? :

0x0936fc 
0x093700 

ответ

1

Существует много толкований вашего вопроса. Самое простое: «Почему эти адреса короче». Ответ: они равны 0 для длины слова счетчика программ.

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

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