8085 microprocessor architecture:
A microprocessor is a multipurpose, programmable, Clock-driven, register-based electronic device that reads binary instructions from a storage device called memory, accepts binary data as input and process data according to the instructions, and provide results as output.In other words, a microprocessor is a chip containing some control and logic circuits that are capable of making arithmetic and logical decisions based on input data and produces the corresponding arithmetic or logical output.
The 8085 microprocessor is an 8-bit microprocessor with 16 bit of address bus and 8 bit of data bus. 8085 microprocessor is the family of x-85. also, this microprocessor supports integer and decimal numbers.
Points to be noted in 8085:
- It is an 8-bit microprocessor
- It has a 16-bit address bus and the 8-bit data bus
- It doesn’t support pipelining
- It can access up to 64 kb memory
- It can access 28 =256 i/o devices
- It supports integer and decimal numbers
- It can operate in a single mode
- It is a family of x-85
- It is a single block device
- 8085 doesn’t have an instruction queue
- It doesn’t support multiprocessing
- In 8085 memory space is not segmented
- It is the old version
1. Interrupt controls:
- The various interrupt control signals (INTR, , RST 6.5, RST 7.5, & TRAP) are used to interrupt a microprocessor.
- It controls all the interrupt request given by the input devices.
- The TRAP has the highest priority and INTR having the least priority and the interrupt control send the data according to priority.
2. 8-bit internal data bus:
- It is connected between the chip and i/o devices which is used to transfer the data, 8 bit of data at a time
3. Serial i/o control:
- Two serial i/o control signals (SID & SOD ) are used to implement the serial data transmission
- ALU is an 8-bit chip because it takes 8 bit of data at a time. This is the main part which performs addition, subtraction, increment, decrement operation.
- The ALU performs the computing functions; it includes the accumulator, temporary register, the arithmetic and logic circuits, and five flags. The temporary register is used to hold the data during arithmetic and logical operation. The result of the operation is stored in the accumulator and flags are set or reset according to the result of the operation. Flags generally reflect data conditions in the accumulator.
5. Accumulator (register A):
- The accumulator (Register A) is an 8-bit register that is the part of an arithmetic/logic unit (ALU). This register is accessible to the user and holds one of the operands and the result itself. 8085 microprocessor is accumulator based microprocessor because the operation of 8085 depends on the accumulator. Almost all the arithmetic and logic functions are performed on the data present in the accumulator.
6. Temp register(W&Z):
- They are 8-bit register not accessible to the programmer during program execution. 8085A places data into it for an operation period and send back to it after completion.
7. Instruction register:
- It is an 8-bit register not accessible to the programmer it receives the operation codes of instruction from the initial data bus and passes to the instruction decoder which decodes to that microprocessor knows which type of operation is to be performed.
8. Register array:
Registers B, C, D, E
These four 8 bit registers(B, C, D, E) are accessible to the programmer. These can be easily used individually as 8-bit individual registers or in pairs as BC and DE as 16-bit registers.
Register H & L
Register H & L can be used as 8-bit registers like others or as pairs. However, these can be used for indirect addressing.
9. Program Counter (PC) and Stack Pointer (SP) :
These are 16-bit registers used to hold addresses. The size of these registers(pc & sp) is 16 bits because the memory addresses are of 16 bits.
The computer program contains the sequence of coded instructions, These are stored in memory. The microprocessor uses the PC(program counter) register to sequence the execution of the instructions. The primary function of the program counter is to point the memory address from which the next byte is to be fetched. PC is incremented every time by one when the machine code is fetched.
A stack is an area of memory set aside to store data. The location of the memory is defined by the 16-bit register called stack pointer(SP). When the data is stored its value is decreased by 1 while, increased by 1 when the data is retrieved
10. Timing and control unit:
Timing and control unit manages all this equipment in it and for this, we have given the power supply and clock signals. This unit also synchronizes all the microprocessor operations with the clock and generates the control signals necessary for communication between the microprocessor and peripherals devices. The control signals are comparable to the sync pulse in an oscilloscope.
Flags consist of a register with five flip-flops, each holding a specific status of the output of the operation of ALU. The current states of the flags indicate the result of arithmetic and logic operation, which is used for decision-making processes. There are no decision instructions for the AC flag. The different flags are:
- S – Sign Flag: Sign flag Is set if the MSB of the result of the last operation is 1. ( It is also called negative since 1 in the most significant bit)MSB position of two’s complement number) ·
- Z – Zero Flag: Is set if the ALU operation results in 0, and the flag is reset if the result is not 0. The operation of the flag is affected by the accumulator and also by other registers. ·
- AC – Auxiliary Carry Flag: When the arithmetic operation generates a carry from lower nibble to upper nibble then auxiliary carry flag is set. It is also useful while performing BCD arithmetic.
- P – Parity Flag: Is set if the result has an even number of 1s while reset if the number of 1 is odd.
- CY – Carry Flag: This flag is set if the arithmetic operation results in a carry and is reset if otherwise.
The bit position reserved for these flags in the flag register is as follows:
D7 D6 D5 D4 D3 D2 D1 D0
|S||Z||AC||P|| CY |
Difference between 8085 and 8086
|8085 Microprocessor||8086 Microprocessor|
|1||It is an 8-bit microprocessor||It is a 16-bit microprocessor|
|2||It has a 16-bit address bus and 8-bit data bus||It has 20-bit address bus and 16-bit data bus|
|3||It doesn’t support pipelining||It supports pipelining|
|4||It can access up to 64 kb memory||It can access up to 1 MB|
|5||It can access 28 =256 i/o devices||It can access 216=65536 i/o devices|
|6||It supports integer and decimal numbers||It supports integer decimal and ASCII also|
|7||It can operate in a single mode||It can operate in two mode|
|8||It is a family of x-85||It is a family of x-86|
|9||It is a single block device||It has two blocks EU & IU|
|10||8085 doesn’t have an instruction queue||8086 has an instruction queue|
|11||It doesn’t support multiprocessing||It supports multiprocessing|
|12||In 8085 memory space is not segmented||Its memory space is segmented|
|13||It is an old version||It is a new version|