The document provides instruction on the 8085 microprocessor instruction set. It discusses the different types of instructions including data transfer, arithmetic, and logical instructions. Data transfer instructions move data between registers and memory. Arithmetic instructions perform operations like addition, subtraction, incrementing, and decrementing. Logical instructions perform bitwise operations like AND and OR. The document provides examples of common instructions and explains their purpose and functionality.
1. Instruction Set
ā¢ Prof. Rajesh R.K.
ā¢ Assistant Professor,
ā¢ Department of MCA
ā¢ Mohandas College of Engineering &
Technology, Thiruvananthapuram, Kerala
2. Instruction
ā¢ An instruction is a binary pattern designed
inside a microprocessor to perform a specific
function.
ā¢ 8085 has 246 instructions.
ā¢ Each instruction is represented by an 8-bit
binary value.
3. 1. Introduction
ā¢ A microprocessor executes instructions given by the
user
ā¢ Instructions should be in a language known to the
microprocessor
ā¢ Microprocessor understands the language of 0ās and
1ās only
ā¢ This language is called Machine Language
4. Assembly language program to add two
numbers
MVI A, 2H ;Copy value 2H in register A
MVI B, 4H ;Copy value 4H in register B
ADD B ;A = A + B
Note:
ā¢ Assembly language is specific to a given processor
ā¢ For e.g. assembly language of 8085 is different than
that of Motorola 6800 microprocessor
5. Microprocessor understands Machine Language only!
ā¢ Microprocessor cannot understand a program
written in Assembly language
ā¢ A program known as Assembler is used to convert a
Assembly language program to machine language
Assembly
Language
Program
Assembler
Program
Machine
Language
Code
9. Classification Of Instruction Set
ā¢ There are 5 Types,
ā¢ (1) Data Transfer Instruction,
ā¢ (2) Arithmetic Instructions,
ā¢ (3) Logical Instructions,
ā¢ (4) Branching Instructions,
ā¢ (5) Control Instructions,
10. (1) Data Transfer Instructions
ā¢ MOV Rd, Rs
ā¢ MOV M, Rs
ā¢ MOV Rd, M
ā¢ This instruction copies the contents of the
source register into the destination register.
ā¢ The contents of the source register are not
altered.
ā¢ Example: MOV B,A or MOV M,B or MOV C,M
11. A 20 B 20
A F
B 30 C
D E
H 20 L 50
A 20 B
BEFORE EXECUTION AFTER EXECUTION
MOV B,A
A F
B 30 C
D E
H 20 L 50
A F
B C
D E
H 20 L 50
A F
B C 40
D E
H 20 L 50
MOV M,B
MOV C,M
40 40
30
12. ā¢ MVI R, Data(8-bit)
ā¢ MVI M, Data(8-bit)
ā¢ The 8-bit immediate data is stored in the
destination register (R) or memory (M), R is
general purpose 8 bit register such as
A,B,C,D,E,H and L.
ā¢ Example: MVI B, 60H or MVI M, 40H
(2) Data Transfer Instructions
13. A F
B C
D E
H L
A F
B 60 C
D E
H L
AFTER EXECUTIONBEFORE EXECUTION
MVI B,60H
40
HL=2050H
2051H
204FH 204FH
HL=2050H
2051H
MVI M,40H
BEFORE EXECUTION AFTER EXECUTION
14. ā¢ LDA 16-bit address
ā¢ The contents of a memory location, specified
by a 16-bit address in the operand, are
copied to the accumulator (A).
ā¢ The contents of the source are not altered.
ā¢ Example: LDA 2000H
(3) Data Transfer Instructions
16. (4) Data Transfer Instructions
ā¢ LDAX Register Pair
ā¢ Load accumulator (A) with the contents of
memory location whose address is specified
by BC or DE or register pair.
ā¢ The contents of either the register pair or the
memory location are not altered.
ā¢ Example: LDAX D
17. A F
B C
D 20 E 30
A 80 F
B C
D 20 E 30
80 80
AFTER EXECUTIONBEFORE EXECUTION
LDAX D
2030H 2030H
18. (5) Data Transfer Instructions
ā¢ STA 16-bit address
ā¢ The contents of accumulator are copied into
the memory location i.e. address specified by
the operand in the instruction.
ā¢ Example: STA 2000 H
19. A 50 A 50
50
AFTER EXECUTIONBEFORE EXECUTION
STA 2000H2000H 2000H
20. (6) Data Transfer Instructions
ā¢ STAX Register Pair
ā¢ Store the contents of accumulator (A) into
the memory location whose address is
specified by BC Or DE register pair.
ā¢ Example: STAX B
21. A 50 F
B 10 C 20
D E
A 50 F
B 10 C 20
D E
50
AFTER EXECUTIONBEFORE EXECUTION
STAX B
1020H 1020H
22. ā¢ LHLD 2050 Means..copy content of 2050 and 2051 to
HL pair
if
2050 -> 90H
2051->5AH
LHLD 2050 implies..
L -> 90H
H -> 5AH
23. ā¢
LXI means..Load Register Pair with Immediate data.. 16bit data
LXI B ,2050H
Loads BC pair with value 2050H
B-> 20H
C-> 50H
Its similar to 2 MVI instruction
ie
MVI B,20H
MVI C,50H
24. (7) Data Transfer Instructions
ā¢ SHLD 16-bit address
ā¢ Store H-L register pair in memory.
ā¢ The contents of register L are stored into
memory location specified by the 16-bit
address.
ā¢ The contents of register H are stored into the
next memory location.
ā¢ Example: SHLD 2500 H
25. H 30 L 60
BEFORE EXECUTION AFTER EXECUTION
60
30
H 30 L 60
SHLD 2500H2500H 2500H
204FH
2502H
204FH
2502H
26. (8) Data Transfer Instructions
ā¢ XCHG
ā¢ The contents of register H are exchanged
with the contents of register D.
ā¢ The contents of register L are exchanged with
the contents of register E.
ā¢ Example: XCHG
27. D 20 E 40
H 70 L 80
D 70 E 80
H 20 L 40
BEFORE EXECUTION AFTER EXECUTION
XCHG
28. (9) Data Transfer Instructions
ā¢ SPHL
ā¢ Move data from H-L pair to the Stack Pointer
(SP)
ā¢ This instruction loads the contents of H-L pair
into SP.
ā¢ Example: SPHL
29. H 25 L 00
SP
BEFORE EXECUTION
AFTER EXECUTION
H 25 L 00
SP 2500
SPHL
30. (10) Data Transfer Instructions
ā¢ XTHL
ā¢ Exchange HāL with top of stack
ā¢ The contents of L register are exchanged with
the location pointed out by the contents of
the SP.
ā¢ The contents of H register are exchanged
with the next location (SP + 1).
ā¢ Example: XTHL
32. (11) Data Transfer Instructions
ā¢ PCHL
ā¢ Load program counter with H-L contents
ā¢ The contents of registers H and L are copied into
the program counter (PC).
ā¢ The contents of H are placed as the high-order
byte and the contents of L as the low-order
byte.
ā¢
34. (12) Data Transfer Instructions
ā¢ IN 8-bit port address
ā¢ Copy data to accumulator from a port with 8-
bit address.
ā¢ The contents of I/O port are copied into
accumulator.
ā¢ Example: IN 80 H
35. 10 A
10 A 10
BEFORE EXECUTION
AFTER EXECUTION
IN 80H
PORT 80H
PORT 80H
36. (13) Data Transfer Instructions
ā¢ OUT 8-bit port address
ā¢ Copy data from accumulator to a port with 8-
bit address
ā¢ The contents of accumulator are copied into
the I/O port.
ā¢ Example: OUT 50 H
37. 10 A 40
40 A 40
BEFORE EXECUTION
AFTER EXECUTION
OUT 50H
PORT 50H
PORT 50H
38. Arithmetic Instructions
ā¢ These instructions perform the operations
like:
ā¢ Addition
ā¢ Subtraction
ā¢ Increment
ā¢ Decrement
39. (1) Arithematic Instructions
ā¢ ADD R
ā¢ ADD M
ā¢ The contents of register or memory are added
to the contents of accumulator.
ā¢ The result is stored in accumulator.
ā¢ If the operand is memory location, its address is
specified by H-L pair.
ā¢ Example: ADD C or ADD M
40. B C 30
D E
H L
B C 30
D E
H L
AFTER EXECUTIONBEFORE EXECUTION
B C
D E
H 20 L 50
B C
D E
H 20 L 50
AFTER EXECUTIONBEFORE EXECUTION
A 20
A 50A 20
A 30
ADD C
A=A+R
ADD M
A=A+M
10 10
2050 2050
41. (2) Arithematic Instructions
ā¢ ADC R
ā¢ ADC M
ā¢ The contents of register or memory and Carry Flag
(CY) are added to the contents of accumulator.
ā¢ The result is stored in accumulator.
ā¢ If the operand is memory location, its address is
specified by H-L pair. All flags are modified to reflect
the result of the addition.
ā¢ Example: ADC C or ADC M
42. B C 20
D E
H L
A 50
B C 20
D E
H L
A 71
AFTER EXECUTIONBEFORE EXECUTION
ADC C
A=A+R+CY
CY 1 CY 0
CY 1 CY 0
A 20 A 51
H 20 L 50 H 20 L 50
ADC M
A=A+M+CY
AFTER EXECUTIONBEFORE EXECUTION
30 302050H 2050H
43. (3) Arithematic Instructions
ā¢ ADI 8-bit data
ā¢ The 8-bit data is added to the contents of
accumulator.
ā¢ The result is stored in accumulator.
ā¢ Example: ADI 10 H
44. A 50 A 60
AFTER EXECUTIONBEFORE EXECUTION
ADI 10H
A=A+DATA(8)
45. (4) Arithematic Instructions
ā¢ ACI 8-bit data
ā¢ The 8-bit data and the Carry Flag (CY) are
added to the contents of accumulator.
ā¢ The result is stored in accumulator.
ā¢ Example: ACI 20 H
46. CY 1 CY 0
A 30 A 51
AFTER EXECUTIONBEFORE EXECUTION
ACI 20H
A=A+DATA
(8)+CY
47. (5) Arithematic Instructions
ā¢ DAD Register pair
ā¢ The 16-bit contents of the register pair are
added to the contents of H-L pair.
ā¢ The result is stored in H-L pair.
ā¢ If the result is larger than 16 bits, then CY is
set.
ā¢ Example: DAD D
49. (6) Arithematic Instructions
ā¢ SUB R
ā¢ SUB M
ā¢ The contents of the register or memory location are
subtracted from the contents of the accumulator.
ā¢ The result is stored in accumulator.
ā¢ If the operand is memory location, its address is
specified by H-L pair.
ā¢ Example: SUB B or SUB M
50. B 30 C
D E
H L
A 50
B 30 C
D E
H L
A 20
AFTER EXECUTIONBEFORE EXECUTION
SUB B
A=A-R
AFTER EXECUTIONBEFORE EXECUTION
A 50 A 40
H
10
L
20
H
10
L
20
SUB M
A=A-M
10 10
1020H1020H
51. (7) Arithematic Instructions
ā¢ SBB R
ā¢ SBB M
ā¢ The contents of the register or memory location and
Borrow Flag (i.e.CY) are subtracted from the contents of
the accumulator.
ā¢ The result is stored in accumulator.
ā¢ If the operand is memory location, its address is specified
by H-L pair.
ā¢ Example: SBB C or SBB M
52. B C 20
D E
H L
A 40
CY 1
B C 20
D E
H L
A 19
CY 0
SBB C
A=A-R-CY
AFTER EXECUTIONBEFORE EXECUTION
CY 1
A 50
H
20
L
50
CY 0
A 39
H
20
L
50
AFTER EXECUTIONBEFORE EXECUTION
SBB M
A=A-M-CY
10 10
2050H 2050H
53. (8) Arithematic Instructions
ā¢ SUI 8-bit data
ā¢ OPERATION: A=A-DATA(8)
ā¢ The 8-bit immediate data is subtracted from
the contents of the accumulator.
ā¢ The result is stored in accumulator.
ā¢ Example: SUI 45 H
54. (9) Arithematic Instructions
ā¢ SBI 8-bit data
ā¢ The 8-bit data and the Borrow Flag (i.e. CY) is
subtracted from the contents of the
accumulator.
ā¢ The result is stored in accumulator.
ā¢ Example: SBI 20 H
55. CY 1
A 50
AFTER EXECUTIONBEFORE EXECUTION
CY 0
A 29SBI 20H
A=A-DATA(8)-CY
56. (10) Arithematic Instructions
ā¢ INR R
ā¢ INR M
ā¢ The contents of register or memory location are
incremented by 1.
ā¢ The result is stored in the same place.
ā¢ If the operand is a memory location, its address
is specified by the contents of H-L pair.
ā¢ Example: INR B or INR M
57. B 10 C
D E
H L
A
B 11 C
D E
H L
A
AFTER EXECUTIONBEFORE EXECUTION
H
20
L
50
H
20
L
50
30 31
2050H 2050H
AFTER EXECUTIONBEFORE EXECUTION
INR M
M=M+1
B 10 C
D E
H L
A
BEFORE EXECUTION
INR B
R=R+1
58. (11) Arithematic Instructions
ā¢ INX Rp
ā¢ The contents of register pair are incremented
by 1.
ā¢ The result is stored in the same place.
ā¢ Example: INX H
59. B C
D E
H 10 L 20
B C
D E
H 11 L 21
AFTER EXECUTIONBEFORE EXECUTION
SPSP
INX H
RP=RP+1
60. (12) Arithematic Instructions
ā¢ DCR R
ā¢ DCR M
ā¢ The contents of register or memory location are
decremented by 1.
ā¢ The result is stored in the same place.
ā¢ If the operand is a memory location, its address
is specified by the contents of H-L pair.
ā¢ Example: DCR E or DCR M
61. B C
D E 19
H L
A
AFTER EXECUTION
B C
D E 20
H L
A
BEFORE EXECUTION
DCR E
R=R-1
H
20
L
50
H
20
L
5021 20
2050H
AFTER EXECUTIONBEFORE EXECUTION
DCR M
M=M-1
2050H
62. (13) Arithematic Instructions
ā¢ DCX Rp
ā¢ The contents of register pair are decremented
by 1.
ā¢ The result is stored in the same place.
ā¢ Example: DCX D
63. B C
D 10 E 20
H L
B C
D 10 E 19
H L
AFTER EXECUTIONBEFORE EXECUTION
SPSP
DCX D
RP=RP-1
64. (1) Logical Instructions
ā¢ ANA R
ā¢ ANA M
ā¢ AND specified data in register or memory with
accumulator.
ā¢ Store the result in accumulator (A).
ā¢ Example: ANA B, ANA M
65. B 10 C
D E
H L
A
B 0F C
D E
H L
A 0A
AFTER EXECUTION
ANA B
A=A and R
B 0F C
D E
H L
A AA
BEFORE EXECUTION
CY AC CY 0 AC 1
AFTER EXECUTIONBEFORE EXECUTION
CY AC CY 0 AC 1
A 11A 55
H 20 L 50 H 20 L 50
B3 B3
2050H
ANA M
A=A and M
2050H
1010 1010=AAH
0000 1111=0FH
0000 1010=0AH
0101 0101=55H
1011 0011=B3H
0001 0001=11H
66. (2) Logical Instructions
ā¢ ANI 8-bit data
ā¢ AND 8-bit data with accumulator (A).
ā¢ Store the result in accumulator (A)
ā¢ Example: ANI 3FH
67. CY AC
A B3
AFTER EXECUTIONBEFORE EXECUTION
CY 0 AC 1
A 33
ANI 3FH
A=A and DATA(8)
1011 0011=B3H
0011 1111=3FH
0011 0011=33H
68. (3) Logical Instructions
ā¢ XRA Register (8-bit)
ā¢ XOR specified register with accumulator.
ā¢ Store the result in accumulator.
ā¢ Example: XRA C
69. B 10 C
D E
H L
A
B C 2D
D E
H L
A 87
AFTER EXECUTION
XRA C
A=A xor R
B C 2D
D E
H L
A AA
BEFORE EXECUTION
CY AC CY 0 AC 0
1010 1010=AAH
0010 1101=2DH
1000 0111=87H
70. (4) Logical Instructions
ā¢ XRA M
ā¢ XOR data in memory (memory location
pointed by H-L pair) with Accumulator.
ā¢ Store the result in Accumulator.
ā¢ Example: XRA M
71. H 20 L 50
A 55
AFTER EXECUTION
XRA M
A=A xor M
BEFORE EXECUTION
CY AC CY 0 AC 0
0101 0101=55H
1011 0011=B3H
1110 0110=E6H
H 20 L 50
A E6
B3 B3
2050H 2050H
72. (5) Logical Instructions
ā¢ XRI 8-bit data
ā¢ XOR 8-bit immediate data with accumulator (A).
ā¢ Store the result in accumulator.
ā¢ Example: XRI 39H
73. CY AC
A B3
AFTER EXECUTIONBEFORE EXECUTION
CY 0 AC 0
A 8A
XRI 39H
A=A xor DATA(8)
1011 0011=B3H
0011 1001=39H
1000 1010=8AH
74. (6) Logical Instructions
ā¢ ORA Register
ā¢ OR specified register with accumulator (A).
ā¢ Store the result in accumulator.
ā¢ Example: ORA B
75. AFTER EXECUTIONBEFORE EXECUTION
CY AC
ORA B
A=A or R
1010 1010=AAH
0001 0010=12H
1011 1010=BAH
B 12 C
D E
H L
A AA
B 12 C
D E
H L
A BA
CY 0 AC 0
76. (7) Logical Instructions
ā¢ ORA M
ā¢ OR specified register with accumulator (A).
ā¢ Store the result in accumulator.
ā¢ Example: ORA M
77. AFTER EXECUTIONBEFORE EXECUTION
CY AC
ORA M
A=A or M
0101 0101=55H
1011 0011=B3H
1111 0111=F7H
H 20 L 50
A 55 A F7
CY 0 AC 0
H 20 L 50
B3 B3
2050H 2050H
78. (8) Logical Instructions
ā¢ ORI 8-bit data
ā¢ OR 8-bit data with accumulator (A).
ā¢ Store the result in accumulator.
ā¢ Example: ORI 08H
79. CY AC
A B3
AFTER EXECUTIONBEFORE EXECUTION
CY 0 AC 0
A BB
ORI 08H
A=A or DATA(8)
1011 0011=B3H
0000 1000=08H
1011 1011=BBH
80. (9) Logical Instructions
ā¢ CMP Register
ā¢ CMP M
ā¢ Compare specified data in register or memory
with accumulator (A).
ā¢ Store the result in accumulator.
ā¢ Example: CMP D or CMP M
81. B 10 C
D E
H L
A
B C
D B9 E
H L
A B8
AFTER EXECUTION
CMP D
A-R
B C
D B9 E
H L
A B8
BEFORE EXECUTION
CY Z CY 0 Z 0
AFTER EXECUTIONBEFORE EXECUTION
CY Z CY 0 Z 1
A B8A B8
H 20 L 50 H 20 L 50
B8 B8
2050H
CMP M
A-M
2050H
A>R: CY=0,Z=0
A=R: CY=0,Z=1
A<R: CY=1,Z=0
A>M: CY=0,Z=0
A=M: CY=0,Z=1
A<M: CY=1,Z=0
82. (10) Logical Instructions
ā¢ CPI 8-bit data
ā¢ Compare 8-bit immediate data with
accumulator (A).
ā¢ Store the result in accumulator.
ā¢ Example: CPI 30H
83. CY Z
A BA
AFTER EXECUTIONBEFORE EXECUTION
CY 0 AC 0
A BA
CPI 30H
A-DATA
A>DATA: CY=0,Z=0
A=DATA: CY=0,Z=1
A<DATA: CY=1,Z=0
1011 1010=BAH
89. (14) Logical Instructions
ā¢ RLC
ā¢ Rotate accumulator left
ā¢ Each binary bit of the accumulator is rotated left
by one position.
ā¢ Bit D7 is placed in the position of D0 as well as
in the Carry flag.
ā¢ CY is modified according to bit D7.
ā¢ Example: RLC.
91. (15) Logical Instructions
ā¢ RRC
ā¢ Rotate accumulator right
ā¢ Each binary bit of the accumulator is rotated right by
one
ā¢ position.
ā¢ Bit D0 is placed in the position of D7 as well as in the
Carry flag.
ā¢ CY is modified according to bit D0.
ā¢ Example: RRC.
93. (16) Logical Instructions
ā¢ RAL
ā¢ Rotate accumulator left through carry
ā¢ Each binary bit of the accumulator is rotated left
by one position through the Carry flag.
ā¢ Bit D7 is placed in the Carry flag, and the Carry
flag is placed in the least significant position D0.
ā¢ CY is modified according to bit D7.
ā¢ Example: RAL.
95. (17) Logical Instructions
ā¢ RAR
ā¢ Rotate accumulator right through carry
ā¢ Each binary bit of the accumulator is rotated left
by one position through the Carry flag.
ā¢ Bit D7 is placed in the Carry flag, and the Carry
flag is placed in the least significant position D0.
ā¢ CY is modified according to bit D7.
ā¢ Example: RAR
97. Concept of Subroutine
ā¢ In 8085 microprocessor a subroutine is a
separate program written aside from main
program ,this program is basically the
program which requires to be executed
several times in the main program.
ā¢ The microprocessor can call subroutine any
time using CALL instruction. after the
subroutine is executed the subroutine hands
over the program to main program using RET
instruction.
98. Branching Instructions
ā¢ The branch group instructions allows the
microprocessor to change the sequence of
program either conditionally or under certain
test conditions. The group includes,
ā¢ (1) Jump instructions,
ā¢ (2) Call and Return instructions,
ā¢ (3) Restart instructions,
99. (1) Branching Instructions
ā¢ JUMP ADDRESS
ā¢ BEFORE EXECUTION AFTER EXECUTION
ā¢ Jump unconditionally to the address.
ā¢ The instruction loads the PC with the address
given within the instruction and resumes the
program execution from specified location.
ā¢ Example: JMP 200H
PC PC 2000JMP 2000H
101. (2) Branching Instructions
ā¢ CALL address
ā¢ Call unconditionally a subroutine whose
starting address given within the
instruction and used to transfer
program control to a subprogram or
subroutine.
ā¢ Example: CALL 2000H
102. Conditional Calls
Instruction Code Description Condition for CALL
CC Call on carry CY=1
CNC Call on not carry CY=0
CP Call on positive S=0
CM Call on minus S=1
CPE Call on parity even P=1
CPO Call on parity odd P=0
CZ Call on zero Z=1
CNZ Call on not zero Z=0
103. (3) Branching Instructions
ā¢ RET
ā¢ Return from the subroutine unconditionally.
ā¢ This instruction takes return address from
the stack and loads the program counter
with this address.
ā¢ Example: RET
104. SP 27FD
PC
00
62
SP 27FF
PC 6200
00
62
AFTER EXECUTIONBEFORE EXECUTION
RET
27FFH
27FEH
27FDH
27FFH
27FEH
27FDH
105. (4) Branching Instructions
ā¢ RST n
ā¢ Restart n (0 to 7)
ā¢ This instruction transfers the program
control to a specific memory address. The
processor multiplies the RST number by 8 to
calculate the vector address.
ā¢ Example: RST 6
106. SP 3000
PC 2000
SP 2999
PC 0030
01
20
AFTER EXECUTIONBEFORE EXECUTION
RST 6
3000H
2FFFH
2FFEH
SP-1
ADDRESS OF THE NEXT INSTRUCTION IS 2001H
3000H
2FFFH
2FFEH
108. (1) Control Instructions
ā¢ NOP
ā¢ No operation
ā¢ No operation is performed.
ā¢ The instruction is fetched and decoded but no
operation is executed.
ā¢ Example: NOP
109. (2) Control Instructions
ā¢ HLT
ā¢ Halt
ā¢ The CPU finishes executing the current
instruction and halts any further execution.
ā¢ An interrupt or reset is necessary to exit from
the halt state.
ā¢ Example: HLT
110. (3) Control Instructions
ā¢ RIM
ā¢ Read Interrupt Mask
ā¢ This is a multipurpose instruction used to read the
status of interrupts 7.5, 6.5, 5.5 and read serial data
input bit.
ā¢ The instruction loads eight bits in the accumulator
with the following interpretations.
ā¢ Example: RIM
112. ā¢ SIM
ā¢ Set Interrupt Mask
ā¢ This is a multipurpose instruction and used to
implement the 8085 interrupts 7.5, 6.5, 5.5, and
serial data output.
ā¢ The instruction interprets the accumulator
contents as follows.
ā¢ Example: SIM