Professional Documents
Culture Documents
Instruction
An instruction is a binary pattern designed inside a microprocessor to perform a specific function. 8085 has 246 instructions.
A microprocessor executes instructions given by the user Instructions should be in a language known to the microprocessor Microprocessor understands the language of 0s and 1s only This language is called Machine Language
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
Assembler Program
BEFORE EXECUTION
A 20 B
AFTER EXECUTION
MOV B,A
20
20
A B 30 20
F C
A B 30 20
F C
D
H
E
L 50
MOV M,B
D
H
E
L 50 30
A
B D H 20
F
C E L 50 40
F
C E 20 L 50 40 40
MOV C,M
B D H
BEFORE EXECUTION A F
AFTER EXECUTION A F 60 C E L
B
D H
C
E L
MVI B,60H
B D H
BEFORE EXECUTION
AFTER EXECUTION
MVI M,40H
BEFORE EXECUTION A
AFTER EXECUTION A 30
30 2000H
LDA 2000H
2000H
30
BEFORE EXECUTION
AFTER EXECUTION
80
2030H
D 20 E 30
80
2030H
30
80
LDAX D
D 20 E
BEFORE EXECUTION A 50
AFTER EXECUTION A 50
50 2000H
STA 2000H
2000H
Example: STAX B
BEFORE EXECUTION
AFTER EXECUTION
50
50
10
20
10
20
50
1020H
D E
STAX B
1020H
D E
LHLD 2050 Means..copy content of 2050 and 2051 to HL pair if 2050 -> 90H 2051->5AH LHLD 2050 implies.. L -> 90H H -> 5AH
BEFORE EXECUTION H
AFTER EXECUTION
30 L 60
30
60
204FH
2500H 30
60
2500H
SHLD 2500H
2501H
2502H
BEFORE EXECUTION
AFTER EXECUTION
20
40
70
80
70
80
XCHG
20
40
BEFORE EXECUTION
SP H 25 L 00
SPHL
AFTER EXECUTION
SP
H 25 L
2500
00
L=SP H=(SP+1)
BEFORE EXECUTION AFTER EXECUTION
SP H 30
2700 L 40
50
SP H
2700
40
2700H
L 60 50 30 60
2701H
XTHL
2702H
BEFORE EXECUTION
AFTER EXECUTION
PC H 60 L 00
PC
6000 L 60 00
PCHL
BEFORE EXECUTION
PORT 80H 10 A
IN 80H
AFTER EXECUTION
PORT 80H 10 A 10
BEFORE EXECUTION
PORT 50H 10 A 40
OUT 50H
AFTER EXECUTION
PORT 50H 40 A 40
Arithmetic Instructions
These instructions perform the operations like: Addition Subtraction Increment Decrement
BEFORE EXECUTION A 20
AFTER EXECUTION A 50 C E L 30
B
D H
C
E L
30
ADD C A=A+R
B D H
BEFORE EXECUTION A B D H 20 20 C E L 50
AFTER EXECUTION
ADD M A=A+M
10
A B D H
30 C E 20 L 50
10
2050
2050
BEFORE EXECUTION CY A 1 50
AFTER EXECUTION CY A 0 71 C 20
B
D H
C
E L
20
ADC C A=A+R+CY
D
H
E
L
BEFORE EXECUTION CY A H 20 1 20 L
AFTER EXECUTION CY 0 51 20 L
2050H 30
50
ADC M A=A+M+CY
H
2050H 30
50
BEFORE EXECUTION
AFTER EXECUTION
50
60
BEFORE EXECUTION
AFTER EXECUTION
CY A
1 30
CY A
0 51
BEFORE EXECUTION
AFTER EXECUTION
CY SP B D H
CY SP C
10 20
E L
20 50
DAD D HL=HL+R
B D H 10 30
C E L 20 70
BEFORE EXECUTION A 50
AFTER EXECUTION
20
B
D H
30
C
E L
SUB B A=A-R
B
D H
30
C
E L
BEFORE EXECUTION
AFTER EXECUTION
A H
50 L 10
1020H
20
10
SUB M A=A-M
A H
40 L 10
1020H
20
10
BEFORE EXECUTION CY A 1 40
AFTER EXECUTION CY 0 19
B
D H
C
E L
20
SBB C A=A-R-CY
B
D H
C
E L
20
BEFORE EXECUTION
CY A H 20 1 50 L 50
AFTER EXECUTION
CY 0 39 L 20 50
2050H
10
SBB M A=A-M-CY
A H
2050H
10
BEFORE EXECUTION
AFTER EXECUTION
CY A
1 50
CY
0 29
BEFORE EXECUTION
AFTER EXECUTION
A B D H 10 C E L
INR B R=R+1
B
D H
11
C
E L
BEFORE EXECUTION
AFTER EXECUTION
H 20
L 50
2050H
30
INR M M=M+1
H 20
L 50
31
2050H
BEFORE EXECUTION
AFTER EXECUTION
SP B D H 10 C E L 20
SP B C E 11 L 21
INX H RP=RP+1
D H
BEFORE EXECUTION
AFTER EXECUTION
A B D H C E L 20
DCR E R=R-1
B
D H
C
E L 19
BEFORE EXECUTION
AFTER EXECUTION
H 20
L 50
2050H
21
L
20 50 2050H
20
DCR M M=M-1
The contents of register pair are decremented by 1. The result is stored in the same place. Example: DCX D
BEFORE EXECUTION
AFTER EXECUTION
SP B D H 10 C E L 20
SP B C 10 E L 19
DCX D RP=RP-1
D H
BEFORE EXECUTION CY A B D H AA AC
AFTER EXECUTION CY A 0 0A AC 1
10 0F
C E L
B
D H
0F
C
E L
AFTER EXECUTION
CY A H 55 20
AC
CY
A H
0
11 20
AC
1
2050H B3
50
AND 8-bit data with accumulator (A). Store the result in accumulator (A) Example: ANI 3FH
BEFORE EXECUTION
AFTER EXECUTION
CY
AC
B3
CY A
0 AC 33
XOR specified register with accumulator. Store the result in accumulator. Example: XRA C
BEFORE EXECUTION
AFTER EXECUTION
1000 0111=87H
CY A B D H AA 10
AC
CY A
0 87
AC
C E L
2D
B D H
C E L
2D
XOR data in memory (memory location pointed by H-L pair) with Accumulator. Store the result in Accumulator. Example: XRA M
BEFORE EXECUTION
AFTER EXECUTION
1110 0110=E6H
CY A 55
AC
2050H
L 50
B3
CY A
H
0 E6
20
AC
2050H
L 50
B3
20
XOR 8-bit immediate data with accumulator (A). Store the result in accumulator. Example: XRI 39H
1000 1010=8AH
AFTER EXECUTION
CY A B3
AC
CY A
0 AC 8A
OR specified register with accumulator (A). Store the result in accumulator. Example: ORA B
BEFORE EXECUTION
1011 1010=BAH
AFTER EXECUTION
CY
AC
CY
AC
ORA B A=A or R
A B D H AA 12 C E L A B D H BA 12 C E L
OR specified register with accumulator (A). Store the result in accumulator. Example: ORA M
BEFORE EXECUTION
1111 0111=F7H
AFTER EXECUTION
CY
AC
CY
0 AC
A H
55 20 L
2050H
50
B3
ORA M A=A or M
A H F7 20 L
2050H
50
B3
OR 8-bit data with accumulator (A). Store the result in accumulator. Example: ORI 08H
1011 1011=BBH
AFTER EXECUTION
CY A B3
AC
CY A
0 AC BB
BEFORE EXECUTION CY A B D H B8 Z
AFTER EXECUTION CY A 0 B8 Z 0
10
B9
C E L
CMP D A-R
B
D H B9
C
E L
BEFORE EXECUTION
CY A H B8 20
Z 2050H L 50 B8
AFTER EXECUTION
CY
A H
0
B8 20
1
2050H B8
CMP M A-M
50
BEFORE EXECUTION
AFTER EXECUTION
CY A BA
CY A
0 AC BA
BEFORE EXECUTION
AFTER EXECUTION
CY
STC CY=1
CY
BEFORE EXECUTION
AFTER EXECUTION
CY
CMC
CY
BEFORE EXECUTION
CY
B7
B6
B5
B4
B3
B2
B1
B0
AFTER EXECUTION
B7
B6
B5
B4
B3
B2
B1
B0
B7
BEFORE EXECUTION
B7
B6
B5
B4
B3
B2
B1
B0
CY
AFTER EXECUTION
B0
B7
B6
B5
B4
B3
B2
B1
B0
BEFORE EXECUTION
CY
B7
B6
B5
B4
B3
B2
B1
B0
AFTER EXECUTION
B7
B6
B5
B4
B3
B2
B1
B0
CY
BEFORE EXECUTION
B7
B6
B5
B4
B3
B2
B1
B0
CY
AFTER EXECUTION
CY
B7
B6
B5
B4
B3
B2
B1
B0
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.
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,
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
Conditional Jumps
Instruction Code Decription JC JNC JP JM JPE Jump on carry Jump on not carry Jump on positive Jump on minus Jump on parity even Condition For Jump CY=1 CY=0 S=0 S=1 P=1
JPO
JZ JNZ
P=0
Z=1 Z=0
Conditional Calls
Instruction Code CC Description Call on carry Condition for CALL CY=1
CNC
CP CM CPE CPO CZ
CY=0
S=0 S=1 P=1 P=0 Z=1
CNZ
Z=0
BEFORE EXECUTION
AFTER EXECUTION
SP PC
27FD
27FDH
00
SP PC
27FF 6200
27FDH
00
27FEH 62 27FFH
RET
27FEH 62 27FFH
BEFORE EXECUTION
AFTER EXECUTION
SP-1
SP PC 3000 2000 2FFEH 2FFFH 3000H SP PC 2999 0030 2FFEH 2FFFH 3000H 20 01
RST 6
RST 1
RST 2 RST 3 RST 4 RST 5 RST 6
0*8=0008H
0*8=0010H 0*8=0018H 0*8=0020H 0*8=0028H 0*8=0030H
Rst 7
0*8=0038H
RIM INSTRUCTION
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
SIM Instruction