A comprehensive collection of 28 programs across 10 experiments covering Intel 8086 microprocessor programming including arithmetic operations, string handling, sorting algorithms, system interfacing, and mixed C/Assembly programming.
How to Use · Learning Path · Experiment 1 · Experiment 2 · Experiment 3 · Experiment 4 · Experiment 5 · Experiment 6 · Experiment 7 · Experiment 8 · Experiment 9 · Experiment 10
Tip
Additional Learning Resource: For more 8086 assembly programs beyond these experiments, check out my 8086 Assembly Language Programs repository — 161 programs I developed during this course for self-learning, covering arithmetic, conversions, sorting, searching, and more.
Warning
Register Safety: In 8086 assembly, direct hardware manipulation requires careful register management. Always push/pop registers when using interrupts to prevent data corruption. Ensure your data segments (DS, ES) are correctly initialized at the start of every program to avoid runtime memory errors.
Assembler Options:
- MASM (Microsoft Macro Assembler)
- TASM (Turbo Assembler)
Emulator Options:
- EMU8086 (Recommended for beginners)
- DOSBox (For advanced users)
For MASM:
masm filename.asm;
link filename.obj;
filename.exeFor TASM:
tasm filename.asm
tlink filename.obj
filename.exe- Choose your assembler (MASM or TASM)
- Write your assembly code in a
.asmfile - Assemble the code using the commands above
- Link the object file to create an executable
- Run the
.exefile in your emulator
Beginner Level:
- Start with Experiment 1 to understand basic arithmetic and register usage
- Practice data movement instructions (MOV, XCHG)
Intermediate Level:
- Explore Experiments 2, 3, 4, 5 for conversions, strings, sorting, and searching
- Master loop constructs and conditional jumps
Advanced Level:
- Study Experiments 6, 7, 8, 9, 10 for BIOS interrupts, macros, and bit manipulation
- Learn stack operations and procedure calls
Implementation of fundamental arithmetic operations for 8-bit and 16-bit numbers.
Date: September 13, 2020
| # | Program | Algorithm | Description | Source Code |
|---|---|---|---|---|
| 1 | Addition_Of_Two_8-bit_Numbers.asm | Addition | 8-bit addition with carry handling | View |
| 2 | Addition_Of_Two_16-bit_Numbers.asm | Addition | 16-bit addition for larger values | View |
| 3 | Subtraction_Of_Two_8-bit_Numbers.asm | Subtraction | 8-bit subtraction basics | View |
| 4 | Subtraction_Of_Two_16-bit_Numbers.asm | Subtraction | 16-bit subtraction logic | View |
| 5 | Multiplication_Of_Two_8-bit_Numbers.asm | Multiplication | 8-bit unsigned multiplication | View |
| 6 | Multiplication_Of_Two_16-bit_Numbers.asm | Multiplication | 16-bit multiplication technique | View |
| 7 | Division_Of_Two_8-bit_Numbers.asm | Division | 8-bit division with quotient/remainder | View |
| 8 | Division_Of_Two_16-bit_Numbers.asm | Division | 16-bit division operations | View |
| — | Lab Report | — | Detailed experiment report | View |
Converting data between different number systems (Binary, Decimal, Hexadecimal).
Date: September 13, 2020
| # | Program | Algorithm | Description | Source Code |
|---|---|---|---|---|
| 1 | BCD_To_Binary_Conversion.asm | Conversion | BCD to Binary conversion logic | View |
| — | Lab Report | — | Detailed experiment report | View |
String manipulation and character processing operations.
Date: September 13, 2020
| # | Program | Algorithm | Description | Source Code |
|---|---|---|---|---|
| 1 | String_Manipulation.asm | String Ops | Length, copy, concatenate, compare | View |
| — | Lab Report | — | Detailed experiment report | View |
Implementation of classic sorting techniques for array organization.
Date: September 20, 2020
| # | Program | Algorithm | Description | Source Code |
|---|---|---|---|---|
| 1 | Bubble_Sort.asm | Bubble Sort | Ascending order sorting | View |
| 2 | Selection_Sort.asm | Selection Sort | Minimum element selection | View |
| — | Lab Report | — | Detailed experiment report | View |
Searching for specific elements within arrays.
Date: October 10, 2020
| # | Program | Algorithm | Description | Source Code |
|---|---|---|---|---|
| 1 | Linear_Search.asm | Linear Search | Sequential element search | View |
| — | Lab Report | — | Detailed experiment report | View |
Interfacing with system hardware and BIOS interrupts.
Date: October 10, 2020
| # | Program | Algorithm | Description | Source Code |
|---|---|---|---|---|
| 1 | Display_System_Time.asm | BIOS INT 21h | Real-time clock display | View |
| — | Lab Report | — | Detailed experiment report | View |
Advanced mathematical computations.
Date: October 15, 2020
| # | Program | Algorithm | Description | Source Code |
|---|---|---|---|---|
| 1 | Factorial_Calculation.asm | Factorial | Recursive/Iterative factorial | View |
| — | Lab Report | — | Detailed experiment report | View |
Using macros for code reusability and modularity.
Date: October 10, 2020
| # | Program | Algorithm | Description | Source Code |
|---|---|---|---|---|
| 1 | Macro_Based_Operations.asm | Macros | Reusable code blocks | View |
| — | Lab Report | — | Detailed experiment report | View |
Dividing arrays based on specific criteria.
Date: October 10, 2020
| # | Program | Algorithm | Description | Source Code |
|---|---|---|---|---|
| 1 | Even_Odd_Array_Splitter.asm | Array Split | Separate even/odd elements | View |
| — | Lab Report | — | Detailed experiment report | View |
Bit manipulation through logical shift operations.
Date: October 10, 2020
| # | Program | Algorithm | Description | Source Code |
|---|---|---|---|---|
| 1 | Logical_Shift_Operations.asm | Bit Shift | Left/Right logical shifts | View |
| — | Lab Report | — | Detailed experiment report | View |
How to Use · Learning Path · Experiment 1 · Experiment 2 · Experiment 3 · Experiment 4 · Experiment 5 · Experiment 6 · Experiment 7 · Experiment 8 · Experiment 9 · Experiment 10
CSL501 · Semester V · Computer Engineering
University of Mumbai · Curated by Amey Thakur