0
При запуске моего кода я получаю ошибку при неправильной инструкции. Ошибок компиляции нет, но даже когда я отлаживаю, это просто дает мне эту ошибку.Код ARM, выдающий незаконную инструкцию
Вот код, который я использую до сих пор:
.global .fopen
.global .fclose
.global getc
.data
fin: .word 0x00
r: .asciz "r"
format: .asciz "%d\n"
.global main
main:
PUSH {R1}
LDR R0, [R1, #0x04]
LDR R1, =r
BL fopen
LDR R1, =fin
STR R0, [R1]
POP {R1}
endl:
LDR R1, =fin
LDR R0, [R1]
BL fclose
_exit:
MOV R7, #1
MOV R0, #0
SWI 0
Возможно, вы находитесь в разумной системе, где разделы .data получают помеченные как no-execute ... – Notlikethat
@ Не обращайте внимания, даже когда я удаляю .data, он не работает и дает ту же ошибку. Я использую Raspberry Pi – madcrazydrumma
. Что подсказывает @Notlikethat, так это то, что вам нужно написать '.text' перед' main: ', чтобы указать ассемблеру/компоновщику/загрузчику, что следующее должно интерпретироваться как исполняемый код. – EOF