Ich bin neu in der Assemblersprache mit dem Raspberry Pi. Ich habe versucht, dieses einfache Programm auf einem Raspberry Pi 3 (ARM 8086) zu starten. Es verursacht keinen Fehler, aber wenn ich versuche, das Ergebnis in einem Terminal nach dem Kompilieren und Ausführen von as _o example.o example.s
, gcc _o example examle.s
und ./example
zu sehen. das Ausführungsergebnis ist Segmentierungsfehler, können Sie mir bitte helfen?einfache Codes in Assemblersprache
.align 2
.text
.global main
main:
stmfd r13!, {r14}
mov r0,#1
bl print
mov r0,#2
bl print
mov r0,#3
bl print
ldmfd r13!,{pc} @ return to OS
print:
stmfd r13!, {r0-r3,r12,r14}
mov r1,r0
ldr r0, =num_str
bl printf
ldmfd r13!, {r0-r3,r12,pc}
.data
.align 2
num_str:
.asciz “%d\n”
.end
_ "8086" _ Huh? Außerdem haben Sie eine Menge Tippfehler in den Befehlen, die Sie sagen ('_o',' exclle.s', 'first', die nicht mit' example' übereinstimmen). – Michael
@Michael, du hast recht, vielen Dank, dass du es bemerkt hast, ich habe es zum Beispiel geändert, das Ergebnis ist Segmentierungsfehler. – rezan
Dieser Code funktioniert ganz gut für mich, vorausgesetzt, die "" "Anführungszeichen werden durch syntaktisch korrekte" "" ersetzt - ich nehme an, dass diese nur ein Artefakt des Postings sind und nicht in Ihrem eigentlichen Code, weil sie das machen Assembler werfen einen Fehler, den Sie sagen, passiert nicht. – Notlikethat