Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: danndres en 12 Octubre 2014, 20:03 pm



Título: Manejar listas doblemente enlazadas en C desde ASM
Publicado por: danndres en 12 Octubre 2014, 20:03 pm
Que tal compañeros, vengo con un problema, necesito manejar listas doblemente enzalada de C en ASM, pero solo tengo la idea de manejar las funciones como Agregar(); Borrar(); Buscar(); con pila, pero no tengo la mínima idea como empezar.


Título: Re: Manejar listas doblemente enlazadas en C desde ASM
Publicado por: xv0 en 13 Octubre 2014, 23:26 pm
Si no muestras algo de code, se hace dificil ayudarte. Puedo dejarte un ejemplo con la estructura, pero no de todas las funciones.

Código
  1. struct nodo {
  2.   int dato;
  3.   struct nodo *siguiente;
  4.   struct nodo *anterior;
  5. };

Código
  1. subl $12, %esp
  2. movl %eax, (%esp)       ; en eax esta el int dato
  3. leal -12(%esp), %ebx   ; en ebx esta el puntero al siguiente int dato
  4. leal 12 (%esp), %ecx  ; en ecx esta el puntero al anterior int dato
  5. movl %ebx, 4(%esp)
  6. movl %ecx, 8(%esp)

No se si me explico se puede haber mas complejo y optimizado aun, pero no puedo hacer mas ya que no tienes nada escrito. Igualmente te dejo este link, que tienes un code y todo. Si tienes algun problema dilo.

Punto 7.3. Listas

Código:
http://www.abreojosensamblador.net/Productos/AOE/html/Pags/Cap07.html

Un saudo.