| 
	
		|  Autor | Tema: Escribir funcion equivalente en C  (Leído 3,468 veces) |  
	| 
			| 
					
						| Kougami 
								
								 Desconectado 
								Mensajes: 53
								
								
								
								
								
								   | 
 
Buenas, escribia porque no se como sacar una funcion equivalente en C del siguiente codigo escrito en asm: .global rgb2gray 	.equ COEF1, 3483	.equ COEF2, 11718	.equ COEF3, 1183 .text rgb2gray:  	ldr r3, =COEF1  	mul r0, r3, r0  	ldr r3, =COEF2  	mla r0, r3, r1, r0  	ldr r3, =COEF3  	mla r0, r3, r2, r0  	mov r0, r0, lsr #14   	mov pc, lr 
 Si me pudieseis ayudar estaria genial. Muchas gracias de antemano
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| MAFUS 
								       
								
								 Desconectado 
								Mensajes: 1.603
								
								   | 
 
¿Sabes que hace cada instrucción? 
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Kougami 
								
								 Desconectado 
								Mensajes: 53
								
								
								
								
								
								   | 
 
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 | 
 
 |  |  |  |  |  | 
			| 
					
						| Kougami 
								
								 Desconectado 
								Mensajes: 53
								
								
								
								
								
								   | 
 
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 
								Mensajes: 1.603
								
								   | 
 
Es lineal.
 ¿Cuál es la asignatura?
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Kougami 
								
								 Desconectado 
								Mensajes: 53
								
								
								
								
								
								   | 
 
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 
								Mensajes: 1.603
								
								   | 
 
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 | 
 
 |  |  |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | BATCH - Función máquina de escribir Scripting
 | carlitos.dll | 3 | 8,729 |  3 Octubre 2008, 22:17 pm por -/lnkx/-
 |  
						|   |   | Equivalente de funcion REPLACE de vb en C ? Programación C/C++
 | User | 5 | 4,251 |  25 Julio 2012, 01:07 am por User
 |  
						|   |   | llamar funcion equivalente a shell desde window mobile .NET (C#, VB.NET, ASP)
 | sysfactory | 1 | 2,699 |  18 Julio 2013, 06:14 am por Eleкtro
 |  
						|   |   | Función equivalente a QueryFullProcessImageName para win XP Programación C/C++
 | el_doctor | 7 | 3,613 |  1 Diciembre 2014, 18:52 pm por Eternal Idol
 |  
						|   |   | Funcion equivalente en C ASM
 | Kougami | 2 | 3,058 |  23 Mayo 2017, 21:59 pm por Serapis
 |    |