Как в system V amd64 abi поместить метку в регистр?

Если я хочу поместить метку "L0" в регистр %rbx. Например: movq $L0,%rbx;. Компилятор ругается:
/usr/bin/ld: /home/mm/function.o: relocation R_X86_64_32S against `.text' can not be used when making a shared object;
Я так понимаю где то в данных ее нужно обозначить, как это сделать?
  • Вопрос задан
  • 41 просмотр
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
http://dilbert.com/strip/1998-08-24
я хочу поместить метку "L0" в регистр %rbx.
relocation R_X86_64_32S against `.text' can not be used when making a shared object

Если это локальная метка -- то по смещению от PC:
leaq L0(%rip), %rbx
Если это метка из другой динамической библиотеки -- то через plt:
movq L0@gotpcrel(%rip), %rbx
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Chenii Санкт-Петербург
от 1 500 до 3 500 usd.
НеоБИТ Санкт-Петербург
от 90 000 до 150 000 руб.
CSort Барнаул
от 40 000 до 90 000 руб.
27 июн. 2019, в 01:26
50000 руб./за проект
27 июн. 2019, в 00:27
250000 руб./за проект