Library Management System – Detailed Project Report
Group Members
• Fawaz Adil – 24k-0610
• Muneeb Zubair– 24k-1009
• Aaliyan Masood – 24k-1007
Submission Date
12/28/2025
1. Executive Summary
This project is a simple Library Management System implemented in 16-bit x86 Assembly
using MASM/TASM. The purpose of this project is to design a low-level, menu-driven library
system that allows users to add books and view stored book records. The project
demonstrates the use of procedural programming, memory handling, interrupt services,
and user interaction in assembly language.
The system successfully allows adding up to 10 books and displaying them with proper
formatting. The project strengthens concepts of low-level memory access, buffer handling,
and input/output mechanisms via DOS interrupts.
2. Introduction
Background
The Library Management System project is relevant to Object-Oriented Programming (OOP)
because its conceptual design—managing books, storing records, interacting with users—is
similar to OOP-style modular organization. Even though assembly is not an OOP language,
the project helps reinforce how real-world systems can be broken down into modular
components.
Project Objectives
• Create a simple library system that stores book records.
• Learn memory management using assembly language.
• Understand and implement user input/output using INT 21h services.
• Practice structured programming by dividing functionality into routines.
3. Project Description
Scope
The scope of this project includes:
• Adding new books (ID + Title)
• Listing all stored books
Excluded from the scope:
• Saving data permanently (no file handling)
• Deleting or editing books
• Searching or sorting functionality
Technical Overview
• MASM/TASM assembler
• 16-bit DOS interrupt system
• INT 21h functions for I/O
• Emulators such as DOSBox for execution
4. Methodology
Approach
The project was completed by breaking the process into stages:
1. Designing project structure and flow.
2. Implementing user input via interrupt services.
3. Allocating memory for book storage.
4. Writing logic for adding and listing books.
5. Testing, debugging, and validating output.
Roles and Responsibilities
• Aaliyan – System design, memory layout, coding core logic.
• Fawaz – Writing input routines, debugging, optimization.
• Muneeb – Documentation, testing, preparing the report.
5. Project Implementation
Design and Structure
The program uses static memory allocation to store up to 10 books. Each record consists of
one-byte ID and a title of up to 30 characters. A menu-driven system was implemented to
make user interaction simple and predictable.
Functionalities Developed
• Add Book – Allows entering ID and title.
• List Books – Loops through stored records and displays them.
• Exit – Terminates the program through INT 21h.
Challenges Faced
• Managing buffer-based input was difficult because INT 21h AH=0Ah requires
understanding length bytes.
• Avoiding memory corruption while storing multiple records.
• Correct use of SI, DI registers and offsets.
• Debugging in low-level assembly without high-level error messages.
6. Results
Project Outcomes
The final program fulfills all objectives: it accepts book details and displays them properly.
The system is stable and performs as expected under multiple test cases.
Testing and Validation
Testing included:
• Adding maximum number of books.
• Verifying correct memory storage.
• Listing outputs for different inputs.
• Input validation checks (e.g., characters beyond limits).
7. Conclusion
Summary of Findings
This project provided practical exposure to low-level programming concepts such as
registers, interrupts, memory addressing, and structured logic. It successfully demonstrates
how a small-scale management system can be implemented in assembly language.
Final Remarks
Working on this project improved our understanding of system-level programming and
strengthened our debugging and analytical skills. Future improvements may include adding
search, delete, and file-based storage functionality.