// File: /workspace/github_cpp_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq 0x78ab(%rip), %rbx      # 0xbfd0
leaq 0x45bc(%rip), %rsi      # 0x8ce8
movl $0x4, %edx
movq %rbx, %rdi
callq 0x2180
leaq 0x45ad(%rip), %r14      # 0x8ced
movq %r14, %rdi
movl $0x5, %esi
movl $0xa, %edx
xorl %eax, %eax
callq 0x2050
leaq 0x459b(%rip), %rsi      # 0x8cf6
movl $0x7, %edx
movq %rbx, %rdi
callq 0x2180
leaq 0x458f(%rip), %rsi      # 0x8cfe
movl $0x2b, %edx
movq %rbx, %rdi
callq 0x2180
leaq 0x38a3(%rip), %r15      # 0x8026
movl $0x4, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2180
movq %r14, %rdi
movl $0x8, %esi
movl $0xa, %edx
xorl %eax, %eax
callq 0x2050
leaq 0x457c(%rip), %rsi      # 0x8d2a
movl $0x2b, %edx
movq %rbx, %rdi
callq 0x2180
movq %r14, %rdi
movl $0x9, %esi
movl $0xa, %edx
xorl %eax, %eax
callq 0x2050
leaq 0x4580(%rip), %rsi      # 0x8d56
movl $0x26, %edx
movq %rbx, %rdi
callq 0x2180
movq %r14, %rdi
movl $0xa, %esi
movl $0xa, %edx
xorl %eax, %eax
callq 0x2050
leaq 0x457f(%rip), %rsi      # 0x8d7d
movl $0x26, %edx
movq %rbx, %rdi
callq 0x2180
movq %r14, %rdi
movl $0xb, %esi
movl $0xa, %edx
xorl %eax, %eax
callq 0x2050
leaq 0x457e(%rip), %rsi      # 0x8da4
movl $0x4b, %edx
movq %rbx, %rdi
callq 0x2180
movq %r14, %rdi
movl $0xc, %esi
movl $0xa, %edx
xorl %eax, %eax
callq 0x2050
leaq 0x45a2(%rip), %rsi      # 0x8df0
movl $0x36, %edx
movq %rbx, %rdi
callq 0x2180
movq %r14, %rdi
movl $0xd, %esi
movl $0xa, %edx
xorl %eax, %eax
callq 0x2050
leaq 0x45b1(%rip), %rsi      # 0x8e27
movl $0x19, %edx
movq %rbx, %rdi
callq 0x2180
movq %r14, %rdi
movl $0xe, %esi
movl $0xa, %edx
xorl %eax, %eax
callq 0x2050
leaq 0x45a3(%rip), %rsi      # 0x8e41
movl $0x1b, %edx
movq %rbx, %rdi
callq 0x2180
movq %r14, %rdi
movl $0xf, %esi
movl $0xa, %edx
xorl %eax, %eax
callq 0x2050
leaq 0x4597(%rip), %rsi      # 0x8e5d
movl $0x1a, %edx
movq %rbx, %rdi
callq 0x2180
movq %r14, %rdi
movl $0x10, %esi
movl $0xa, %edx
xorl %eax, %eax
callq 0x2050
leaq 0x458a(%rip), %rsi      # 0x8e78
movl $0x1b, %edx
movq %rbx, %rdi
callq 0x2180
movq %r14, %rdi
movl $0x11, %esi
movl $0xa, %edx
xorl %eax, %eax
callq 0x2050
leaq 0x457e(%rip), %rsi      # 0x8e94
movl $0x19, %edx
movq %rbx, %rdi
callq 0x2180
movq %r14, %rdi
movl $0x12, %esi
movl $0xa, %edx
xorl %eax, %eax
callq 0x2050
leaq 0x4570(%rip), %rsi      # 0x8eae
movl $0x7, %edx
movq %rbx, %rdi
callq 0x2180
leaq 0x4564(%rip), %rsi      # 0x8eb6
movl $0x9, %edx
movq %rbx, %rdi
callq 0x2180
movq %r14, %rdi
movl $0x13, %esi
movl $0x14, %edx
xorl %eax, %eax
callq 0x2050
leaq 0x370b(%rip), %rsi      # 0x8085
movl $0x7, %edx
movq %rbx, %rdi
callq 0x2180
leaq 0x4532(%rip), %rsi      # 0x8ec0
movl $0x9, %edx
movq %rbx, %rdi
callq 0x2180
movl $0x4, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2180
movq 0x762e(%rip), %rbx      # 0xbfe0
leaq -0x1c(%rbp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x20c0
movq %rbx, %rdi
callq 0x2240
movl (%r14), %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq