История изменений
Исправление bigbit, (текущая версия) :
Насколько я знаю, в AMD64 нельзя просто так взять и обратиться по 64-битовому смещению:
mov eax, [absolue_64_bit_address]
Точнее написать-то ты такую команду можешь, но ассемблер автоматически переведет ее в адресацию относительно RIP. Что ты и видишь в листинге. Если ты посмотришь, как эта же последовательность байт дизассемблируется другими дизассемблерами (IDA, HIEW), то скорее всего, никакого RIP ты в команде не найдешь - они автоматически преобразуют ее в абсолютное смещение.
Так что все только через мумба-юмбу.
Ну а смысл - например, релоки не нужны.
Исправление bigbit, :
Насколько я знаю, в AMD64 нельзя просто так взять и обратиться по 64-битовому смещению:
mov eax, [absolue_64_bit_address]
Точнее написать-то ты такую команду можешь, но ассемблер автоматически переведет ее в адресацию относительно RIP. Что ты и видишь в листинге. Если ты посмотришь, как эта же последовательность байт дизассемблируется другими дизассемблерами (IDA, HIEW), то скорее всего, никакого RIP ты в команде не найдешь - они автоматически преобразуют ее в абсолютное смещение относительно RIP.
Так что все только через мумба-юмбу.
Ну а смысл - например, релоки не нужны.
Исходная версия bigbit, :
Насколько я знаю, в AMD64 нельзя просто так взять и обратиться по 64-битовому смещению:
mov eax, [absolue_address]
Точнее написать-то ты такую команду можешь, но ассемблер автоматически переведет ее в адресацию относительно RIP. Что ты и видишь в листинге. Если ты посмотришь, как эта же последовательность байт дизассемблируется другими дизассемблерами (IDA, HIEW), то скорее всего, никакого RIP ты в команде не найдешь - они автоматически преобразуют ее в абсолютное смещение относительно RIP.
Так что все только через мумба-юмбу.
Ну а смысл - например, релоки не нужны.