LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

Неужели сложно сказать что получится, если к rip прибавить смещение. Что за команда станет в результате? rip плюс смещение, что это?

ip(instruction pointer) - это регистр меняемый процессором, показывающий на текущую исполняемую команду.

метка - это просто мнемоника адреса в памяти.

запись адреса (метка+ip) это к ip прибавляется этот адрес как число. чтобы понять зачем адресуют относительно ip надо вспомнить - «позиционно независимый код»:

Позиционно-независимый код - цитата с веба:

За всеми этими разговорами мы чуть было не забыли о третьем способе формирования адреса в программе. Это относительная адресация, когда адрес получается сложением адресного поля команды и адреса самой этой команды – значения счетчика команд. Код, в котором используется только такая адресация, можно загружать с любого адреса без всякой перенастройки. Такой код называется позиционно-независимым (position-independent).

вот в данном случае команда написана в стиле позиц.независимого кода.

у gcc есть опция -fPIC , что генерит Position Independent Code, если оно вам так приспичило.

Исходная версия alysnix, :

Неужели сложно сказать что получится, если к rip прибавить смещение. Что за команда станет в результате? rip плюс смещение, что это?

ip(instruction pointer) - это регистр меняемый процессором, показывающий на текущую исполняемую команду.

метка - это просто мнемоника адреса в памяти.

запись адреса (метка+ip) это к ip прибавляется этот адрес как число. чтобы понять зачем адресуют относительно ip надо вспомнить - «позиционно независимый код»:

Позиционно-независимый код - цитата с веба:

За всеми этими разговорами мы чуть было не забыли о третьем способе формирования адреса в программе. Это относительная адресация, когда адрес получается сложением адресного поля команды и адреса самой этой команды – значения счетчика команд. Код, в котором используется только такая адресация, можно загружать с любого адреса без всякой перенастройки. Такой код называется позиционно-независимым (position-independent).

вот в данном случае команда написана в стиле позиц.независимого кода.