Accumulator register, Temporary register, Instruction register, Stack Pointer, Program Counter are the various registers in 8085.
Sign flag, Zero flag, Auxillary flag, Parity flag, Carry flag.
Stack pointer is a special purpose 16-bit register in the Microprocessor, which holds the address of the top of the stack.
Program counter holds the address of either the first byte of the next instruction to be fetched for execution or the address of the next byte of a multi byte instruction, which has not been completely fetched.
In both the cases it gets incremented automatically one by one as the instruction bytes get fetched. Also Program register keeps the address of the next instruction.
LIFO (Last In First Out) stack is used in 8085.In this type of Stack the last stored information can be retrieved first.
The Micro Processor enters into Halt-State and the buses are tri-stated.
A bus is a group of conducting lines that carriers data, address, & control signals.
Three Logic Levels are used and they are High, Low, High impedance state. The high and low are normal logic levels & high impedance state is electrical open circuit conditions. Tri-state logic has a third line called enable line.
8085 is a one address microprocessor.
In 8085 the interrupts are classified as Hardware and Software interrupts.
TRAP, RST7.5, RST6.5, RST5.5, INTR.
RST0, RST1, RST2, RST3, RST4, RST5, RST6, RST7.
TRAP has the highest priority.
Immediate, Direct, Register, Register indirect, Implied addressing modes.
There are 12 interrupts in 8085.
Flag is called as Low order register & Accumulator is called as High order Register.
Keyboards, Floppy disk are the examples of input devices. Printer, LED / LCD display, CRT Monitor are the examples of output devices.
Yes, it can be used, if an accurate clock frequency is not required. Also, the component cost is low compared to LC or Crystal.
Because of high stability, large Q (Quality Factor) & the frequency that doesn’t drift with aging. Crystal is used as a clock source most of the times.
The Quality factor is also defined, as Q. So it is a number, which reflects the lossness of a circuit. Higher the Q, the lower are the losses.
RST 6.5 & RST 5.5 are level-triggering interrupts
The signals of the 8085 microprocessor based on their functions can be classified into 7 categories namely:
- Frequency and power signals
- Address and data buses
- The control bus
- Interrupt Signals
- Serial Input / Output signals
- DMA signals
- Reset Signals
The various functional blocks of the 8085 microprocessor are:
- Arithmetic logic unit
- Address buffer
- Increment / decrement address latch
- Interrupt control
- Serial I/O control
- Timing and control circuitry
- Instructions decoder and machine cycle encoder.
The steps followed in this type of transfer are as follows:
- The peripheral device would request for an interrupt.
- The request acknowledgement for the transfer is issued at the end of instruction execution.
- Now the ISS routine is initialized, The PC has the return address which is now stored in the stack.
- Now data transfer is managed and coordinates by the ISS.
- Again the Interrupt system is enabled and the above steps are repeated.
Write A Program That Will Store The Contents Of An Accumulator And Flag Register At Locations 2000h And 2001h.?
By making use of the Push & Pop instructions the program can be written as:
- LXISP, 4000H – this step initiates the SP at 4000h.
- PUSH PSW – the contents of the accumulator and flag are pushed into the stack.
- POP B
- MOV A, B
- STA 2000H
- MOV A, C
- STA 2001H
On the basis of level the signals can be classified into the following types:
- Single level interrupts
- Multi level interrupts
- The differences between them are as follows:
- For single the interrupts are manages through a single ping whereas in multi they are managed by multiple pins.
- For single level interrupts polling is essential whereas for multi level it is not necessary.
- Single level interrupts are much slower than multi level interrupts.
The two major differences between INTR and the other hardware interrupts are as follows:
- All the hardware interrupts are vectored interrupts but the INTR interrupt is not so. An INTR interrupt will always get the address of a subroutine from the device ( external ) itself. In the case of other hardware interrupts the interrupts come from the call generated by the processor at a already determined vector location.
- In case of the INTR interrupt the return address of an interrupt is never saved but in the case of other hardware interrupts the locations is saved in the stack.
- The TRAP input is sensitive to both edge and level.
- The pulse width for this signal should be in excess as compared to the normal noise width.
- A second trap will never be able to respond for the second time as it requires the first trap to go through a high to low transition.
- The pulse widths are wider than normal widths so as to prevent unwanted false triggers.
The INTR is a maskable interrupt for the 8085. It has the lowest priority and is also non vectored. When this INTR signal goes into the high state the following things occur / take place:
- For every instruction that is executed the 8085 checks the status of this interrupt./
- Till an instruction is completed the signal of INTR will remain high. Once an instruction is completed the processor sends an acknowledgement signal INTA.
- As soon as the INTA signal goes low a new opcode is placed on the data bus for transfer.
- Once the new instruction is received the processor saves the address of new instruction into the STACK and an interrupt service subroutine begins.
The various types of addressing modes of the 8085 are as follows:
- Direct addressing: The instructions in itself contain the opearand. For ex. STA5513H or in/out instructions such as IN PORT C.
- Register addressing: The general purpose registers contain the operands. For ex. MOV A, B;
- Register indirect addressing: This involves the use of register pairs instead of a single register. For ex MOV A, M; ADD M.
- Immediate addressing: The example are MVI A, 07; or ADI 0F etc.
- Implicit addressing: this form of addressing contains no operands. For ex. RAR, CMA etc.
The various types of data transfer operations possible are:
- Data transfer is possible between two registers.
- It is also possible between a memory location and a register.
- Also it can occur between an input/output device and an accumulator.
- In reality data is never transferred it can only be copied from one location to another.
- The Hold is a hardware input whereas HLT is a software instruction.
- When the HLT state is executed the processor simply stops and the buses are driven to tri state. No form of acknowledgement signal is given out by the processor.
- In case of HOLD the processor goes into hold state but the buses are not driven to tri state.
- When the processor goes into the HOLD state it gives out an HLDA signal. This signal can be made to use by other devices.
Yes the 8085 does support several externally initiated operations. The possible operations and the corresponding pins for them in the 8085 are as follows:
- It supports resetting ( this is possible with the Reset Pin ).
- Various interruptions ( these are possible through Trap, RST 7.5, 6.5, 5.5 and the interrupt pins. )
- The 8085 also supports Readying with the help pf the Ready pin.
- It also has a HOLD pin which can basically pause the operation till required/ as required.
The flow of a typical Instruction word is as follows:
- The content of the program counter of 2 byte is transferred to the address register known as MAR ( memory address register ). This occurs at the starting of a fetch cycle.
- The contents are transferred via the address bus.
- Once this is done the timing and control section of the processor reads the contents of the referenced memory address location.
- After this the data is sent to the memory data register with the help of the data bus.
- Now the data is placed in the instruction register which will eventually decode and execute it.
Fetch cycle is the time required to fetch an opcode from a particular location in memory.
- General Fetch Cycles consist of 3T states.
- The first T state involves the sending of the memory address stored in the Program Counter to the memory.
- During the second T state the contents of the addressed memory is read ( this generally is the opcode at the specified location)
- In the third T state the opcode is sent to the Instruction register through the data bus for execution.
- For slower memories the processors has the provision to get in to the WAIT cycles as well.
- The WAIT state plays a significant role in preventing CPU speed incompatibilities.
- Many a times the processor is at a ready state to accept data from a device or location, but there might be no input available. This can lead to wastage of cpu time.
- So in such cases when the cpu is ready for an input but there is no such valid data then the system gets into WAIT state. In this scenario the pin 35 ( ready pin )is put into a low state.
- As soon as there is some valid data for the 8085 the system comes off the WAIT state and the low state of the READY pin is withdrawn.
- If there are more general purpose registers the program writing process is more flexible and convenient.
- The number of bits that would be required to detect the registers would increase with more registers, this results in the lowering of the number of operations.
- When a program would involve CALL subroutines the status of the registers would have to be saved and restored often, this would result in a significant overhead for the processor.
- Higher the number of these registers mores space would be used by them on the chip. This can create problems in adding / implementing other functions on the chip.
- The timing and control circuitry section of the 8085 is responsible for the generation of timing and control signals so that instructions can be executed.
- The types of signals involved are : Clock signals, Control signals, Status signals, DMA signals and also the reset section.
- It is responsible for the fetching and the decoding of the various operations.
- This section also aids in the generations of control signals for the executions of instructions and for the sync between external devices.
- The flag register in 8085 is an 8-bit register which contains 5 bit positions.
- These five flags are of 1bit F/F and are known as zero, sign, carry, parity and auxiliary carry.
- For sign flag if the result of an MSB operation is 1 then it is set else it is reset.
- The zero flag is set of the result of an instruction is zero.
- The auxiliary carry flag is used for BCD operations, not free to the programmer.
- The carry flag is used for carrying and borrowing in case of addition and subtraction operations.
- The parity flag is used for results containing an even number of one’s.
- The Stack pointer is a sixteen bit register used to point at the stack.
- In read write memory the locations at which temporary data and return addresses are stored is known as the stack.
- In simple words stack acts like an auto decrement facility in the system.
- The initialization of the stack top is done with the help of an instruction LXI SP.
- In order to avoid program crashes a program should always be written at one end and initialized at the other.
- It is one of the most important 8 bit register of 8085
- It is responsible for coordinating input and output to and from the microprocessor through it.
- The primary purpose of this register is to store temporary data and for the placement of final values of arithmetic and logical operations.
- This accumulator register is mainly used for arithmetic, logical, store and rotate operations.