raspberry instruction ensamblador data assembler assembly arm qemu

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?