реклама на сайте
подробности

 
 
> gcc asm, как взять адрес переменной в другой секции
vova7890
сообщение Feb 27 2012, 11:31
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 19-11-10
Пользователь №: 61 026



Код
          .section    section1, "ax", %progbits
          .arm
          ldr     pc, var

           .section    section2, "ax", %progbits
var:     .int    myfunction


Error: internal_relocation (type: OFFSET_IMM) not fixed up

Собственно чяднт, и как это умудряется делать иар?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ReAl
сообщение Feb 27 2012, 18:40
Сообщение #2


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(vova7890 @ Feb 27 2012, 13:31) *
Собственно чяднт, и как это умудряется делать иар?

Если я что-то в чём-то, то
Код
          .section    section1, "ax", %progbits
          .arm
          ldr     pc, =myfunction
Что эквивалентно
Код
          .section    section1, "ax", %progbits
          .arm
          ldr     pc, var
                  ...
var:     .int    myfunction ; должно лежать недалеко от команды ldr => уж точно не в другой секции

А если нужен адрес именно переменной, а не той функции, то
Код
          .section    section1, "ax", %progbits
          .arm
          ldr     r0, =var; само создаст неподалёку ячейку с .int myfunction

           .section    section2, "ax", %progbits
var:     .int    myfunction


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 06:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01397 секунд с 7
ELECTRONIX ©2004-2016