Mic Microproject
Mic Microproject
K. E. Society's
A
Micro Project Report
On
SY AIML 1
FIND THE NUMBER OF FIBONACCI SERIES
K. E. Society's
CERTIFICATE
This is to certify that,
Sr. No. Name Middle Surname Roll No.
1. Omkar Shesherao Boinwad 89
➢ ACKNOWLEDGEMENT
SY AIML 2
FIND THE NUMBER OF FIBONACCI SERIES
➢ I would like to express my sincere gratitude to all those who have contributed to
the completion of the microproject titled "Finding the Number of Fibonacci Series
in 8086 Microprocessor."
➢ We would like to express our sincere thanks to our guide, who has encouraged us
to work on this topic and valuable guidance wherever required. We wish to
express our thanks to Mr. V. R. Saste, Head of Dept. & Dr. K. H. Munde,
Principal, R.I.T.P., for their support and the help extended.
➢ I would also like to thank R.I.T.P college for providing the necessary resources
and facilities to carry out this project effectively. The conducive environment
fostered an atmosphere of learning and innovation, enabling me to explore the
intricacies of 8086 microprocessor programming.
➢ Lastly, I am grateful to my family and friends for their unwavering support and
encouragement throughout this endeavor. Their understanding and encouragement
provided me with the motivation to persevere and achieve the project's objectives.
➢ Together, the collective efforts of all those involved have contributed to the
successful completion of this microproject, and for that, your sincerely thankful.
➢ INDEX
SY AIML 3
FIND THE NUMBER OF FIBONACCI SERIES
1. Abstract 1
2. Introduction 2
3. Features 3
4. Objective
6. Algorithm
7. Flow Chart 5
8. Program 7
9. Output 8
10. Conclusion 9
11. References
➢ Abstract
➢ This microproject delves into the implementation of the Fibonacci series calculation on the 8086
microprocessors, a widely used 16-bit microprocessor in the early days of computing. The
Fibonacci series, characterized by the sum of the two preceding terms to generate the next,
serves as an interesting algorithmic challenge to be executed on a constrained architecture like
the 8086.The primary objectives include:
SY AIML 4
FIND THE NUMBER OF FIBONACCI SERIES
➢ Introduction
➢ The "Finding the Number of Fibonacci Series in 8086 Microprocessor" merges the realms of
classical mathematical problem-solving and low-level assembly language programming on the
iconic 8086 microprocessor. In this exploration, the project endeavours to unravel the Fibonacci
series, a timeless sequence defined by the sum of its two preceding terms, within the constraints
and nuances of the 16-bit architecture of the 8086 microprocessors.
• Project Objectives: -
The primary goal of this microproject is to design and implement an efficient assembly language
program capable of calculating the Fibonacci series on the 8086 microprocessors. This task
necessitates a deep understanding of the processor's instruction set, careful management of registers,
and the application of optimization techniques to ensure the effective execution of the algorithm.
The project aims to achieve the following key objectives:
SY AIML 5
FIND THE NUMBER OF FIBONACCI SERIES
• Algorithmic Implementation: -
Develop a robust assembly language code that successfully computes the Fibonacci series on the
8086 microprocessors. This phase of the project underscores the synergy between algorithmic
design and the intricacies of assembly language programming.
• Resource Optimization: -
Address the challenges posed by limited resources within the 8086 microprocessors by optimizing
code for memory usage and execution speed. The project places a premium on efficiency,
showcasing the ability to achieve optimal performance within the constraints of the chosen
architecture.
• Educational significance: -
Serve as an educational resource for enthusiasts and learners interested in delving into
microprocessor programming and algorithmic exploration. The microproject offers a practical lens
through which to understand the application of assembly language in solving classic mathematical
problems.
➢ Features
➢ Powerful Instruction Set: - The 8086 microprocessor boasts a rich and versatile
instruction set, providing a wide range of operations to perform various tasks. Its instruction set
includes arithmetic, logical, and control operations, enabling the execution of complex
programs.
SY AIML 6
FIND THE NUMBER OF FIBONACCI SERIES
➢ Effective Address Calculation: - The 8086 includes powerful addressing modes and
effective address calculation mechanisms. This feature simplifies the process of accessing data
in memory, contributing to the processor's overall efficiency.
➢ Bi-Directional Data Bus:- The 8086 features a bi-directional data bus, allowing data to be
transferred bidirectional between the processor and memory. This feature enhances data transfer
rates and contributes to the overall speed of the microprocessor.
➢ Interrupt Handling: The 8086 supports interrupt handling, enabling the processor to
respond to external events promptly. This feature is crucial for real-time applications and
facilitates efficient multitasking.
➢ Compatibility with Earlier Processors: - The 8086 is backward compatible with the
8080 microprocessors, easing the transition for developers and facilitating the migration of
software from earlier systems to the newer architecture.
➢ Extended Versions: - The 8086 architectures have extended versions, such as the 80186
and
80286, which built upon its foundation. These versions introduced additional features and
improvements, contributing to the evolution of Intel's x86 architecture.
➢ Legacy Impact: - The 8086 microprocessor's legacy is profound, as it laid the groundwork
for subsequent generations of processors, influencing the design of modern CPUs. Its
architecture continues to shape the x86 architecture, making it a cornerstone in the history of
computing
.
➢ Objective
1. Algorithm Implementation:
Develop a robust assembly language program to accurately calculate the Fibonacci series on the
8086 microprocessors. This involves translating the Fibonacci algorithm into executable code,
taking into account the specific instructions and registers of the 8086 architectures.
SY AIML 7
FIND THE NUMBER OF FIBONACCI SERIES
2. Resource Optimization:
Address the challenges posed by the limited resources of the 8086 microprocessors by optimizing
the code for memory usage and execution speed. Strive to achieve efficiency in algorithmic
execution within the constraints of a 16-bit architecture.
3. Educational Value:
Serve as an educational resource for individuals interested in microprocessor programming and
algorithmic problem-solving. Provide insights into the practical application of assembly language
on a historical and foundational architecture like the 8086.
5. Historical Appreciation:
Acknowledge and incorporate the historical significance of the 8086 microprocessors into the
project. Emphasize the enduring impact of this architecture on the evolution of computing, thereby
fostering an appreciation for the foundations of modern processors.
7. Optimization Strategies:
Explore and implement optimization strategies that maximize the performance of the Fibonacci
series calculation on the 8086 microprocessors. This may include minimizing memory access,
reducing unnecessary instructions, and leveraging the available registers effectively.
2. Historical Appreciation: -
Working with the 8086 microprocessor allows for an appreciation of the historical roots of
computing. By choosing this architecture, the project pays homage to one of the pioneering
processors that laid the foundation for modern computing systems.
3. Resource Efficiency: -
The constraints of the 8086 microprocessors necessitate efficient use of resources. This
microproject encourages programmers to optimize code for memory usage and execution speed,
promoting resource-efficient programming practices.
4. Skill Development: -
Implementing the Fibonacci series calculation on the 8086 microprocessor enhances programming
skills, especially in assembly language. It provides an opportunity for individuals to develop
expertise in working with a specific architecture, which can be valuable for understanding other
historical or embedded systems.
5. Programming Practice: -
Implementing Fibonacci series algorithms serves as valuable programming
practice for individuals learning assembly language or low-level programming on the 8086
Microprocessor.
1. Limited Resources:
The 8086 microprocessors have limited resources, including a restricted address space and a limited
number of registers. Working within these constraints can be challenging, especially when dealing
with large Fibonacci numbers that may require extensive memory.
SY AIML 9
FIND THE NUMBER OF FIBONACCI SERIES
➢ Algorithm
1. Input: Take the input from the user or have a predefined value for which you want to find
the Fibonacci number.
2. Initialize: Set up variables to hold the initial values of the Fibonacci sequence, typically
starting with 0 and 1.
3. Loop: Create a loop to generate subsequent Fibonacci numbers until reaching the desired
position.
4. Fibonacci Calculation: Inside the loop, calculate the next Fibonacci number by adding
the previous two numbers.
SY AIML 10
FIND THE NUMBER OF FIBONACCI SERIES
SY AIML 11
FIND THE NUMBER OF FIBONACCI SERIES
➢ Flow chart
SY AIML 12
FIND THE NUMBER OF FIBONACCI SERIES
➢ Program
.MODEL SMALL
.STACK 100h
.DATA
fibLimit DW 10 ; Define the limit of Fibonacci series
fibSeries DW 100 DUP(?) ; Define an array to store Fibonacci series
.CODE
MAIN PROC
mov ax, @data ; Initialize data segment
mov ds, ax
; Input: Get the limit of the Fibonacci series from the user mov ah, 01h
; Function to read a character from standard input, with echo int 21h
; Call DOS interrupt to read a character sub al, 30h ; Convert ASCII
character to binary mov bl, al ; Store the limit in bl
SY AIML 13
FIND THE NUMBER OF FIBONACCI SERIES
display:
; Output: Display the Fibonacci series mov
cx, 0 ; Reset counter mov si, OFFSET
fibSeries ; Point to the array
mov ah, 02h ; Function to display a character
displayLoop:
mov ax, [si] ; Load the next Fibonacci number cmp ax, 0
; Check if Fibonacci number is zero je endProgram ; If true,
end program add ax, 30h ; Convert binary to ASCII
character int 21h ; Display the character add si,
2 ; Move to next index inc cx ; Increment counter
cmp cx, fibLimit ; Check if all Fibonacci numbers are displayed
jge endProgram ; If true, end program mov dl, ',' ; Load
the comma character int 21h ; Display the comma mov
dl, ' ' ; Load the space character int 21h ; Display the
space
jmp displayLoop ; Repeat display for the next Fibonacci number
endProgram:
mov ah, 4Ch ; Exit program
int 21h ; Call DOS interrupt
MAIN ENDP
END MAIN
SY AIML 14
FIND THE NUMBER OF FIBONACCI SERIES
➢ Output
SY AIML 15
FIND THE NUMBER OF FIBONACCI SERIES
➢ Conclusion
Concluding the task of finding the number of Fibonacci series using the 8086 microprocessor
involves several key points:
In conclusion, the provided assembly code effectively achieves the task of finding the number of
Fibonacci series using the 8086 microprocessors, demonstrating an understanding of algorithmic
principles, memory management, and program structure tailored for the target architecture.
SY AIML 16
FIND THE NUMBER OF FIBONACCI SERIES
➢ References
1. https://chatGPT.openai.com
2. https://www.scribd.com
3. https://www.geeksforgeeks.org.com
4. https://www.tutorialspoint.com
5. https://www.coursehero.com
6. https://www.mindluster.com
SY AIML