Согласно http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0056d/Cihcciij.html , если мой ARM код сборки необходимо получить доступ к глобальной переменной С именем globvar
, я должен использовать import
и load
инструкции так:ARM доступ сборки к C глобальной переменной
AREA globals,CODE,READONLY
EXPORT asmsubroutine
IMPORT globvar
asmsubroutine
LDR r1, =globvar ; read address of globvar into
; r1 from literal pool
LDR r0, [r1]
ADD r0, r0, #2
STR r0, [r1]
MOV pc, lr
END
, но когда Я использую его в своем коде, есть ошибка как "bad instruction
import globvar '". Я использую компилятор armv7-android-gcc. Я также искал аналогичную проблему на этом форуме, но я не получил полезного результата, поэтому может кто-нибудь помочь мне в этом? Большое спасибо.
Не используется ключевое слово 'extern'? –
У вас на самом деле есть переменная с именем 'globvar'? Где оно живет? –
Вам не нужна никакая директива «ИМПОРТ». Просто используйте имя глобального. BTW используемый вами синтаксис (до метки имени функции) не похож на правильный синтаксис ассемблера, который нужно передать в 'as'. –