0% found this document useful (0 votes)
13 views67 pages

Unit 4

The document provides a comprehensive overview of microprocessors, specifically focusing on the Intel 8085 microprocessor, including its features, architecture, and instruction set. It details the characteristics that differentiate microprocessors, the pin descriptions, and the various groups of instructions such as data transfer and arithmetic operations. Additionally, it explains the role of registers, interrupts, and the operation of the instruction decoder within the microprocessor system.

Uploaded by

bot871229
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views67 pages

Unit 4

The document provides a comprehensive overview of microprocessors, specifically focusing on the Intel 8085 microprocessor, including its features, architecture, and instruction set. It details the characteristics that differentiate microprocessors, the pin descriptions, and the various groups of instructions such as data transfer and arithmetic operations. Additionally, it explains the role of registers, interrupts, and the operation of the instruction decoder within the microprocessor system.

Uploaded by

bot871229
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 67

21-Nov-2010 [email protected].

in 1
 Microprocessor is an electronic circuit that
functions as the central processing unit (CPU) of a
computer, providing computational control.
 Microprocessors are also used in other advanced
electronic systems,such as computer printers,
automobiles, and jet airliners
 Microprocessor: A silicon chip that contains a CPU.

 In the world of personal computers, the terms microprocessor and


CPU are used interchangeably.

 One or more microprocessors typically serve as a central processing


unit (CPU) in a computer system or handheld device.

 Three basic characteristics differentiate microprocessors:


 Instruction set: The set of instructions that the microprocessor can execute.
 Bandwidth: The number of bits processed in a single instruction.
 Clock speed: Given in megahertz (MHz), the clock speed determines how
many instructions per second the processor can execute.
8085 INTRODUCTION
The features of INTEL 8085 are :
• It is an 8 bit processor.
• It is a single chip N-MOS(Metal Oxide Semiconductor)
device with 40 pins.
• It has multiplexed address and data bus.(AD0-AD7).
• It works on 5 Volt dc power supply.
• The maximum clock frequency is 3 MHz while
minimum frequency is 500kHz.
• It provides 74 instructions with 5 different addressing
modes.
8085 INTRODUCTION
 It provides 16 address lines so it can access 2^16 =64K
bytes of memory.
 It generates 8 bit I/O address so it can access 2^8=256 input
ports.
 It provides 5 hardware interrupts:TRAP, RST 5.5, RST 6.5,
RST 7.5,INTR.
 It provides Acc ,one flag register ,6 general purpose
registers and two special purpose registers(SP,PC).
 It provides serial lines SID ,SOD.So serial peripherals can
be interfaced with 8085 directly.
8085 PIN DIAGRAM
8085 PIN DESCRIPTION
Some important pins are :
 AD0-AD7: Multiplexed Address and data lines.
 A8-A15: Tri-stated higher order address lines.
 ALE: Address latch enable is an output signal.It goes high
when operation is started by processor .
 S0,S1: These are the status signals used to indicate type of
operation.
 RD¯: Read is active low input signal used to read data from
I/O device or memory.
 WR¯:Write is an active low output signal used write data on
memory or an I/O device.
8085 PIN DESCRIPTION
 READY:This an output signal used to check the status
of output device.If it is low, µP will WAIT until it is
high.
 TRAP:It is an Edge triggered highest priority , non
mask able interrupt. After TRAP, restart occurs and
execution starts from address 0024H.
 RST5.5,6.5,7.5:These are maskable interrupts and have
low priority than TRAP.
 INTR¯&INTA:INTR is a interrupt request signal after
which µP generates INTA or interrupt acknowledge
signal.
 IO/M¯:This is output pin or signal used to indicate
whether 8085 is working in I/O mode(IO/M¯=1) or
Memory mode(IO/M¯=0 ).
8085 PIN DESCRIPTION
 HOLD&HLDA:HOLD is an input signal .When µP receives HOLD
