// File: /workspace/github_cpp_makefile_star2_O2/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 %r12
pushq %rbx
subq $0x10, %rsp
movq 0x6082(%rip), %rbx      # 0x9fd0
leaq 0x2d6b(%rip), %rsi      # 0x6cc0
movq %rbx, %rdi
callq 0x2160
leaq 0x2d61(%rip), %r14      # 0x6cc5
pushq $0x5
popq %rsi
pushq $0xa
popq %r12
movq %r14, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0x2040
leaq 0x2d4f(%rip), %rsi      # 0x6cce
movq %rbx, %rdi
callq 0x2160
leaq 0x2d48(%rip), %rsi      # 0x6cd6
movq %rbx, %rdi
callq 0x2160
leaq 0x2089(%rip), %r15      # 0x6026
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2160
pushq $0x8
popq %rsi
movq %r14, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0x2040
leaq 0x2d43(%rip), %rsi      # 0x6d02
movq %rbx, %rdi
callq 0x2160
pushq $0x9
popq %rsi
movq %r14, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0x2040
leaq 0x2d50(%rip), %rsi      # 0x6d2e
movq %rbx, %rdi
callq 0x2160
movq %r14, %rdi
movl %r12d, %esi
movl %r12d, %edx
xorl %eax, %eax
callq 0x2040
leaq 0x2d58(%rip), %rsi      # 0x6d55
movq %rbx, %rdi
callq 0x2160
pushq $0xb
popq %rsi
movq %r14, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0x2040
leaq 0x2d60(%rip), %rsi      # 0x6d7c
movq %rbx, %rdi
callq 0x2160
pushq $0xc
popq %rsi
movq %r14, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0x2040
leaq 0x2d8d(%rip), %rsi      # 0x6dc8
movq %rbx, %rdi
callq 0x2160
pushq $0xd
popq %rsi
movq %r14, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0x2040
leaq 0x2da5(%rip), %rsi      # 0x6dff
movq %rbx, %rdi
callq 0x2160
pushq $0xe
popq %rsi
movq %r14, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0x2040
leaq 0x2da0(%rip), %rsi      # 0x6e19
movq %rbx, %rdi
callq 0x2160
pushq $0xf
popq %rsi
movq %r14, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0x2040
leaq 0x2d9d(%rip), %rsi      # 0x6e35
movq %rbx, %rdi
callq 0x2160
pushq $0x10
popq %rsi
movq %r14, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0x2040
leaq 0x2d99(%rip), %rsi      # 0x6e50
movq %rbx, %rdi
callq 0x2160
pushq $0x11
popq %rsi
movq %r14, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0x2040
leaq 0x2d96(%rip), %rsi      # 0x6e6c
movq %rbx, %rdi
callq 0x2160
pushq $0x12
popq %rsi
movq %r14, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0x2040
leaq 0x2d91(%rip), %rsi      # 0x6e86
movq %rbx, %rdi
callq 0x2160
leaq 0x2d8a(%rip), %rsi      # 0x6e8e
movq %rax, %rdi
callq 0x2160
pushq $0x13
popq %rsi
pushq $0x14
popq %rdx
movq %r14, %rdi
xorl %eax, %eax
callq 0x2040
leaq 0x1f62(%rip), %rsi      # 0x6085
movq %rbx, %rdi
callq 0x2160
leaq 0x2d66(%rip), %rsi      # 0x6e98
movq %rbx, %rdi
callq 0x2160
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2160
movq 0x5e94(%rip), %rbx      # 0x9fe0
leaq -0x24(%rbp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x20f0
movq %rbx, %rdi
callq 0x2240
movl (%r14), %eax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq