assembly - instruction - Ejecutando archivo binario con qemu
raspberry pi assembler (1)
Está intentando ejecutar qemu en modo de usuario. También necesita vincular las bibliotecas que corresponden al brazo.
eche un vistazo a los archivos de script en el siguiente paquete.
http://wiki.qemu.org/download/linux-user-test-0.3.tar.gz
Tendrá que ejecutar qemu -L library_PATH_ARM ./a.out
Estoy aprendiendo el lenguaje ensamblador de brazo en mi único curso. Tengo un pequeño problema para comenzar. He escrito un código c simple:
int main()
{
int a = 10;
int b = 20;
int c = a+b;
}
Y luego lo convertí en código ensamblador usando gnu arm dando el comando:
arm-elf-gcc -S first.c
Esto generó un archivo que contiene el código de ensamblado first.s:
.file "first.c"
.text
.align 2
.global main
.type main, %function
main:
@ args = 0, pretend = 0, frame = 12
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
stmfd sp!, {fp, ip, lr, pc}
sub fp, ip, #4
sub sp, sp, #12
mov r3, #10
str r3, [fp, #-16]
mov r3, #20
str r3, [fp, #-20]
ldr r2, [fp, #-16]
ldr r3, [fp, #-20]
add r3, r2, r3
str r3, [fp, #-24]
mov r0, r3
sub sp, fp, #12
ldmfd sp, {fp, sp, pc}
.size main, .-main
.ident "GCC: (GNU) 3.4.3"
Luego compilé el código ensamblador usando el siguiente comando:
arm-elf-gcc -g first.s
Esto generó un archivo binario. Entonces traté de ejecutar a.out con qemu usando el comando:
qemu-arm a.out
Pero esto genera salida
Segmentation fault
No puedo encontrar el error, ¿qué estoy haciendo mal?