// File: DaCasBe[P]Gestion-de-asignaturas-mediante-listas-doblemente-enlazadas-ordenadas/funcionesAuxiliares.cpp
// Function: ed::menu()
int ed::menu(){
 		int opcion, posicion;

		// Se muestran las opciones del menú
		posicion=8;

		// Se borra la pantalla
		std::cout << CLEAR_SCREEN;

		LUGAR(5,10);
   		std::cout << BBLUE;
		std::cout << "Programa principial | Opciones del menú   ";
		std::cout << RESET;

		LUGAR(posicion++,10);
		std::cout << "[1] Comprobar si la asignatura está vacía";

		LUGAR(posicion++,10);
		std::cout << "[2] Cargar la asignatura de un fichero";

		LUGAR(posicion++,10);
		std::cout << "[3] Grabar la asignatura en un fichero";

		LUGAR(posicion++,10);
		std::cout << "[4] Consultar datos de la asignatura: código, nombre, lista de estudiantes";

		LUGAR(posicion++,10);
		std::cout << "[5] Modificar datos de la asignatura: código o nombre";

		LUGAR(posicion++,10);
		std::cout << "[6] Borrar una asignatura";


		LUGAR(posicion++,10);
		std::cout << "[7] Consultar un estudiante";

		LUGAR(posicion++,10);
		std::cout << "[8] Insertar un estudiante";

		LUGAR(posicion++,10);
		std::cout << "[9] Modificar un estudiante";

		LUGAR(posicion++,10);
		std::cout << "[10] Borrar un estudiante";

		LUGAR(posicion++,10);
		std::cout << GREEN << "[0] Salir";

		LUGAR(posicion++,20);
		std::cout << IYELLOW;
		std::cout << "Opción: ";
		std::cout << RESET;

		// Se lee el número de opción
		std::cin >> opcion;

    		// Se elimina el salto de línea del flujo de entrada
    		std::cin.ignore();

		return opcion;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl $0x8, -0x8(%rbp)
movq 0x992a(%rip), %rdi      # 0xffd0
leaq 0x578b(%rip), %rsi      # 0xbe38
callq 0x31a0
leaq 0x5784(%rip), %rdi      # 0xbe3d
movl $0x5, %esi
movl $0xa, %edx
movb $0x0, %al
callq 0x3050
movq 0x98ff(%rip), %rdi      # 0xffd0
leaq 0x576e(%rip), %rsi      # 0xbe46
callq 0x31a0
movq 0x98ec(%rip), %rdi      # 0xffd0
leaq 0x5763(%rip), %rsi      # 0xbe4e
callq 0x31a0
movq 0x98d9(%rip), %rdi      # 0xffd0
leaq 0x4930(%rip), %rsi      # 0xb02e
callq 0x31a0
movl -0x8(%rbp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
leaq 0x5728(%rip), %rdi      # 0xbe3d
movl $0xa, %edx
movb $0x0, %al
callq 0x3050
movq 0x98a8(%rip), %rdi      # 0xffd0
leaq 0x574b(%rip), %rsi      # 0xbe7a
callq 0x31a0
movl -0x8(%rbp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
leaq 0x56f7(%rip), %rdi      # 0xbe3d
movl $0xa, %edx
movb $0x0, %al
callq 0x3050
movq 0x9877(%rip), %rdi      # 0xffd0
leaq 0x5746(%rip), %rsi      # 0xbea6
callq 0x31a0
movl -0x8(%rbp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
leaq 0x56c6(%rip), %rdi      # 0xbe3d
movl $0xa, %edx
movb $0x0, %al
callq 0x3050
movq 0x9846(%rip), %rdi      # 0xffd0
leaq 0x573c(%rip), %rsi      # 0xbecd
callq 0x31a0
movl -0x8(%rbp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
leaq 0x5695(%rip), %rdi      # 0xbe3d
movl $0xa, %edx
movb $0x0, %al
callq 0x3050
movq 0x9815(%rip), %rdi      # 0xffd0
leaq 0x5732(%rip), %rsi      # 0xbef4
callq 0x31a0
movl -0x8(%rbp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
leaq 0x5664(%rip), %rdi      # 0xbe3d
movl $0xa, %edx
movb $0x0, %al
callq 0x3050
movq 0x97e4(%rip), %rdi      # 0xffd0
leaq 0x574d(%rip), %rsi      # 0xbf40
callq 0x31a0
movl -0x8(%rbp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
leaq 0x5633(%rip), %rdi      # 0xbe3d
movl $0xa, %edx
movb $0x0, %al
callq 0x3050
movq 0x97b3(%rip), %rdi      # 0xffd0
leaq 0x5753(%rip), %rsi      # 0xbf77
callq 0x31a0
movl -0x8(%rbp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
leaq 0x5602(%rip), %rdi      # 0xbe3d
movl $0xa, %edx
movb $0x0, %al
callq 0x3050
movq 0x9782(%rip), %rdi      # 0xffd0
leaq 0x573c(%rip), %rsi      # 0xbf91
callq 0x31a0
movl -0x8(%rbp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
leaq 0x55d1(%rip), %rdi      # 0xbe3d
movl $0xa, %edx
movb $0x0, %al
callq 0x3050
movq 0x9751(%rip), %rdi      # 0xffd0
leaq 0x5727(%rip), %rsi      # 0xbfad
callq 0x31a0
movl -0x8(%rbp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
leaq 0x55a0(%rip), %rdi      # 0xbe3d
movl $0xa, %edx
movb $0x0, %al
callq 0x3050
movq 0x9720(%rip), %rdi      # 0xffd0
leaq 0x5711(%rip), %rsi      # 0xbfc8
callq 0x31a0
movl -0x8(%rbp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
leaq 0x556f(%rip), %rdi      # 0xbe3d
movl $0xa, %edx
movb $0x0, %al
callq 0x3050
movq 0x96ef(%rip), %rdi      # 0xffd0
leaq 0x56fc(%rip), %rsi      # 0xbfe4
callq 0x31a0
movl -0x8(%rbp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
leaq 0x553e(%rip), %rdi      # 0xbe3d
movl $0xa, %edx
movb $0x0, %al
callq 0x3050
movq 0x96be(%rip), %rdi      # 0xffd0
leaq 0x56e5(%rip), %rsi      # 0xbffe
callq 0x31a0
movq %rax, %rdi
leaq 0x56de(%rip), %rsi      # 0xc006
callq 0x31a0
movl -0x8(%rbp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
leaq 0x54fe(%rip), %rdi      # 0xbe3d
movl $0x14, %edx
movb $0x0, %al
callq 0x3050
movq 0x967e(%rip), %rdi      # 0xffd0
leaq 0x4734(%rip), %rsi      # 0xb08d
callq 0x31a0
movq 0x966b(%rip), %rdi      # 0xffd0
leaq 0x56a4(%rip), %rsi      # 0xc010
callq 0x31a0
movq 0x9658(%rip), %rdi      # 0xffd0
leaq 0x46af(%rip), %rsi      # 0xb02e
callq 0x31a0
movq 0x9655(%rip), %rdi      # 0xffe0
leaq -0x4(%rbp), %rsi
callq 0x3110
movq 0x9645(%rip), %rdi      # 0xffe0
callq 0x32d0
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)