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;
};
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.