У меня есть некоторый простой статический массив, определенный в c-файле ( const int data_input [1024]; ), и мне нужен доступ к нему из моего кода сборки.Какой правильный способ сделать это?
До сих пор я делал это следующим образом:
.global data_input
data_input_ptr:
.word data_input
my_function:
adr r1, data_input_ptr
bx lr
AFAIK, adr is псевдо-оператор стоит ldr r1, = data_input_ptr иличто-то в этом роде.
Мне кажется, что то, что я делаю, не совсем корректно: во-первых, в этом случае adr r1 data_input может напрямую использовать относительную адресацию pc, если во время соединения обнаружит, что это возможно.Другая проблема связана с PIC: что если код должен быть независимым от позиции.Как тогда это работает, если значение data_input_ptr должно быть инициализировано загрузчиком (я прав в этом?)