Manejar listas doblemente enlazadas en C desde ASM

Iniciado por danndres, 12 Octubre 2014, 20:03 PM

0 Miembros y 1 Visitante están viendo este tema.

danndres

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.

cpu2

Si no muestras algo de code, se hace dificil ayudarte. Puedo dejarte un ejemplo con la estructura, pero no de todas las funciones.

struct nodo {
  int dato;
  struct nodo *siguiente;
  struct nodo *anterior;
};


Código (asm) [Seleccionar]
subl $12, %esp
movl %eax, (%esp)       ; en eax esta el int dato
leal -12(%esp), %ebx   ; en ebx esta el puntero al siguiente int dato
leal 12 (%esp), %ecx  ; en ecx esta el puntero al anterior int dato
movl %ebx, 4(%esp)
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

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

Un saudo.