You are on page 1of 13

Generate Fibonacci Series

Abstract

The Intel 8086 is a 16-bit microprocessor that was introduced in 1978. It is the
first member of the x86 family of processors. The 8086 has a 16-bit data bus, 20-
bit address bus, and can address up to 1 MB of memory. It has a segmented
memory model, allowing it to access more memory than its 16-bit address bus
would normally allow. The 8086 also introduced the concept of protected mode,
which provides hardware support for multitasking and memory protection.

Page | 1
SY AIML [RITP, Pune]
Generate Fibonacci Series

Introduction

The Intel 8086 microprocessor, introduced in 1978, marked a significant


milestone in the history of computing. As a 16-bit microprocessor, the 8086 was
a groundbreaking development, offering enhanced performance and capabilities
compared to its predecessors. It played a pivotal role in the evolution of the x86
architecture, which has become the dominant architecture in the personal
computer industry.
The architecture of the 8086 featured a 16-bit data bus and a 20-bit address bus,
allowing it to address up to 1 MB of memory. This was a substantial improvement
over previous 8-bit processors, enabling the 8086 to handle more complex tasks
and larger datasets. The 8086 also introduced a segmented memory model, where
memory addresses were formed by combining a 16-bit segment address and a 16-
bit offset address. This architecture provided greater flexibility and efficiency in
memory management.
One of the key features of the 8086 was its rich instruction set, which included a
wide range of data movement, arithmetic, logical, and control transfer
instructions. This made it a versatile processor capable of performing a variety of
tasks. The 8086 also supported both signed and unsigned arithmetic operations,
further enhancing its versatility and utility.
The 8086 operated at a clock speed of 5 MHz, which was considered high for its
time. Later versions of the 8086, such as the 8086-2 and 8086-1, increased the
clock speed to 8 MHz and 10 MHz, respectively, further improving performance.
In terms of compatibility, the 8086 was designed to be backward compatible with
the 8-bit Intel 8080 and 8085 microprocessors. This meant that software written
for these processors could run on the 8086 with minimal modifications, making
it easier for developers to transition to the new architecture.

Page | 2
SY AIML [RITP, Pune]
Generate Fibonacci Series

Features of the 8086 Microprocessor

1. 16-bit Architecture: The 8086 was a 16-bit microprocessor, meaning it processed


data and instructions in 16-bit chunks. This allowed for more efficient processing
compared to 8-bit processors.

2. 16-bit Data Bus: The 8086 had a 16-bit data bus, which allowed it to transfer 16
bits of data at a time between the processor and memory or other devices.

3. 20-bit Address Bus: With a 20-bit address bus, the 8086 could address up to 1 MB
of memory, providing greater memory capacity compared to earlier processors.

4. Segmented Memory Model: The 8086 used a segmented memory model, where
memory addresses were formed by combining a 16-bit segment address and a 16-bit
offset address. This allowed for flexible memory management.

5. Instruction Set: The 8086 had a rich instruction set, including a variety of data
movement, arithmetic, logical, and control transfer instructions. It supported both
signed and unsigned arithmetic operations.

6. Clock Speed: The original 8086 operated at a clock speed of 5 MHz. Later versions,
such as the 8086-2 and 8086-1, increased the clock speed to 8 MHz and 10 MHz,
respectively, improving performance.

7. Backward Compatibility: The 8086 was designed to be backward compatible


with the 8-bit Intel 8080 and 8085 microprocessors. This meant that software written
for these processors could run on the 8086 with minimal modifications.

8. Operating Modes: The 8086 supported two operating modes: real mode and
protected mode. Real mode provided a simple 16-bit operating environment, while
protected mode offered advanced memory protection and multitasking features.

9. Peripheral Interface: The 8086 featured an integrated peripheral interface,


including interrupt control, direct memory access (DMA), and input/output (I/O)
capabilities, making it suitable for a wide range of applications.

Page | 3
SY AIML [RITP, Pune]
Generate Fibonacci Series

Industry Background

The Intel 8086 microprocessor, introduced in 1978, was a pivotal development in


the history of computing. It played a significant role in shaping the personal
computer industry and laid the foundation for modern x86 architecture.

1. Transition to 16-bit computing: The 8086 marked a transition from 8-bit


to 16-bit computing. Its 16-bit architecture allowed for greater
computational power and larger memory addressing capabilities, enabling
more complex and powerful software.
2. Segmented memory model: One distinctive feature of the 8086 was its
segmented memory model, which allowed it to address up to 1 MB of
memory. This was a significant improvement over the 64 KB limit of many
8-bit processors, enabling more sophisticated applications and operating
systems.
3. Compatibility with earlier processors: Despite being a 16-bit processor,
the 8086 was designed to be compatible with software written for earlier
8-bit Intel processors like the 8080 and 8085. This ensured a smooth
transition for software developers and facilitated the adoption of the new
architecture.
4. Popularity in early PCs: The 8086 and its successor, the 8088, became
the basis for the IBM PC and its clones, which were instrumental in
popularizing personal computing. The widespread adoption of the IBM PC
architecture contributed to the dominance of the x86 architecture in the PC
market.
5. Impact on the industry: The success of the 8086 and the IBM PC
architecture established Intel as a major player in the microprocessor
industry. It also contributed to the standardization of the x86 architecture,
which remains dominant in personal computing to this day.

Page | 4
SY AIML [RITP, Pune]
Generate Fibonacci Series

Objective

The Intel 8086 microprocessor, like any other microprocessor, requires software
to function. Here are some of the key software requirements for the 8086:
1. Assembly Language: Programs for the 8086 are typically written in
assembly language, which provides a low-level interface to the processor's
instruction set. Assembly language programs are converted into machine
code, which the processor can execute directly.
2. Operating System: The 8086 can run a variety of operating systems,
including early versions of DOS (Disk Operating System) and CP/M
(Control Program for Microcomputers). These operating systems provide
higher-level functionality such as file management, memory management,
and input/output operations.
3. Device Drivers: To interact with peripherals such as keyboards, displays,
and storage devices, the 8086 requires device drivers. These are software
modules that enable the operating system to communicate with and control
external devices.
4. Application Software: The 8086 can run a wide range of application
software, including word processors, spreadsheets, games, and other
programs. These applications are typically written in higher-level
languages such as C or Pascal, and compiled into machine code that the
processor can execute.
5. Development Tools: To develop software for the 8086, developers need
tools such as assemblers, compilers, and debuggers. These tools help
programmers write, test, and debug software for the processor.

Page | 5
SY AIML [RITP, Pune]
Generate Fibonacci Series

Algorithm of Fibonacci Series

1. Start: Begin the program execution.


2. Initialize Registers: Initialize the necessary registers to store the Fibonacci
series elements and other variables.
3. Input Limit: Input the limit up to which the Fibonacci series needs to be
generated.
4. Initialize Variables: Set the initial values of the Fibonacci series elements.
5. Generate Fibonacci Series:
• Calculate the next Fibonacci number by adding the previous two
numbers.
• Store the result in memory or registers.
• Repeat this process until the limit is reached.
6. Output Fibonacci Series: Display or store the generated Fibonacci series.
7. End: End the program execution.

Page | 6
SY AIML [RITP, Pune]
Generate Fibonacci Series

Flow Chart Fibonacci Series

Page | 7
SY AIML [RITP, Pune]
Generate Fibonacci Series

Program of Fibonacci Series

Input:

Output:

Page | 8
SY AIML [RITP, Pune]
Generate Fibonacci Series

Advantages

1. 16-bit Architecture
2. Backward Compatibility
3. Segmented Memory Model (up to 1 MB)
4. Powerful Instruction Set
5. Improved Performance
6. Expansion Capabilities

Disadvantages

1. Limited addressing modes compared to newer architectures


2. Complex segmented memory model
3. Lack of built-in floating-point arithmetic support
4. Relatively high power consumption
5. Limited direct support for high-level languages
6. Requires external components for full system implementation

Application

1. Personal Computers: It powered early IBM PCs and compatible systems,


laying the foundation for modern x86 architecture.
2. Embedded Systems: Used in industrial control systems, robotics, and
embedded applications due to its versatility and performance.
3. Communication Systems: Found in early networking equipment and
communication devices for data processing and control.
4. Military and Aerospace: Used in defense systems for control, data
processing, and communication purposes.
5. Automotive: Employed in automotive systems for engine control,
diagnostics, and other embedded applications.

Page | 9
SY AIML [RITP, Pune]
Generate Fibonacci Series

Software Requirement

The Intel 8086 microprocessor, like any other microprocessor, requires software
to function. Here are some of the key software requirements for the 8086:
1. Assembly Language: Programs for the 8086 are typically written in
assembly language, which provides a low-level interface to the processor's
instruction set. Assembly language programs are converted into machine
code, which the processor can execute directly.
2. Operating System: The 8086 can run a variety of operating systems,
including early versions of DOS (Disk Operating System) and CP/M
(Control Program for Microcomputers). These operating systems provide
higher-level functionality such as file management, memory management,
and input/output operations.
3. Device Drivers: To interact with peripherals such as keyboards, displays,
and storage devices, the 8086 requires device drivers. These are software
modules that enable the operating system to communicate with and control
external devices.
4. Application Software: The 8086 can run a wide range of application
software, including word processors, spreadsheets, games, and other
programs. These applications are typically written in higher-level
languages such as C or Pascal, and compiled into machine code that the
processor can execute.
5. Development Tools: To develop software for the 8086, developers need
tools such as assemblers, compilers, and debuggers. These tools help
programmers write, test, and debug software for the processor.

Page | 10
SY AIML [RITP, Pune]
Generate Fibonacci Series

Hardware Requirement

The Intel 8086 microprocessor, like any other microprocessor, requires certain
hardware components to function properly. Here are the key hardware
requirements for the 8086:
1. Clock Generator: The 8086 requires a clock signal to synchronize its
internal operations. A clock generator provides this signal, typically at a
frequency of 5, 8, or 10 MHz, depending on the specific 8086 variant.
2. Memory: The 8086 requires memory to store program instructions and
data. It supports a segmented memory model, allowing it to address up to
1 MB of memory. This memory can be in the form of RAM (Random
Access Memory) and ROM (Read-Only Memory).
3. Address Bus: The 8086 has a 20-bit address bus, which allows it to address
up to 1 MB of memory. The address bus is used to specify the memory
location of instructions and data.
4. Data Bus: The 8086 has a 16-bit data bus, which is used to transfer data
between the processor and memory or between the processor and I/O
devices. The data bus carries the actual data being processed by the
processor.
5. Control Bus: The 8086 uses a control bus to communicate control signals
between the processor and other components. These signals include
read/write signals, status signals, and bus control signals.
6. Input/Output (I/O) Ports: The 8086 requires I/O ports to communicate
with external devices such as keyboards, displays, and storage devices.
These ports provide a way for the processor to send and receive data from
external devices.
7. Power Supply: Like any electronic component, the 8086 requires a stable
power supply to operate. The power supply provides the necessary voltage
and current to power the processor and other components.
8. Support Chips: The 8086 may require support chips such as the 8284
clock generator, 8288 bus controller, and 8255 programmable peripheral
interface (PPI) to facilitate communication with memory and I/O devices.

Page | 11
SY AIML [RITP, Pune]
Generate Fibonacci Series

Conclusion

The Intel 8086 microprocessor was a groundbreaking chip that revolutionized the
computing industry. Its 16-bit architecture, backward compatibility, and powerful
instruction set paved the way for modern x86 processors. Despite its limitations,
such as the complex segmented memory model and lack of certain features found
in newer processors, the 8086's impact cannot be overstated. It found widespread
use in personal computers, embedded systems, communication devices, and
various other applications, making it a foundational component of modern
computing.
In assembly language programming (ALP), implementing the Fibonacci series is
a common exercise that demonstrates fundamental programming concepts such
as loops, arithmetic operations, and memory management.
The Fibonacci series is a sequence of numbers where each number is the sum of
the two preceding ones, usually starting with 0 and 1. The sequence begins 0, 1,
1, 2, 3, 5, 8, 13, and so on.
To conclude, implementing the Fibonacci series in ALP helps in understanding:
1. Looping Constructs: Using loops (like a for or while loop) to iterate and
calculate the Fibonacci numbers.
2. Arithmetic Operations: Performing addition and storage operations to
compute each Fibonacci number.
3. Memory Management: Storing and updating values in memory locations
to maintain the sequence.

Page | 12
SY AIML [RITP, Pune]
Generate Fibonacci Series

References

IEEE Papers:
1. Session_1_Industrial_University_and_cate_training_Preparing_the_engineer_for_the_micro
processor_era[1].pdf
2. Session 1: Industrial, University and cate training: Preparing the engineer for the
microprocessor era | SAIEE Journals & Magazine | IEEE Xplore
3. The development of an extended macro-assembler for the production of microprocessor
software | SAIEE Journals & Magazine | IEEE Xplore
4. The impact and implications of microprocessors on instrumentation | SAIEE Journals &
Magazine | IEEE Xplore
5. Objectives and objections associated with microprocessor training courses | SAIEE Journals &
Magazine | IEEE Xplore

Books:
1. The Intel Microprocessors by Barry B. Brey
2. Microprocessor 8086 by Sunil Mathur
3. The 8086 Microprocessor by Kenneth Ayala
4. Microprocessor 8085, 8086 by Abhishek Yadav

Websites:
1. Experiment-3 Program to generate Fibonacci series 8086 8086 Programming -
Care4you
2. Lab 5: Programming with 8086 EMU Emulator , ALP for Average of N Numbers and
Fibonacci Series – Sanjay Vidhyadharan
3. 8086 program to generate Fibonacci Sequence (tutorialspoint.com)
4. assembly - Simple fibonacci printer in 8086 assemlby - Stack Overflow

Videos:
1. (12) 8086 Microprocessor by Engineering Funda - YouTube
2. Lec-1: Microprocessor and Microcontroller in Computer system (youtube.com)
3. MIC ( Microprocessor ) For MSBTE Diploma | Lecture #1 | Introduction to 8086 | Pin
Diagram Explained (youtube.com)
4. Lec-13: Architecture of 8086 Microprocessor (youtube.com)
5. 8086 Microprocessor Architecture || 8086 block diagram || Instruction Cycle [ Animated ]
(youtube.com)

Page | 13
SY AIML [RITP, Pune]

You might also like