Raspberry Pi'yi kullanarak montaj diline yeniyim. Bu basit programı Raspberry Pi 3 (ARM 8086) üzerinde çalıştırmayı denedim. Hataya neden olmaz, ancak as _o example.o example.s
, gcc _o example examle.s
ve ./example
'u derledikten ve çalıştırdıktan sonra sonucu bir terminalde görmeye çalıştığımda. yürütme sonucu segmentasyon hatasıdır, lütfen bana yardımcı olabilir misiniz?Montaj dilinde basit kodlar
.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? Ayrıca, kullandığınızı söylediğiniz komutlarda bir takım yazım hataları da vardır ('_o', examle.s',' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''. – Michael
@Michael haklısın, bunu fark ettiğin için çok teşekkür ederim, örnek olarak değiştirdim, sonuç bölümleme hatası. – rezan
Bu kod benim için gayet iyi çalışıyor, '' '' tırnaklar sözdizimsel olarak değiştirilmiş '' '' '' '' '' '' '' '' '' '' '' '' ı ile birlikte gelir - Ben bunların yalnızca buradaki gönderimin bir artefaktı olduğunu ve gerçek kodunuzda olmadığını varsayalım assembler, söyleyemediğiniz bir hatayı atar. – Notlikethat