| 
	
		|  Autor | Tema: Problema con Función..  (Leído 10,250 veces) |  
	| 
			| 
					
						| Vaagish 
								 
								
								 Desconectado 
								Mensajes: 875
								
								   | 
 
Hola amigos! Alguien me puede aclarar por que pasa esto ? Tengo una rutina asi: mov ecx, sizeof String1
 lea esi, [String1]
 lea edi, [String2]
 cld
 repe cmpsb
 je Igual
 jmp NoIgual
 
 
Esto seria un strcmp, bien.. eso funciona.. ahora si yo quiero meter eso dentro de una funcion, para luego llamarla pasandole string1 y string2 no funca.. digamos asi: invoke strcmp, addr String1, addr String2
 
 strcmp proto str1:DWORD, str2:DWORD
 
 mov ecx, sizeof str1
 lea esi, [str1]
 lea edi, [str2]
 cld
 repe cmpsb
 je Igual
 jmp NoIgual
 
 Igual:
 mov eax, 0
 jmp Exit
 NoIgual:
 mov eax, 1
 Exit:
 ret
 strcmp endp
 
 
Bueno, eso es todo... ¿Por que no funca?
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| mr.blood 
								
								 Desconectado 
								Mensajes: 150
								
								
								
								
								
								   | 
 
Prueba con esto: push ebpmov ebp,esp......código......leaveret
 Esto es para que la pila no sea la misma en las distintas funciones así no se pisan valores de otro "marco" por así decirlo. La instrucción leave se encarga de volver ebp y esp a como estaban. Yo diría que da ese problema porque no sabe donde retornar en el ret (Porque no has cambiado el "marco" del stack) Sa1uDoS
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Vaagish 
								 
								
								 Desconectado 
								Mensajes: 875
								
								   | 
 
Gracias por responder Mr! Pero no funciono.. :/  No se que pasa...    |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| MCKSys Argentina | 
 
Y declarando la funcion con proc?
 Probaste?
 |  
						| 
								|  |  
								|  |  En línea | 
 
 MCKSys Argentina"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando." |  |  |  | 
			| 
					
						| Vaagish 
								 
								
								 Desconectado 
								Mensajes: 875
								
								   | 
 
Jajaja sii,, ese de ahi es error de mi mano al escribir en el foro :p
 Podria ser posible que sizeof no funcione dentro de la funcion ? ( En este caso )
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| MCKSys Argentina | 
 
No tengo para probar aca, pero podrias usar la lib de masm para sacar el len del string... |  
						| 
								|  |  
								|  |  En línea | 
 
 MCKSys Argentina"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando." |  |  |  | 
			| 
					
						| Vaagish 
								 
								
								 Desconectado 
								Mensajes: 875
								
								   | 
 
Si, lo pense.. pero no queria usar mas librerias.. :/
 Al menos para probar si es eso me va a servir...
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  |  |  | 
			| 
					
						| Vaagish 
								 
								
								 Desconectado 
								Mensajes: 875
								
								   | 
 
Gracias MCKSys, pero no quiere andar.. no es el sizeof, funciona bien...
 EDITADO:
 
 Creo que me esta tomando la dirección de memoria, no el contenido.. pues si pongo la misma cadena a comparar si funciona.. pero.. por que ? y como debería aclarar que quiero el contenido y no la dirección de memoria ?
 |  
						| 
								|  |  
								| « Última modificación: 21 Mayo 2013, 02:03 am por Vaagish » |  En línea | 
 
 |  |  |  | 
			| 
					
						| MCKSys Argentina | 
 
Creo que me esta tomando la dirección de memoria, no el contenido.. pues si pongo la misma cadena a comparar si funciona.. pero.. por que ? y como debería aclarar que quiero el contenido y no la dirección de memoria ? 
 Quitale los []  a los LEA y prueba. MASM deberia tomar los params directamente, sin tener que de-referenciar... |  
						| 
								|  |  
								|  |  En línea | 
 
 MCKSys Argentina"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando." |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | PROBLEMA CON FUNCIÓN CASE: Programación Visual Basic
 | CRAB | 8 | 3,131 |  3 Septiembre 2005, 21:28 pm por NYlOn
 |  
						|   |   | Problema con la funcion Chr Programación Visual Basic
 | sircid | 2 | 1,985 |  9 Agosto 2006, 14:50 pm por sircid
 |  
						|   |   | Problema con funcion Programación C/C++
 | Caster | 3 | 3,238 |  30 Septiembre 2012, 08:59 am por Caster
 |  
						|   |   | Problema con una funcion
							« 1 2 » Programación C/C++
 | ThronerAXE | 10 | 5,268 |  9 Mayo 2013, 15:28 pm por leosansan
 |  
						|   |   | Problema con función en c Programación C/C++
 | Gigasnike95 | 1 | 1,913 |  14 Diciembre 2014, 12:32 pm por ivancea96
 |    |