This project is an interactive quiz game developed in 8086 assembly. The game focuses on computational complexity and the P vs. NP problem, offering a multiple-choice question (MCQ) format with features like user authentication, random question shuffling, case-insensitive input, a personalized timer, and a session-persistent leaderboard.
The features implemented in the quiz system:
- User Authentication: Supports three hard-coded username-password pairs with three login attempts before termination.
- Quiz System: Includes five MCQ questions on computational complexity, shuffled randomly per session using a BIOS system clock seed.
- Case-Insensitive Input: Accepts answers in both uppercase and lowercase.
- Personalized Timer: Each question has a 12-second timer based on the last digit of my university ID, using BIOS-based delays.
- Score Tracking & Leaderboard: Tracks scores per user and displays a leaderboard at the end of the session.
- Modular Design: Utilizes helper procedures like
Newline,Peep, andComparisonto ensure clean and reusable code.
The data segment stores all static and dynamic information required by the program. The following showcases the structure for each username-password pair, MCQ question as well as reading input.
UserX db "Name" , 0
PassX db "Pass00" , 0
Qx db ’ Qx : What does it mean ... ?$’
QxA db ’A . ... $’
QxB db ’B . ... $’
QxC db ’C . ... $’
QxD db ’D . ... $’
QxSolC db ’Y’ , 0
QxSolS db ’y’ , 0
QxIn db 2 Ah , 0 , 2 Ah dup ( 0 )
QxUserAnswer db 3 dup ( 0 )
The flowchart illustrates the logical sequence of the quiz program, from user authentication to quiz completion and leaderboard display.
This project demonstrates the power and complexity of 8086 assembly programming through an interactive quiz game. It integrates low-level concepts like BIOS interrupts, memory management, and timing analysis, making it a valuable educational tool for microprocessor studies.

