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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Duda urgente en NASM, ayuda por favor
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Duda urgente en NASM, ayuda por favor  (Leído 8,564 veces)
Adri124

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Duda urgente en NASM, ayuda por favor
« en: 28 Junio 2016, 14:28 pm »

Duda resuelta


« Última modificación: 30 Junio 2016, 19:33 pm por Adri124 » En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Duda urgente en NASM, ayuda por favor
« Respuesta #1 en: 28 Junio 2016, 14:39 pm »

Y cual es tu duda?

Si tienes alguna duda en especifico preguntala y te responderemos

Si no sabes programar en ASM hay varios tutoriales en los temas pegados en este subforo.

Por lo demas me parece deshonesto que alguien consiga su titulo universitario de esa forma. Podria resolver ese problema facilmente pero no tengo titulo universitario.

Saludos


« Última modificación: 28 Junio 2016, 14:52 pm por AlbertoBSD » En línea

Adri124

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Duda urgente en NASM, ayuda por favor
« Respuesta #2 en: 28 Junio 2016, 15:10 pm »

La duda que tengo es por qué produce violación de segmento. Llevo horas trackeando el error y no logro encontrarlo, por eso pido ayuda ya desesperadamente a alguien que sea capaz de encontrarlo, disculpa si te he molestado.
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Duda urgente en NASM, ayuda por favor
« Respuesta #3 en: 28 Junio 2016, 15:43 pm »

El detalle que si te da un segment fault quiere decir que estas tratando de escribir en memoria no inicializada..
 posiblemente uno de tus mov a alguna de las direcciones absolutas que manejas entre corchetes..

Ya que tu instruccion solo detecta un overflow a nivel de registro el cual solo se activa si el segundo numero es mas grande que el primero y resutado seria negativo si el overflow flag esta encendido.

Código
  1. jo near error_4

La resta como tal esta bien pero el problema esta en alguno de los mov ya que te da segment fault y es distinto al overflow a nivel de registro.

La otra es que veo muchas instrucciones redundantes como

Código
  1. push dword eax
  2. pop dword eax

Código
  1. mov dword [ebp-4], eax
  2. lea eax, [ebp-4]

Como dices que generaste ese codigo asm?

Saludos
En línea

xv0


Desconectado Desconectado

Mensajes: 1.027



Ver Perfil
Re: Duda urgente en NASM, ayuda por favor
« Respuesta #4 en: 28 Junio 2016, 16:06 pm »

Tienes alguna direccion de la violacion de segmento? Me gustaria depurarlo pero estoy fuera.

Pero como dice el compañero, el codigo esta lleno de instrucciones sin sentido alguno, de hay posibles errores.

Código
  1. sub esp , 4*1
  2.  
  3. ///////////////
  4.  
  5. push dword 2147483647
  6. pop dword eax
  7. mov dword [_x],eax
  8.  
  9. ////////////////////////
  10.  
  11. push dword eax
  12. pop dword eax
  13. mov dword [_ressuma],eax
  14. push dword _ressuma
  15. pop dword eax
  16. mov dword eax , [eax]
  17. push dword eax

Por que todo eso? Dime mas datos sobre el error, y podre decirte algo, pero yo depuraria el codigo no el error, todas esas cosas sobran y te ahorras problemas.

Un saludo.
En línea

Adri124

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Duda urgente en NASM, ayuda por favor
« Respuesta #5 en: 28 Junio 2016, 18:31 pm »

Muchas gracias por vuestras respuestas, respondiendo:

AlbertoBSD, el código lo genero con flex y bison, es un compilador de un lenguaje inventado muy similar a C, pero en este caso me está volviendo loco para detectar el fallo... me dice "Violación de segmento ("core" generado), y la verdad es que no sé cual es el mov que puede dar el fallo... he intentado depurarlos todos. Al menos la suma si que la realiza correctamente (30), después revienta.

No entiendo bien lo que me comentas del jo a nivel de registro, que es lo que debería fallar?

cpu2, el código puede ser algo caótico porque es generado en bison detectando expresiones, es un compilador que genera NASM dependiendo del código.

En cuanto a más detalles del error... llevo un buen rato intentando encontrar más información pero no doy con nada... solo sé que falla tras ejecutar la suma e imprimir el 30. Tras imprimir el 30, debería saltar a ****Error de ejecucion: overflow en resta

ACTUALIZACIÓN: Acabo de ver (intentando depurar a mi manera) que muy posiblemente la línea 126 sea la que provoca la violación de segmento. Esa instrucción es la que me carga en la variable x el valor 9999999999 para hacer la resta -9999999999 - 9999999999 que en lugar de provocar violación de segmento, debería ser detectada por jo y saltar, mostrando el código de error ****Error de ejecucion: overflow en resta

Por tanto, creo que podría ser un fallo en el jo, o en la carga del operando por ser demasiado grande... la verdad es que no sé realmente que es lo que falla ya
« Última modificación: 28 Junio 2016, 18:59 pm por Adri124 » En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Duda urgente en NASM, ayuda por favor
« Respuesta #6 en: 28 Junio 2016, 19:16 pm »

El máximo valor dado por un entero de 32 bits sin signo es de hasta 4 mil millones y pasado...
No puedes simplemente asignar ese valor a una variable eax... Eso te va a dar un overflow en el registro.
Que es cuando se activa la bandera de overflow (Cosa que validas con tu jo

Pero es totalmente Diferente a un segment fault Este ultimo se da por que estas tratando de leer o escribir en una direccion de memoria inexistente.

Saludos
En línea

Adri124

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Duda urgente en NASM, ayuda por favor
« Respuesta #7 en: 28 Junio 2016, 19:45 pm »

DSuda resuelta
« Última modificación: 30 Junio 2016, 19:33 pm por Adri124 » En línea

xv0


Desconectado Desconectado

Mensajes: 1.027



Ver Perfil
Re: Duda urgente en NASM, ayuda por favor
« Respuesta #8 en: 28 Junio 2016, 22:34 pm »

Pero no seria mejor ,utilizar algun debugger pata saber de donde procede el segmentation fault?

Y a partir de hay arreglsr el problema, es lo que intente decir antes,  depuralo y sabras el fallo.

Un saludo.
En línea

Adri124

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Duda urgente en NASM, ayuda por favor
« Respuesta #9 en: 29 Junio 2016, 00:31 am »

Hay algún buen debugger que me recomendéis?
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda urgente por favor
Juegos y Consolas
vivastun 4 2,649 Último mensaje 3 Agosto 2004, 19:10 pm
por vivastun
Duda con Arduino. Urgente por favor.
Dudas Generales
SARGE553413 2 2,118 Último mensaje 9 Julio 2013, 04:57 am
por engel lex
[NASM] (Duda) El registro DS no funciona como debería
ASM
class_OpenGL 2 3,632 Último mensaje 1 Octubre 2016, 12:08 pm
por class_OpenGL
Duda sobre ensamblador (NASM), IDE SASM
ASM
UsuarioZ 2 4,096 Último mensaje 9 Octubre 2020, 23:00 pm
por UsuarioZ
MOVIDO: Duda sobre ensamblador (NASM), IDE SASM
Programación General
MCKSys Argentina 0 2,398 Último mensaje 8 Octubre 2020, 11:09 am
por MCKSys Argentina
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines