Microprocessor Notes
Microprocessor Notes
Accumulator
It is an 8-bit register used to perform arithmetic, logical, I/O & LOAD/STORE
operations. It is connected to internal data bus & ALU.
Program counter
It is a 16-bit register used to store the memory address location of the next
instruction to be executed. Microprocessor increments the program whenever an
instruction is being executed, so that the program counter points to the memory
address of the next instruction that is going to be executed.
Stack pointer
It is also a 16-bit register works like stack, which is always
incremented/decremented by 2 during push & pop operations.
Temporary register
It is an 8-bit register, which holds the temporary data of arithmetic and logical
operations.
Flag register
It is an 8-bit register having five 1-bit flip-flops, which holds either 0 or 1
depending upon the result stored in the accumulator.
These are the set of 5 flip-flops −
Sign (S)
Zero (Z)
Auxiliary Carry (AC)
Parity (P)
Carry (C)
Its bit position is shown in the following table −
D7 D6 D5 D4 D3 D2 D1 D0
S Z AC P CY
Interrupt control
As the name suggests it controls the interrupts during a process. When a
microprocessor is executing a main program and whenever an interrupt occurs,
the microprocessor shifts the control from the main program to process the
incoming request. After the request is completed, the control goes back to the
main program.
There are 5 interrupt signals in 8085 microprocessor: INTR, RST 7.5, RST 6.5, RST
5.5, TRAP.
8085 Architecture
We have tried to depict the architecture of 8085 with this following image −
Microprocessor - 8085 Pin Configuration
Address bus
A15-A8, it carries the most significant 8
8-bits of memory/IO address.
Data bus
AD7-AD0,
AD0, it carries the least significant 8
8-bit address and data bus.
IO/M
This signal is used to differentiate between IO and Memory operations, i.e. when it
is high indicates IO operation and when it is low then it indicates memory
operation.
S1 & S0
These signals are used to identify the type of current operation.
Power supply
There are 2 power supply signals − VCC & VSS. VCC indicates +5v power supply
and VSS indicates ground signal.
Clock signals
There are 3 clock signals, i.e. X1, X2, CLK OUT.
X1, X2 − A crystal (RC, LC N/W) is connected at these two pins and is used
to set frequency of the internal clock generator. This frequency is internally
divided by 2.
CLK OUT − This signal is used as the system clock for devices connected
with the microprocessor.
TRAP
It is a non-maskable interrupt, having the highest priority among all interrupts.
Bydefault, it is enabled until it gets acknowledged. In case of failure, it executes as
ISR and sends the data to backup memory. This interrupt transfers the control to
the location 0024H.
RST7.5
It is a maskable interrupt, having the second highest priority among all interrupts.
When this interrupt is executed, the processor saves the content of the PC register
into the stack and branches to 003CH address.
RST 6.5
It is a maskable interrupt, having the third highest priority among all interrupts.
When this interrupt is executed, the processor saves the content of the PC register
into the stack and branches to 0034H address.
RST 5.5
It is a maskable interrupt. When this interrupt is executed, the processor saves the
content of the PC register into the stack and branches to 002CH address.
INTR
It is a maskable interrupt, having the lowest priority among all interrupts. It can
be disabled by resetting the microprocessor.
When INTR signal goes high, the following events can occur −
The microprocessor checks the status of INTR signal during the execution of
each instruction.
When the INTR signal is high, then the microprocessor completes its current
instruction and sends active low interrupt acknowledge signal.
When instructions are received, then the microprocessor saves the address
of the next instruction on stack and executes the received instruction.
Control Instructions
1 Following is the table showing the list of Control instructions
with their meanings.
Logical Instructions
2 Following is the table showing the list of Logical instructions
with their meanings.
Branching Instructions
3 Following is the table showing the list of Branching instructions
with their meanings.
Arithmetic Instructions
4
Following is the table showing the list of Arithmetic instructions
with their meanings.
Set
This instruction is used to implement the interrupts
SIM None interrupt
7.5, 6.5, 5.5, and serial data output.
mask
Compare the
R The contents of the operand (register or memory)
CMP register or memory
are M compared with the contents of the
M with the
accumulator.
accumulator
Compare
The second byte data is compared with the
CPI 8-bit data immediate with the
contents of the accumulator.
accumulator
Logical AND
R The contents of the accumulator are logically AND
register or memory
ANA with M the contents of the register or memory,
M with the
and the result is placed in the accumulator.
accumulator
Logical AND The contents of the accumulator are logically AND
ANI 8-bit data
immediate with the with the 8-bit data and the result is placed in the
accumulator accumulator.
Exclusive OR
R The contents of the accumulator are Exclusive OR
register or memory
XRA with M the contents of the register or memory,
M with the
and the result is placed in the accumulator.
accumulator
Exclusive OR The contents of the accumulator are Exclusive OR
XRI 8-bit data immediate with the with the 8-bit data and the result is placed in the
accumulator accumulator.
Jump on
JP S=0
positive
Jump on
JM S=1
minus
Jump on
JZ Z=1
zero
Jump on
JNZ Z=0
no zero
Jump on
JPE parity P=1
even
Jump on
JPO P=0
parity odd
Call on
CC CY=1
Carry
Call on no
CNC CY=0
Carry
Call on
CP S=0
positive
The program sequence is
transferred to the memory address
Call on
CM S=1 16-bit Unconditional given in the operand. Before
minus
address subroutine call transferring, the address of the next
instruction after CALL is pushed
Call on onto the stack.
CZ Z=1
zero
Call on no
CNZ Z=0
zero
Call on
CPE parity P=1
even
Call on
CPO P=0
parity odd
Return on
RC CY=1
Carry
Return on
RNC CY=0
no Carry
Return on
RP S=0
positive
The program sequence is
transferred from the subroutine to
Return on Return from
RM S=1 the calling program based on the
minus None subroutine
specified flag of the PSW and the
conditionally
program execution begins at the
Return on new address.
RZ Z=1
zero
Return on
RNZ Z=0
no zero
Return on
RPE parity P=1
even
Return on
RPO P=0
parity odd
Instruction Restart
Address
RST 0 0000H
RST 2 0010H
RST 3 0018H
RST 4 0020H
RST 5 0028H
RST 6 0030H
RST 7 0038H
Interrupt Restart
Address
TRAP 0024H
Add the The 8-bit data and the Carry flag are added
immediate to the contents of the accumulator and the
ACI 8-bit data to the result is stored in the accumulator.
accumulator
with carry Example − ACI 55K
Reg. pair, 16bit Load the The instruction stores 16-bit data into the
LXI
data register pair register pair designated in the operand.
immediate Example − LXI K, 3025M
Interrupts in 8085
Interrupts are the signals generated by the external devices to request the
microprocessor to perform a task. There are 5 interrupt signals, i.e. TRAP, RST
7.5, RST 6.5, RST 5.5, and INTR.
Interrupt are classified into following groups based on their parameter −
Vector interrupt − In this type of interrupt, the interrupt address is known
to the processor. For example: RST7.5, RST6.5, RST5.5, TRAP.
Non-Vector interrupt − In this type of interrupt, the interrupt address is
not known to the processor so, the interrupt address needs to be sent
externally by the device to perform interrupts. For example: INTR.
Maskable interrupt − In this type of interrupt, we can disable the interrupt
by writing some instructions into the program. For example: RST7.5,
RST6.5, RST5.5.
Non-Maskable interrupt − In this type of interrupt, we cannot disable the
interrupt by writing some instructions into the program. For
example: TRAP.
Software interrupt − In this type of interrupt, the programmer has to add
the instructions into the program to execute the interrupt. There are 8
software interrupts in 8085, i.e. RST0, RST1, RST2, RST3, RST4, RST5,
RST6, and RST7.
Hardware interrupt − There are 5 interrupt pins in 8085 used as hardware
interrupts, i.e. TRAP, RST7.5, RST6.5, RST5.5, INTA.
RST7.5
It is a maskable interrupt, having the second highest priority among all interrupts.
When this interrupt is executed, the processor saves the content of the PC register
into the stack and branches to 003CH address.
RST 6.5
It is a maskable interrupt, having the third highest priority among all interrupts.
When this interrupt is executed, the processor saves the content of the PC register
into the stack and branches to 0034H address.
RST 5.5
It is a maskable interrupt. When this interrupt is executed, the processor saves the
content of the PC register into the stack and branches to 002CH address.
INTR
It is a maskable interrupt, having the lowest priority among all interrupts. It can
be disabled by resetting the microprocessor.
When INTR signal goes high, the following events can occur −
The microprocessor checks the status of INTR signal during the execution of
each instruction.
When the INTR signal is high, then the microprocessor completes its current
instruction and sends active low interrupt acknowledge signal.
When instructions are received, then the microprocessor saves the address
of the next instruction on stack and executes the received instruction.