Título: Escribir funcion equivalente en C Publicado por: Kougami en 23 Mayo 2017, 17:17 pm Buenas, escribia porque no se como sacar una funcion equivalente en C del siguiente codigo escrito en asm:
Código
Si me pudieseis ayudar estaria genial. Muchas gracias de antemano Título: Re: Escribir funcion equivalente en C Publicado por: MAFUS en 23 Mayo 2017, 18:15 pm ¿Sabes que hace cada instrucción?
Título: Re: Escribir funcion equivalente en C Publicado por: Kougami en 23 Mayo 2017, 18:35 pm Mas o menos,
Se que ldr guarda en R3 los distintos coeficicentes, y luego que mul hace una multiplicacion, mla no se lo que hace y luego mov r0, r0, lsr #14 no se lo que hace y finalmente el mov pc, lr es el epilogo de la subrutina Título: Re: Escribir funcion equivalente en C Publicado por: MAFUS en 23 Mayo 2017, 18:42 pm ¿Es para la universidad? Tenéis que aprender a documentaros, el mundo laboral es muy chungo.
Yo he encontrado este enlace. Rápidamente he podido reconstruir la rutina en C. http://www.keil.com/support/man/docs/armasm/armasm_dom1361289878324.htm A ver si lo consigues a partir de esto. Título: Re: Escribir funcion equivalente en C Publicado por: Kougami en 23 Mayo 2017, 18:49 pm No, no es para la universidad, sino para el instituto.
Gracias por el enlace, creo que lo tengo traducido, no hay ningun tipo de bucle ni nada no? Título: Re: Escribir funcion equivalente en C Publicado por: MAFUS en 23 Mayo 2017, 18:53 pm Es lineal.
¿Cuál es la asignatura? Título: Re: Escribir funcion equivalente en C Publicado por: Kougami en 23 Mayo 2017, 19:16 pm TICO, Tecnologias de la informacion y la comunicacion
Dos cosas, la funcion en C es un void?? Y luego, los coeficientes, como son un .equ son constantes cuyo valor es el numero de al lado tal cual no? Título: Re: Escribir funcion equivalente en C Publicado por: MAFUS en 23 Mayo 2017, 19:32 pm En el ensamblador el resultado se queda en r0 y cuando regresa el valor seguirá en ese registro. Por tanto en C deberás regresar ese resultado.
Por si no entiendes mucho inglés: la instrucción mla mla regreso, multiplicando 1, multiplicando 2, sumando deja en regreso el resultado de multiplicar multiplicando1 y multiplicando2 y, posteriormente añadir sumando lsr, en ese contexto, desplazará hacia la derecha el contenido del registro de la instrucción mov tantos bits como se indique. Título: Re: Escribir funcion equivalente en C Publicado por: Serapis en 24 Mayo 2017, 21:28 pm Vaya, has duplicado tu mensaje, en vez de pedir que movieran tu hilo...
El caso es que ya te respondí ayer en aquel hilo: https://foro.elhacker.net/asm/funcion_equivalente_en_c-t469877.0.html |