https://github.com/qabasak/8086-quiz
An 8086 assembly quiz game on computational complexity, featuring user authentication, randomized MCQs, case-insensitive input, a 12-second timer, and a leaderboard. Built with BIOS interrupts and modular code, runs on 8086 emulators.
https://github.com/qabasak/8086-quiz
8086 8086-emulator assembly authentication np-completeness
Last synced: about 1 year ago
JSON representation
An 8086 assembly quiz game on computational complexity, featuring user authentication, randomized MCQs, case-insensitive input, a 12-second timer, and a leaderboard. Built with BIOS interrupts and modular code, runs on 8086 emulators.
- Host: GitHub
- URL: https://github.com/qabasak/8086-quiz
- Owner: QabasAK
- Created: 2025-06-13T19:28:01.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-21T02:23:02.000Z (about 1 year ago)
- Last Synced: 2025-06-21T02:35:35.964Z (about 1 year ago)
- Topics: 8086, 8086-emulator, assembly, authentication, np-completeness
- Language: Assembly
- Homepage:
- Size: 0 Bytes
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Customizable Quiz Game in 8086 Microprocessor using emu8086
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`, and `Comparison` to ensure clean and reusable code.
### Program Structure
#### Data Segment
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 )
```
#### Flowchart
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.