signal it completes current machine cycle and stops executing next
instruction.In response to HOLD µP generates HLDA that is HOLD
Acknowledge signal.

 RESET IN¯:This is input signal.When RESET IN¯ is low µp restarts


and starts executing from location 0000H.

 SID: Serial input data is input pin used to accept serial 1 bit data .

 X1X2 :These are clock input signals and are connected to external
LC,or RC circuit.These are divide by two so if 6 MHz is connected to
X1X2, the operating frequency becomes 3 MHz.

 VCC&VSS:Power supply VCC=+ -5Volt& VSS=-GND reference.


8085 ARCHITECTURE
Arithmetic and Logical group
Accumulator: It is 8 bit general purpose register.
• It is connected to ALU.
• So most of the operations are done in Acc.
• The accumulator is also identified as register A
Temporary register: It is not available for user
• All the arithmetic and logical operations are done in the
temporary register but user can’t access it.
Flag: It is a group of 5 flip flops used to know status of various
operations done.
• The Flag Register along with Accumulator is called PSW
or Program Status Word.
• These flags have critical importance in the decision-making
process of the micro- processor.
• The conditions (set or reset) of the flags are tested through
the software instructions
Arithmetic and Logical group
Flag Register is given by:

S Z X AC X P X CY
S:Sign flag is set when result of an operation is negative.
Z:Zero flag is set when result of an operation is 0.
Ac:Auxiliary carry flag is set when there is a carry out of
lower nibble or lower four bits of the operation.
CY:Carry flag is set when there is carry generated by an
operation.
P:Parity flag is set when result contains even number of 1’s.
Rest are don’t care flip flops.
Register Group
 Temporary registers (W,Z):These are not available for
user. These are loaded only when there is an operation
being performed.
 General purpose:There are six general purpose registers
in 8085 namely B,C,D,E,H,L.These are used for various
data manipulations.
 Special purpose :There are two special purpose registers
in 8085:
1. SP :Stack Pointer.
2. PC:Program Counter.
Register Group
Stack Pointer: This is a temporary storage memory 16 bit
register. Since there are only 6 general purpose registers,
there is a need to reuse them .
 Whenever stack is to be used previous values are PUSHED
on stack and then after the program is over these values are
POPED back.
Program Counter: It is 16 bit register used to point the location
from which the next instruction is to be fetched.
 When a single byte instruction is executed PC is
automatically incremented by 1.
 Upon reset PC contents are set to 0000H and next
instruction is fetched onwards.
INSTRUCTION REGISTER,DECODER & CONTROL

 Instruction register:When an instruction is fetched , it


is executed in instruction register.This register takes the
Opcode value only.
 Instruction decoder: It decodes the instruction from
instruction register and then to control block.
 Timing and control:This is the control section of µP.It
accepts clock input .
INTERRUPT CONTROL
 It accepts different interrupts like TRAP INT5.5,6.5,7.5and
INTR.

SERIAL IO CONTROL
GROUP
• It is used to accept the serial 1 bit data by
using SID and SOD signals and it can be
performed by using SIM & RIM
instructions.
INSTRUCTIONS SET OF 8085
DATA TRANSFER GROUP
MOV Rd, Rs.(Move data from Rs to Rd).
Example:
MOV C,B. Move the content of register B to C.
Initially After execution
B=10H. B=10H.
C=20H. C=10H.
Flags Affected :No flags affected.
Addressing mode: Register.
DATA TRANSFER GROUP
MOV Rd, M (Move data from Memory to Rd).
Example:
MOV C,M. Move the content of Memory i.e. “H or L” to C.
Suppose the Data at memory pointed By HL pair at C200H is
10H.
Initially After execution
H=C2,L=00,C=30H H=C2,L=00,C=10H.
Flags Affected :No flags affected.
Addressing mode: Indirect.
DATA TRANSFER GROUP
MVI R, Data.(Move Immediate data to Register).
Example:
MVI B, 30H. (Move the data 30 H to Register B)
Initially After execution

B=40H B=30H
Flags Affected :No flags affected.
Addressing mode: Immediate.
DATA TRANSFER GROUP
LXI Rp,16 bit .(Load 16 bit data to Register pair Immediate).
Example:
LXI SP, C200H. (Load Stack pointer with C200H).
Initially After execution
SP=C800H SP=C200H.
Flags Affected :No flags affected.
Addressing mode: Immediate.
DATA TRANSFER GROUP
STA address.(Store Acc data to address).
Example:
STA C200H. (Move the data from Acc to C200H).
Suppose in Acc the data is 10H.
Initially After execution
A=10H, C200=20H C200=10H , A=10H
Flags Affected :No flags affected.
Addressing mode: Direct.
DATA TRANSFER GROUP
LHLD address.(Load HL pair with data from address).
Example:
LHLD C200H. (Move the data from C200 to HL pair).
Suppose at C200 the data is 20H,30H .
Initially After execution
H=10H,L=20H H=20H,L=30H.
C2=20H,00=30H C2=20H,00=30H

Flags Affected :No flags affected.


Addressing mode: Direct.
DATA TRANSFER GROUP
 XCHG (Exchange the data from HL pair to DE pair)
Example : XCHG
Initially After execution
H=20H,L=30H, H=40H,L=70H.
D=40H,E=70H. D=20H,E=30H.
Flags Affected :No flags affected.
Addressing mode: Register.
DATA TRANSFER GROUP
IN 8 bit address (Move the data from address to Acc)
Example: IN 80H
Move the data from 80H port address to Accumulator.
Suppose data at 80H is 39H.
Initially After execution
A=20H. A=39H
Flags Affected :No flags affected.
Addressing mode: Direct.
DATA TRANSFER GROUP
OUT 8 bit address (Move the data from Acc to address)
Example: OUT 80H
Move the data from Acc to port address 80H.
Suppose data at Acc is 39H.
Initially After execution
A=39H. 80=10H. A=39H,80=39H.
Flags Affected :No flags affected.
Addressing mode: Direct.
DATA TRANSFER GROUP
 Example:Write a program to exchange contents of memory
location D000H to D001H
LDA D000H Load Acc with data from D000
MOV B,A Move the data to B
LDA D0001H Load Acc with data from D001
STA 2000H Store Acc data at D000
MOV A,B Move B’s data to A
STA 2001H Store data from D000 to D0001
RST1 Stop.
ARITHMETIC GROUP
ADD R (ADD register content with Acc and result in A ).
Example:
ADD C. (ADD the content of C with A).
Suppose the Data at C register is 10H.
Initially After execution
. C= 10H ,A=10H A=20H,C=10H.
Flags Affected :All flags are modified.
Addressing mode: Register
ARITHMEIC GROUP
ADD M(ADD H or L Reg content with Acc and result in A ).
Example:
ADD M. (ADD the content of HL with A).
 Suppose the Data at memory pointed by HL register
1020H is 10H.
Initially After execution
. H= 10H ,L=20H . H=10H,L=20H.
A=20H,C=10H. A=30H.
Flags Affected :All flags are modified.
Addressing mode: Register Indirect.
ARITHMETIC GROUP
ADI Data(ADD immediate data with Acc and result in A ).
Example:
ADI 30H. (ADD 30H with A).
Initially After execution
A=20H, A=50H.
Flags Affected :All flags are modified.
Addressing mode: Immediate.
ARITHMETIC GROUP
ADC R (ADD register content with Acc and carry and result
in A ).
Example:
ADC C. (ADD the content of C with A with carry).
Suppose the Data at C register is 10H and carry is 01H.
Initially After execution
. C= 10H ,A=10H A=21H,C=10H.
Flags Affected :All flags are modified.
Addressing mode: Register
ARITHMETIC GROUP
Example: Write a program to perform 16 bit addition of 1234H&
4321H. Store answer at H & L registers.
MVI B,21H B=21H
MVI A,34H A=34H
MVI C,43H C=43H
MVI D,12H D=12H
ADD B A=34+21H
MOV L,A L=55H
MOV A,C A=43H
ADC D A=43+12H
MOV H,A H=55H
RST1 STOP.
ARITHMETIC GROUP
SUB R (Subtract register content from Acc and result in A ).
Example:
SUB B. (Subtract the content of B from A ).
Suppose the Data at B register is 10H .
Initially After execution
. B= 10H ,A=20H A=10H,B=10H.
Flags Affected :All flags are modified.
Addressing mode: Register
ARITHMETIC GROUP
SBB R (Subtract register content from Acc with borrow and
result in A ).
Example:
SBB B. (Subtract the content of B from A with borrow).
Suppose the Data at B register is 10H and borrow is 01H .
Initially After execution
. B= 0FH ,A=20H A=10H,B=0FH.
Flags Affected :All flags are modified.
Addressing mode: Register
ARITHMETIC GROUP
SUI Data(Subtract immediate data from Acc and result in A ).
Example:
SUI 30H. (Subtract 30H from A).
Initially After execution
A=80H, A=50H.
Flags Affected :All flags are modified.
Addressing mode: Immediate
ARITHMETIC GROUP
Example: Subtract data of C800 H from C200H.Store the
result at 2C00.
LDA C800H
MOV B,A
LDA C200H
SUB B
STA 2C00H
RST1
ARITHMETIC GROUP
DAD Rp (Add specified register pair with HL pair)
Example:DAD D.(Add the content of E with L and that of
D with H register and result in HL pair)
• Suppose the content of HL pair is H=20H ,L=40H and
DE pair is D=30H, E=10H.
Initially After execution
H=20H ,L=40H H=50H ,L=50H
D=30H, E=10H D=30H, E=10H
Flags Affected :Only carry flag is modified.
Addressing mode: Register.
ARITHMETIC GROUP
DAA (Decimal adjust accumulator)
Example:
MVI A,12H
ADI 39H
DAA .
 This instruction is used to store result in BCD form.If
lower nibble is greater than 9 ,6 is added while if upper
nibble is greater than 9,6 is added to it to get BCD result.
Initially After execution
12+39=4B 12+39=51 in BCD form.
Flags Affected :All flags are modified.
Addressing mode: Register
ARITHMETIC GROUP
INR R (Increment register content by 1 ).
Example:
INR C. (Increment the content of C by 1).
Suppose the Data at C register is 10H.
Initially After execution
C= 10H C=11H.
Flags Affected :All flags are modified except carry flag.
Addressing mode: Register.
ARITHMETIC GROUP
DCR R (Decrement register content by 1 ).
Example:
DCR C. (Decrement the content of C by 1).
Suppose the Data at C register is 10H.
Initially After execution
C= 10H C=0FH.
Flags Affected :All flags are modified except carry flag.
Addressing mode: Register.
ARITHMETIC GROUP
INX Rp (Increment register pair content by 1 ).
Example:
INX SP (Increment the content of Stack pointer pair by 1).
INX B. (Increment the content of BC pair by 1).
Suppose the Data at BC register is 1010H and SP is C200H
Initially After execution
BC= 1010H BC=1011H.
SP=C200H SP=C201H.
Flags Affected :No flags are modified.
Addressing mode: Register.
LOGICAL GROUP
ANA R (Logically AND register content with Acc and result in
A ).
Example:
ANA C (AND the content of C with A).
Suppose the Data at C register is 10H.
Initially After execution
C= 10H ,A=10H A=10H,C=10H.
Flags Affected :S,Z,P are modified Cy=reset,AC=set.
Addressing mode:Register.
LOGICAL GROUP
ANI Data (Logically AND immediate data with Acc and result
in A ).
Example:
ANI 10H (AND 10H with A).
Initially After execution
A=10H A=10H
Flags Affected :S,Z,P are modified Cy=reset,AC=set.
Addressing mode: Immediate.
LOGICAL GROUP
ORA R (Logically OR register content with Acc and result in
A5 ).
Example:
ORA C (OR the content of C with A).
Suppose the Data at C register is 17H.
Initially After execution
C= 17H ,A=10H A=17H,C=17H.
Flags Affected :S,Z,P are modified Cy=reset,AC=reset.
Addressing mode:Register.
LOGICAL GROUP
ORI Data (Logically OR immediate data with Acc and result
in A ).
Example:
ORI 10H (OR 10H with A).
Initially After execution
A=30H A=30H
Flags Affected :S,Z,P are modified Cy=reset,AC=set.
Addressing mode: Immediate.
LOGICAL GROUP
XRA R (Logically XOR register content with Acc and result in
A ).
Example:
XRA C (XOR the content of C with A).
Suppose the Data at C register is 17H.
Initially After execution
C= 17H ,A=10H A=07H,C=17H.
Flags Affected :S,Z,P are modified Cy=reset,AC=reset.
Addressing mode:Register.
LOGICAL GROUP
CMP R (Compare register content with Acc and result in A ).
Example:
CMP C (Compare the content of C with A).
Suppose the Data at C register is 17H.
Initially After execution
C= 10H ,A=17H A=17H,C=17H.
Flags Affected :S=0,Z=0,P=0, Cy=reset,AC=reset.
Addressing mode:Register.
LOGICAL GROUP
CPI Data (Compare immediate data with Acc ).
Example:
CPI 10H (Compare the content of C with A).
Initially After execution
A=17H A=17H.
Flags Affected :S=0,Z=0,P=0, Cy=reset,AC=reset.
Addressing mode:Immediate.
LOGICAL GROUP
RLC (Rotate accumulator left ).
Example:
MOV A,03H.
RLC (Rotate accumulator left).
Initially After execution
A=03H A=06H.
Flags Affected :Only carry flag is affected.
Addressing mode:Implied.
LOGICAL GROUP
RAL (Rotate accumulator left with carry ).
Example:
MOV A,03H.
RAL (Rotate accumulator left with carry).
Initially After execution
A=03H , carry =01H A=07H.
Flags Affected :Only carry flag is affected.
Addressing mode:Implied.
LOGICAL GROUP
RRC (Rotate accumulator right ).
Example:
MOV A,03H.
RRC (Rotate accumulator right).
Initially After execution
A=03H , A=81H.
Flags Affected :Only carry flag is affected.
Addressing mode:Implied.
LOGICAL GROUP
Write a program to reset last 4 bits of the number 32H
Store result at C200H.
MVI A, 32H A=32H
ANI F0H 00110010 AND 1111000
=00110000=30H
STA C200H. C200=30H
RST1 Stop
BRANCH GROUP

JMP address(Unconditional jump to address)


Example:
JMP C200H.
 After this instruction the Program Counter is loaded with
this location and starts executing and the contents of PC
are loaded on Stack.

Flags Affected :No Flags are affected.


Addressing mode:Immediate.
CALL address(Unconditional CALL from
address)
Example:
CALL C200H.
 After this instruction the Program Counter is loaded with
this location and starts executing and the contents of PC
are loaded on Stack.
Flags Affected :No Flags are affected.
Addressing mode:Immediate
BRANCH GROUP
Conditional Jump Instructions.
 JC (Jump if Carry flag is set)
 JNC (Jump if Carry flag is reset)
 JZ (Jump if zero flag set)
 JNZ (Jump if zero flag is reset)
 JPE (Jump if parity flag is set)
 JPO (Jump if parity odd or P flag is reset )
 JP (Jump if sign flag reset )
 JM (Jump if sign flag is set or minus)
BRANCH GROUP
Conditional Call Instructions.
 CC (Call if Carry flag is set)
 CNC (Call if Carry flag is reset)
 CZ (Call if zero flag set)
 CNZ (Call if zero flag is reset)
 CPE (Call if parity flag is set)
 CPO (Call if parity odd or P flag is reset )
 CP (Call if sign flag reset )
 CM (Call if sign flag is set or minus)
BRANCH GROUP
RET (Return from subroutine)
Example:
MOV A,C
RET
 After this instruction the Program Counter POPS PUSHED
contents from stack and starts executing from that address
.
Flags Affected :No Flags are affected.
Addressing mode:Register indirect .
BRANCH GROUP
RST (Restart instruction)
Example:
MOV A,C
RST 1.
 After this instruction the Program Counter goes to address
0008H and starts executing from that address .
Flags Affected :No Flags are affected.
Addressing mode:Register indirect.
BRANCH GROUP
The addresses of the respective RST commands are:
Instruction Address
RST 0 0000H
RST 1 0008H
RST 2 0010H
RST 3 0018H
RST 4 0020H
RST 5 0028H
RST 6 0030H
STACK AND MACHINE CONTROL
PUSH Rp.(Push register pair contents on stack).
Example:LXI SP FFFFH.
PUSH H. (Move the content of HL pair on Stack).
 Suppose at HL pair the data is H= 20H,L= 30H & SP is
initialized at FFFFH
Initially After execution
H=20H,L=30H H=20H,L=30H.
SP=FFFF H FFFD=30H,FFFE=20H
Flags Affected :No flags affected.
Addressing mode: Register indirect.
STACK AND MACHINE CONTROL
POP Rp.(Pop register pair contents from stack).
Example:POP D(POP the content of DE pair from Stack).
 Suppose at DE pair the data is H= 20H,L= 30H SP was
initialized at FFFFH
Initially After execution
D=20H,E=30H D=10H,E=80H.
FFFD=80H,FFFE=10H
Flags Affected :No flags affected.
Addressing mode: Register indirect
STACK AND MACHINE CONTROL
XTHL (Exchange HL register pair contents with top of stack).
Example:XTHL(Exchange top with HL pair).
 Suppose at HL pair the data is H= 20H,L= 30H & SP =FFFFH
& at locations FFFF=10H and at FFFE= 80H.
Initially After execution
H=20H,L=30H H=10H,L=80H.
SP=FFFF =10H,FFFE=80H FFFD=20H,FFFE=30H
Flags Affected :No flags affected.
Addressing mode: Register indirect.
ADDRESSING MODES OF 8085
Immediate addressing:
Immediate data is transferred to address or register.
Example:
MVI A,20H. Transfer immediate data 20H to accumulator.
Number of bytes:
Either 2 or 3 bytes long.
1st byte is opcode.
2nd byte 8 bit data .
3rd byte higher byte data of 16 bytes.
ADDRESSING MODES OF 8085
Register addressing:
Data is transferred from one register to other.
Example:
MOV A, C :Transfer data from C register to accumulator.
Number of bytes:
Only 1 byte long.
One byte is opcode.
ADDRESSING MODES OF 8085
Direct addressing:
 Data is transferred from direct address to other register or
vice-versa.
Example:
LDA C200H .Transfer contents from C200H to Acc.
Number of bytes:
These are 3 bytes long.
1st byte is opcode.
2nd byte lower address.
3rd byte higher address.
ADDRESSING MODES OF 8085
Indirect addressing:
 Data is transferred from address pointed by the data
in a register to other register or vice-versa.
Example:
MOV A, M: Move contents from address pointed by M to
Acc.
Number of bytes:
These are 3 bytes long.
1st byte is opcode.
2nd byte lower address.
3rd byte higher address.
ADDRESSING MODES OF 8085
Implied addressing:
 These doesn’t require any operand. The data is specified in
Opcode itself.
Example: RAL: Rotate left with carry.
No.of Bytes:
These are single byte instruction or Opcode only.
Thank You
Have a Nice Day

[email protected] 21-Nov-2010 67

You might also like