История изменений
Исправление 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).
вот в данном случае команда написана в стиле позиц.независимого кода.