Autor
|
Tema: Problema con Función.. (Leído 9,544 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 ebp mov ebp,esp ... ... código ... ... leave ret
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
|
2,676
|
3 Septiembre 2005, 21:28 pm
por NYlOn
|
|
|
Problema con la funcion Chr
Programación Visual Basic
|
sircid
|
2
|
1,768
|
9 Agosto 2006, 14:50 pm
por sircid
|
|
|
Problema con funcion
Programación C/C++
|
Caster
|
3
|
2,843
|
30 Septiembre 2012, 08:59 am
por Caster
|
|
|
Problema con una funcion
« 1 2 »
Programación C/C++
|
ThronerAXE
|
10
|
4,374
|
9 Mayo 2013, 15:28 pm
por leosansan
|
|
|
Problema con función en c
Programación C/C++
|
Gigasnike95
|
1
|
1,649
|
14 Diciembre 2014, 12:32 pm
por ivancea96
|
|