elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Escribir funcion equivalente en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Escribir funcion equivalente en C  (Leído 2,661 veces)
Kougami

Desconectado Desconectado

Mensajes: 53


Ver Perfil
Escribir funcion equivalente en C
« 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
  1. .global rgb2gray
  2.  
  3. .equ COEF1, 3483
  4. .equ COEF2, 11718
  5. .equ COEF3, 1183
  6.  
  7. .text
  8.  
  9. rgb2gray:
  10.   ldr r3, =COEF1
  11.   mul r0, r3, r0
  12.   ldr r3, =COEF2
  13.   mla r0, r3, r1, r0
  14.   ldr r3, =COEF3
  15.   mla r0, r3, r2, r0
  16.   mov r0, r0, lsr #14
  17.  
  18.   mov pc, lr
  19.  

Si me pudieseis ayudar estaria genial.
Muchas gracias de antemano


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Escribir funcion equivalente en C
« Respuesta #1 en: 23 Mayo 2017, 18:15 pm »

¿Sabes que hace cada instrucción?


En línea

Kougami

Desconectado Desconectado

Mensajes: 53


Ver Perfil
Re: Escribir funcion equivalente en C
« Respuesta #2 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
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Escribir funcion equivalente en C
« Respuesta #3 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.
En línea

Kougami

Desconectado Desconectado

Mensajes: 53


Ver Perfil
Re: Escribir funcion equivalente en C
« Respuesta #4 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?
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Escribir funcion equivalente en C
« Respuesta #5 en: 23 Mayo 2017, 18:53 pm »

Es lineal.

¿Cuál es la asignatura?
En línea

Kougami

Desconectado Desconectado

Mensajes: 53


Ver Perfil
Re: Escribir funcion equivalente en C
« Respuesta #6 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?
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Escribir funcion equivalente en C
« Respuesta #7 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.
En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.348


Ver Perfil
Re: Escribir funcion equivalente en C
« Respuesta #8 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
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
BATCH - Función máquina de escribir
Scripting
carlitos.dll 3 8,097 Último mensaje 3 Octubre 2008, 22:17 pm
por -/lnkx/-
Equivalente de funcion REPLACE de vb en C ?
Programación C/C++
User 5 3,346 Último mensaje 25 Julio 2012, 01:07 am
por User
llamar funcion equivalente a shell desde window mobile
.NET (C#, VB.NET, ASP)
sysfactory 1 2,154 Último mensaje 18 Julio 2013, 06:14 am
por Eleкtro
Función equivalente a QueryFullProcessImageName para win XP
Programación C/C++
el_doctor 7 2,970 Último mensaje 1 Diciembre 2014, 18:52 pm
por Eternal Idol
Funcion equivalente en C
ASM
Kougami 2 2,569 Último mensaje 23 Mayo 2017, 21:59 pm
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines