Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
9 views

Microprocessor Module 1 and 2

Uploaded by

bhaleraosamyak08
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Microprocessor Module 1 and 2

Uploaded by

bhaleraosamyak08
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

BLOCK DIAGRAM OF MICROCOMPUTER

• Microcomputer is small computer, wherein one can see the association of


microprocessor, I/O peripherals, data and programmable memory as well as
other supporting circuits at one place, but not in single chip.
• The earlier computers like mainframes and minicomputers were
comparatively much larger and more expensive.
• Many microcomputers are also personal computers.

Elements of microcomputer
• The microcomputer has microprocessor, memory, buses, and I/O devices as
shown in the above block diagram.
• Microprocessor : The microprocessor is the central processing unit. It does all
the arithmetic and logical operations through internal registers and ALU
(Arithmetic Logic Unit). It also works as a master to control the data transfer
which includes address generation, bus synchronization and actual data transfer.
Generally, the frequency of operation of microprocessor is in Megahertz which
means the time period is in microsecond. So, it is called as microprocessor.
• Memory : The microprocessor does not have internal memory. So external
memories need to be interfaced with the microprocessor. It includes ROM which
is used for storage of program and RAM which is used to store data temporarily.
Upon reset or power cut, the data in RAM is erased while data in ROM remains
the same. Apart from these, some systems may include EEPROM as per the
applications requirement.
• Buses : For actual data transfer between CPU and peripheral devices or
memory, buses are used. A bus is collection of connectors/paths (typically in
multiples of 8) and is used for data transfer. Depending upon the use, the buses
can be classified in 3 types, viz., address bus, data bus and control bus. The data
bus carries data in bidirectional way. The address bus is used to carry the
address whereas control bus is used to synchronize data transfer.
• I/O devices : The input/output devices are necessary to interact with external
world. The devices can be interfaced through a peripheral controller IC. Similar
to memory, input devices send data to CPU and output devices receive data from
CPU through buses. The I/O device can be as simple as keys and LEDs.
Types of Programming Languages
A computer is simply a machine and hence it cannot perform any task itself.
Therefore, to make a computer functional different coding languages are
developed, which are known as programming languages.

A computer programming language is a language in which the codes are written to


instruct the computer to perform tasks.

Computer programming languages are broadly classified into the following three
main categories −

• Machine Language
• Assembly Language
• High-level Language
Read this article to get an overview of assembly language and high-level
languages, and how they are different from each other.

What is Assembly Language?


Assembly language is a type of low-level programming language which is used for
writing instructions for computers or other programmable devices. Since, it is a
low-level language, therefore, it can communicate with computer hardware
directly.

In assembly language, the computer codes are written using words and
expressions that are easier to understand for human. The computer processor
can only execute machine codes, hence it is required to convert the assembly
codes into machine codes. For this purpose, a utility program is used to convert
assembly code into executable machine code. This utility program which converts
assembly code into machine code is called assembler.

The major advantages of assembly language are less memory requirement, less
execution time, easier to write instructions and codes, etc.

What is High-level Language?


High-Level Language, also called HLL, is a category of computer programming
languages that use English like statements to write the computer instructions
and codes. These are the most widely used programming languages because they
are easy to understand to human being. However, similar to the assembly
language, the CPU cannot process the high-level language codes directly, i.e. they
need to be translated first into the executable machine codes. For this, there
are two types of language translators used namely, interpreter and compiler.
The major advantages of high-level languages include easy to write, debug, and
understand, machine independent, etc. The common examples of high-level
languages are C, C++, Java, Python, C#, etc.

Now, let us discuss the important differences between assembly language and
high-level language.

Difference between Assembly Language and High-


level Language
The following table highlights all the significant differences between assembly
language and high-level language −

Parameter Assembly Language High-Level Language

Assembly language is a computer High-level language is a


programming language in which computer program
Definition abbreviated keywords are used to language in which English
write instruction codes. like statements are used
to write codes.

A language translator called High-level language


“assembler” is required to convert requires an interpreter
the assembly language code into or a compiler to convert
Language
the machine code. the high-level language
translator
codes into the
executable machine
codes.

Assembly language is a low-level High-level language, as


Level of
language. the name implies, is high-
language
level language.

Assembly language is less High-level language is


Programmer
programmer friendly programming highly user friendly
friendliness
language. programming language.
Computer instructions written in Computer instructions
Speed of
assembly language execute faster. written in high-level
execution
language execute slower.

Machine Assembly language is machine High-level language is


dependency dependent. machine independent.

Assembly language is more prone The chances of errors in


Prone to
to errors. high-level languages are
error
less.

Assembly language codes require High-level language


Memory
less memory space. codes require more
requirement
memory space.

The length of executable codes in The length of executable


Code length assembly language is shorter. codes in high-level
language is longer.

Assembly language codes are High-level language


relatively difficult to debug. It is codes are very easy to
Debug
more challenging and time- debug.
consuming.

Assembly language is a complex High-level languages are


programming language, as to write easy to write codes
the instruction codes in assembly without much knowledge
Complexity
language, the programmer must about the computer
have a deep understanding of hardware and
hardware and system architecture. architecture.

Assembly language codes are more High-level language


efficient. codes are less efficient,
Efficiency as the coder has less
control over the
underlying hardware.
The readability of assembly High-level language
Readability
language codes is less. codes are more readable.

Assembly language programs take High-level language


Development more time and effort to develop. programs require less
time & effort development time and
effort.

Assembly language codes require High-level language


Memory
manual memory management. codes provide automatic
management
memory management.

Assembly language uses symbolic High-level languages use


representation of machine codes. keywords and
Syntax
statements similar to
English language.

Assembly language is primarily High-level languages are


used to program processors, mainly used for
Applications microcontrollers, embedded developing software
systems, device drivers, etc. applications, web
applications, etc.

Conclusion
To conclude, assembly language is a low-level language in which the codes are
written using symbolic representation of machine codes, whereas high-level
languages are programming languages that use keywords and phrases which are
closer to natural language like English to write the computer instructions.
Examples of some commonly used high-level languages include C, C++, Java,
Python, C#,
EVOLUTION OF MICROPROCESSOR
Intel introduced its first 4-bit microprocessor 4004 in 1971 and its 8-bit
microprocessor 8008 in 1972. These microprocessors could not survive as general
purpose microprocessors due to their design and performance Limitations. The launch
of the first general purpose 8-bit microprocessor 8080 in 1974 by Intel is considered
to be the first major stepping stone towards the development of advanced
microprocessors. The microprocessor 8085 followed 8080, with a few more added
features to its architecture, which resulted in a functionally complete microprocessor.
The main limitations of the 8-bit microprocessors were their low speed, low memory
addressing capability, limited number of general purpose registers and a less powerful
instruction set All these limitations at the 8-bit microprocessors pushed the designers
to build more powerful processors in terms of advanced architecture, more processing
capability, larger memory addressing capability and a more powerful instruction set The
8086 was a result of such developmental design efforts

In the family of 16-bit microprocessors, intel’s 8086 was the first one to be launched
in 1978. The introduction of the 16-bit processor was a result of the increasing demand
for more powerful and high speed computational resources. The 8086 microprocessor
has a much more powerful instruction set along with the architectural developments
which imparts substantial programming flexibility and improvement in speed over the 8-
bit microprocessors.

The peripheral chips designed earlier for 8085 were compatible with microprocessor
8086 with slight or no modifications: Though there is a considerable difference
between the memory addressing techniques of 8085 and 8086, the memory interfacing
technique is similar, but includes the use of a few additional signals. The clock
requirements are also different as compared to 8085, but the overall minimal system
organisation of 8086 is similar to that of a general 8-bit microprocessor.
HISTORY OF INTEL PROCESSORS

8 bit Microprocessor Limitations


• In 8085 Microprocessor, Processor can perform any arithmetic and logical
operation only on 8 bit data at a time.
• In 8085 microprocessor, only 16 bit address lines are there so we can access
64KB of memory
• 8085 Microprocessor has multiplexed address and data bus, so extra hardware is
required to separate address and the data signals.
• Flags are very limited in 8085
• Interrupts are very limited in 8085.
• Operating frequency is less in 8085 microprocessor, so the speed of execution
is slow.
• In 8085 Microprocessor, we cannot design multi-processor system.
• In 8085 microprocessor due to limited 8 bit size of the all registers, we can store
limited data bytes in the microprocessor memory.
Features/Specifications of Microprocessor 8086
Architecture of 8086
Register Organisation of 8086
Minimum Mode of 8086
8282 (8 bits) latch :
The latches are buffered D FF. They are used to separate the valid
address from the multiplexed Address/data bus by using the control
signal ALE, which is connected to strobe(STB) of 8282. The ALE is
active high signal. Here three such latches are required because the
address is 20 bits.

8286 (8 bits) transceivers :


They are bidirectional buffers and also known as data amplifiers. They
are used to separate the valid data from multiplexed add/data bus.
Two such transceivers are needed because the data bus is 16 bits long.
8286 is connected to DT/R’ and DEN’ signals. They are enabled through
the DEN signal .The direction of data on the data bus is controlled by
the DT/R’ signal. DT/R’ is connected to T and DEN’ is connected to OE’.

• 8284 clock generator is used to provide the clock.


• M/IO’= 1,then Memory Read or Write is performed over the bus.
and when M/IO’ = 0, then I/O operation is performed.
• The signals RD’ and write WR’ are used to identify whether a
read bus cycle or a write bus cycle is performing. When WR’ = 0
,then it indicates that valid output data on the data bus.
• RD’ indicates that the 8086 is performing a read data or
instruction fetch process is occurring .During read operations,
one other control signal is also used, which is DEN ( data
enable) and it indicates the external devices when they should
put data on the bus.
• Control signals for all operations are generated by decoding
M/IO’, RD’, WR’. They are decoded by 74138 3:8 decoder.

• INTR and INTA :
When INTR = 1,then there is an interrupt to 8086 by other
devices for their service. When INTA’= 0,then it indicates that
the processor is ready to service them.
• The bus request is made by other devices using the HOLD signal
and the processor acknowledges them using the HLDA output
signal.
Timing Diagrams of Minimum Mode

Read Machine Cycle Timing Diagram in Minimum Mode


Write Machine Cycle Timing Diagram in Minimum Mode
MAXIMUM MODE OF 8086
Timing Diagrams of Maximum Mode
Pin Description of 8086

You might also like