Professional Documents
Culture Documents
Lab Manual
ht
tp
://
cs
et
ub
e.c
o.
nr
SKEC
http://csetube.co.nr/
Page 1
List of Experiments:
Ex.No
Title of Experiment
8085 Programming:
String Manipulation
nr
Interfacing:
10
ht
tp
://
cs
et
ub
e.c
o.
SKEC
http://csetube.co.nr/
Page 2
Ex. No: 01
AIM
ADDITION:
e.c
o.
nr
ub
1.
2.
3.
4.
5.
6.
7.
cs
tp
://
ht
1.
2.
3.
4.
5.
6.
7.
et
SUBTRACTION:
MULTIPLICATION:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SKEC
http://csetube.co.nr/
Page 3
11.
12.
13.
Store accumulator
Store carry register
Stop the program.
DIVISION:
Start the program
Get the dividend and divisor
Initialize counter
Subtract divisor from dividend
If there is carry increment carry
Check the carry flag
Store the result
Halt the program
ht
tp
://
cs
et
ub
e.c
o.
nr
1.
2.
3.
4.
5.
6.
7.
8.
SKEC
http://csetube.co.nr/
Page 4
FLOWCHART:
ADDITION:
START
INITIALIZE THE
o.
cs
et
ub
e.c
nr
DATA
NO
ht
tp
://
IF
CARRY
INCREMENT THE
CARRY
YES
STORE THE
RESULT
STOP
SKEC
http://csetube.co.nr/
Page 5
SUBTRACTION
START
INITIALIZE THE
DATA
SUBRACT THE
nr
DATA
ub
et
BORROW=0
e.c
o.
IF
://
cs
INCREMENT THE
ht
tp
BORROW
STOP
SKEC
http://csetube.co.nr/
Page 6
MULTIPLICATION
START
o.
nr
ub
e.c
ht
tp
://
cs
et
IF
CARRY
INCREMENT THE
CARRY
DECREMENT THE CARRY
SKEC
http://csetube.co.nr/
Page 7
INCREMENT
o.
nr
ON NON-
cs
et
ub
e.c
ht
tp
://
STOP
SKEC
http://csetube.co.nr/
Page 8
DIVISION
START
nr
cs
YES
://
IF
et
ub
e.c
o.
ht
tp
DIVIDEND>DIVIS
OR
NO
STOP
SKEC
http://csetube.co.nr/
Page 9
PROGRAM:
ADDITION
HEXCODE
3A,00,92
9103
MOV B,A
47
9104
LDA 9201
3A,01,92
9107
ADD B
80
9108
910A
910D
910E
9111
9112
9115
MVI C,00
JNC 910E
INR C
STA 9600
MOV A,C
STA 9601
RST 1
0E,00
02,910E
0C
32,00,96
79
32,01,96
CF
MNEMONICS
LDA 8200
MOV B,A
HEXCODE
3A,00,32
47
nr
et
cs
://
tp
LABEL
ub
SUBTRACTION
ADDRESS
8100
8103
MNEMONICS
LDA 9200
o.
LABEL
e.c
ADDRESS
9100
LDA 8201
MVI C,00
SUB B
3A,01,82
0E,00
90
810A
810D
810E
JNC 8110
CM A
INR A
02,10,81
2F
3C
810F
INR C
6C
8110
8113
STA 8600
MOV A,C
32,00,86
79
8114
8117
STA 8601
RST 1
34,01,86
CF
ht
8104
8107
8109
SKEC
http://csetube.co.nr/
COMMENTS
loads the content of memory
location to the accumulator
moves the accumulator content
to b register
loads the content of memory
location to accumulator
add the B register content with
accumulator
initialize carry as 00
checks the carry flag
increments carry flag
stores the result
Moves the carry in accumulator
Stores the carry in 9601
Halt the program
COMMENTS
Load the I value in accumulator
Move the content to the B
register
Load accumulator to the II data
Initialize carry as 00
Content B reg from
accumulator
Checks the carry flag
Complement of a
Increment the content of A
register
Increment the content of c
register
Store the diff value
Move content of reg A to
accumulator
Store the borrow
Terminate the program
Page 10
MULTIPLICATION
HEXCODE
3A,00,92
57
9104
9107
LDA 9201
MOV B,A
3A,01,92
47
9108
910A
910B
910C
910F
9110
9111
9114
9117
MVI C,00
XRA A
ADD D
JNC 9110
INR C
DCR B
JNZ 910B
STA 9600
MOV A,C
0E,00
AF
82
D2,02,01
OC
05
C2,DB,91
32,00,96
79
9118
911B
STA 9601
RST 1
32,01,96
CF
e.c
o.
nr
MNEMONICS
LDA 9200
MOV D,A
ub
LABEL
COMMENTS
Load the multiplier
Move the content of
accumulator to D reg
Load the multiplier
Move the content of
accumulator to B reg
Move carry as 0
Clear all
Add the content of D register
If no carry jump to next
Increment the c register
Decrement the B register
Store result in 9600
Store the carry in 9601
Move the content of C to B
register
Store the result
Stop the program
cs
et
ADDRESS
9100
9103
tp
LABEL
MNEMONICS
MVI C,00
LDA 9500
MOV B,A
HEXCODE
0E,00
3A,00,95
47
9106
9109
910A
910D
910E
LDA 9501
CMP B
JC 9112
SUB B
INR C
3A,01,95
B8
DA,12,91
90
0C
910F
9112
9115
9116
9119
JMP 9109
STA 9600
MOV A,C
STA 9601
RST 1
32,00,96
79
32,01,96
CF
ht
ADDRESS
9100
9102
9105
://
DIVISION
SKEC
http://csetube.co.nr/
COMMENTS
Initialize the c register to 00
Load the data divisor
Move the content of
accumulator to B reg
Get the dividend
Compare B & C
Jump on carry
Subtract B from A
Increment the content of C
register
Store the values of A
Move the content C to A
Store the result
Terminate the program
Page 11
Output:
Addition
MEMORY ADDRESS
(Input)
9201
9200
DATA-I
DATA-II
DATA-III
F2
F3
E1
E2
D3
D6
(Output)
9600 (sum)
9601(carry)
E5
01
C3
01
A9
01
Subtraction
DATA-I
07
03
(Output)
9600
9601
04
01
DATA-II
DATA-III
o.
0B
0A
ub
e.c
04
06
nr
MEMORY ADDRESS
(Input)
8200
8201
01
01
tp
://
cs
et
02
00
ht
MULTIPLICATION
MEMORY ADDRESS
(Input)
9200
9201
DATA-I
DATA-II
DATA-III
06
02
07
04
0F
0A
(Output)
9600
9601
0C
00
1C
00
96
00
DIVISION
MEMORY ADDRESS
(Input)
9500
9501
DATA-I
04
08
04
04
05
0A
(Output)
9600
9601
00
02
00
01
00
02
DATA-II
SKEC
http://csetube.co.nr/
DATA-III
Page 12
RESULT:
Thus the Basic arithmetic operations have been performed successfully on
ht
tp
://
cs
et
ub
e.c
o.
nr
SKEC
http://csetube.co.nr/
Page 13
Ex. No: 02
Searching:
AIM
To search a number (largest, smallest) in the array using 8085
APPARATUS REQUIRED:
8085 Microprocessor Kit.
ALGORITHM
://
cs
et
ub
e.c
o.
nr
ht
tp
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SKEC
http://csetube.co.nr/
Page 14
FLOWCHART:
LARGEST NUMBER IN AN ARRAY
START
ub
e.c
o.
nr
ht
tp
://
cs
et
NO
IF
ACC<B
YES
MOVE THE CONTENT OF B REG TO ACC
NO
IF
I=0
YES
STORE THE RESULT
STOP
SKEC
http://csetube.co.nr/
Page 15
ub
e.c
o.
nr
://
cs
et
ht
tp
NO
IF
CARRY
NO
YES
DECREMENT C
MOVE B TO A
IF
I=0
YES
STOP
SKEC
http://csetube.co.nr/
Page 16
PROGRAM:
ADDRESS
9100
9103
LABEL
MNEMONICS
LXI H,9500
HEXCODE
21,00,95
MVI C,05
0E,05
9105
MOV A,M
7E
9106
INX H
23
COMMENTS
Load the data into memory
46
MOV B,M
o.
nr
9107
Compare B
B8
CMP B
9109
JNC 910D
(JC 910D)
910C
MOV A,B
D2,OD,91
(C2,0D,91)
78
ht
tp
://
cs
et
ub
e.c
9108
910D
DCR C
910E
JNZ 9106
C2,06,91
Jump on 9106
9111
STA 9600
32,00,96
Store the result
9114
RST 1
CR
Stop the program
SKEC
http://csetube.co.nr/
Page 17
OUTPUT:
LARGEST NUMBER IN THE ARRAY
DATA-I
DATA-II
DATA-III
09
08
07
06
05
04
01
03
04
02
06
05
09
08
07
03
01
0A
(Output)
9600
09
06
0A
e.c
o.
nr
MEMORY ADDRESS
(Input)
9500
9501
9502
9503
9504
9505
DATA-I
09
08
07
06
05
04
(Output)
9600
04
ht
tp
://
cs
MEMORY ADDRESS
(Input)
9500
9501
9502
9503
9504
9505
et
ub
DATA-II
DATA-III
0A
0B
0C
0D
0E
0F
AA
BB
CC
DD
EE
FF
0A
AA
SKEC
http://csetube.co.nr/
Page 18
SORTING :
AIM:
To perform Sorting of an array using 8085.
APPARATUS REQUIRED:
8085 Microprocessor Kit.
ALGORITHM:
tp
://
cs
et
ub
e.c
o.
nr
ht
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SKEC
http://csetube.co.nr/
Page 19
FLOWCHART:
START
SET H AS MEMORY POINTER
e.c
o.
nr
COMPARE BYTES
ub
IF
YES
NO
ht
tp
://
cs
et
A<2ND
IF
COMP
COUNT
YES
STOP
=0
A
CS 2259 Microprocessors Lab
SKEC
http://csetube.co.nr/
Page 20
PROGRAM:
LABEL
MNEMONICS
LXI H,9200
HEXCODE
21,00,92
COMMENTS
Set memory pointer
9103
MVI D,00
16,00
9105
MVI C,04
DE,04
9107
MOV A,M
4E
9108
INX H
23
9109
CMP M
BE
910A
JC 9114
(JNC 9114)
910D
MOV B,M
Compare byte
e.c
o.
nr
ADDRESS
9100
46
910E
ht
tp
://
cs
et
ub
DA,14,91
MOV M,A
910F
DCX H
28
9110
MOV M,B
70
9111
INX H
23
9112
MVI D,01
1601
9114
DCR C
0D
9115
JNZ 9107
C2,07,91
Decrement comparison
count if comparison 10,80
Get flag hit in A
SKEC
http://csetube.co.nr/
Page 21
9118
MOV A,D
7A
9119
RRC
0F
If carry, exchange occurs
DA,00,91
JC 9100
911A
End of string
CF
RST 1
911D
Output:
ASCENDING ORDER
09
02
04
06
05
(Output)
9200
9201
9202
9203
9204
02
04
05
06
09
DATA-I
DATA-II
0D
0A
0C
0B
0F
tp
://
cs
et
ub
e.c
o.
nr
MEMORY ADDRESS
(Input)
9200
9201
9202
9203
9204
ht
0A
0B
0C
0D
0F
DECENDING ORDER
MEMORY ADDRESS
(Output)
9200
9201
9202
9203
9204
DATA-I
DATA-II
0F
0D
0C
0B
0A
09
06
05
04
02
SKEC
http://csetube.co.nr/
Page 22
RESULT:
ht
tp
://
cs
et
ub
e.c
o.
nr
Thus the SEARCHING & SORTING of an array has been performed using 8085
Microprocessor.
SKEC
http://csetube.co.nr/
Page 23
Ex.No: 03
CODE CONVERSION
AIM:
To perform code conversions like HEX to ASCII , Binary to BCD and Vice versa.
APPARATUS REQUIRED:
8085 Microprocessor Kit.
a.)HEXADECIMAL TO ASCII
ALGORITHM:
ht
tp
://
cs
et
ub
e.c
o.
nr
SKEC
http://csetube.co.nr/
Page 24
FLOWCHART:
START
nr
e.c
o.
://
cs
et
ub
ht
tp
INCREMENT DI REGISTER
STOP
SKEC
http://csetube.co.nr/
Page 25
SUB ROUTINE
START
COMPARE AL WITH 0A
YES
nr
IF
AL>0A
e.c
o.
NO
ht
tp
://
ADD 30
cs
et
ub
ADD 07
RETURN
SKEC
http://csetube.co.nr/
Page 26
ADDRESS
9100
LABEL
HEXCODE
01,00,90
COMMENTS
Load address
9103
LXI D, 9200
11,00,92
Load data
9106
MOV A,M
7E
9107
ANI, 0F
E6,0F
Add of
9109
CALL ASCII
CD
910C
MOV C,A
4F
910D
MOV A,B
910E
ANI F0
9100
Move A to C reg
Move B reg to A
E6,F0
AND F0
RLC
07
9111
RLC
07
9112
RLC
07
9113
RLC
07
9114
CALL ASCII
CD
9117
STA 9201
32,01,92
911A
MOV A,C
79
Move C to A
tp
://
cs
et
ub
78
ht
o.
nr
MNEMONICS
LXIH, 9000
e.c
PROGRAM:
SKEC
http://csetube.co.nr/
Page 27
911B
STA 9202
32,02,192
911E
RST 1
CF
Break point
CPI 09
FE,09
Compare with 09
911F
ASCII
Jump no carry
JNC Next
9124
ADI 07
C6,07
ADI 30
C6,30
RET
C9
9126
Next
e.c
o.
nr
9128
Add immediately
9121
et
ub
Output:
DATA-I
05
(Output)
9201
9202
30
35
DATA-II
://
cs
MEMORY ADDRESS
(Input)
9200
ht
tp
AC
41
43
SKEC
http://csetube.co.nr/
Page 28
ht
tp
://
cs
et
ub
e.c
o.
nr
SKEC
http://csetube.co.nr/
Page 29
FLOWCHART:
START
MOVE
cs
et
ub
e.c
MOVE
o.
nr
ht
tp
://
STOP
CS 2259 Microprocessors Lab
SKEC
http://csetube.co.nr/
Page 30
PROGRAM:
ADDRESS
1000
LABEL
MNEMONICS
MOV AL,[1200]
HEXCODE
A0,00,12
COMMENTS
Move the id to 1 reg
1003
MOV AH,AL
88,C4
1005
AND AH,0F
80,EA,DF
1008
MOV BL,AH
888,E3
100A
AND AL,F0
24,F0
100C
MOV CL,04
B1,DH
Move the CL by 04
1010
MOV AH,0A
D2,CD
cs
://
tp
ht
1012
ub
ROL AL,CL
et
100E
e.c
o.
nr
MUL AH
Multiply
F6,E7
Add the data
1014
ADD AL,BL
C0,D8
1016
MOV [1600],AL
A2,00,16
1019
INT 3
CC
SKEC
http://csetube.co.nr/
Page 31
Output:
DATA-I
DATA-II
0A
1D
(Output)
1600
0A
17
ht
tp
://
cs
et
ub
e.c
o.
nr
MEMORY ADDRESS
(Input)
1200
RESULT:
Thus the code conversion has been performed .
SKEC
http://csetube.co.nr/
Page 32
ht
tp
://
cs
et
ub
e.c
o.
nr
1.
2.
3.
4.
5.
SKEC
http://csetube.co.nr/
Page 33
FLOWCHART:
START
nr
NO
://
cs
IF
et
ub
e.c
o.
CL = CL -- 1
ht
tp
CL=0
YES
STORE RESULT
STOP
SKEC
http://csetube.co.nr/
Page 34
PROGRAM:
LABEL
MNEMONICS
MOV CL,09
HEXCODE
BL,09
COMMENTS
Count for 33 matrix
1502
MOV SI,2000
BE,00,20
Address in SI
1505
MOV DI,300
BF,00,30
Address in DI
1508
MOV AL,[SI]
BA,04
150A
MOV BL,[DI]
8A,10
150C
ADD AL,BL
00,08
150E
MOV [DI],AL
1510
INC DI
1511
Store result
4F
Increment DI
INC SI
46
Increment SI
1512
DEC CL
FE,C9
Decrement CL
1514
JNZ 1508
75,F2
1516
INT 3
CC
Break point
tp
://
cs
et
ub
88,05
ht
e.c
o.
nr
ADDRESS
1500
Output:
CS 2259 Microprocessors Lab
SKEC
http://csetube.co.nr/
Page 35
INPUT
OUTPUT
3000-04
3001-04
3002-04
3003-04
3004-04
3005-04
3006-04
3007-04
3008-04
3000-02
3001-02
3002-02
3003-02
3004-02
3005-02
3006-02
3007-02
3008-02
ht
tp
://
cs
et
ub
e.c
o.
nr
2000-02
2001-02
2002-02
2003-02
2004-02
2005-02
2006-02
2007-02
2008-02
RESULT:
Thus the output for the addition for two matrix was executed successfully.
SKEC
http://csetube.co.nr/
Page 36
e.c
o.
nr
Initialize the counter to the memory for staring the data and result.
Load DI with search byte
Load CL with count
Load AC with data from memory
Compare AC with DL if its equal
Store result else go to 2
Store the result
Stop the program.
ht
tp
://
cs
et
ub
1.
2.
3.
4.
5.
6.
7.
8.
SKEC
http://csetube.co.nr/
Page 37
FLOWCHART:
START
e.c
o.
nr
et
ub
IF
CL=CL -- 1
ht
tp
://
cs
AL=D
STOP
SKEC
http://csetube.co.nr/
Page 38
PROGRAM:
LABEL
START
MNEMONICS
MOV SI,1100
HEXCODE
BE,00,11
COMMENTS
Set SI reg for array
1003
MOV DI,1200
BE,00,12
1006
MOV DI,[DL]
8A,15
1008
MOV BL,01
B3,DL
100A
MOV AL,[SI]
8A,04
CMP AL,DL
35,00
AGAIN
Compare an element of
array
If data are equal then jump
to avail
46
Increment SI
INC BL
FE,03
Increment BL count
1013
MOV AL,[SI]
8A,04
1015
CMP AL,20
3C,20
1017
JNZ AGAIN
72,F3
If not JZ to again
MOV CX,0000
B9,00,00
Initialize CX to zero
101C
MOV [DI+1],CX
89,4D,01
101F
MOV [DI+3],CX
89,4D,03
JZ AVAIL
1010
INC SI
1011
tp
://
cs
et
100E
ub
74,15
ht
e.c
o.
100C
nr
ADDRESS
1000
1019
NOT
AVAIL
SKEC
http://csetube.co.nr/
Page 39
JMP 102F
EB,0F,110
MOV BH,FF
B7,FF
1026
MOV [DI+1],BH
88,7D,01
Store FF to result
1029
MOV [DI+2],BL
88,5D,02
Availability of data
102C
MOV [DI+3],SI
89,75,03
1022
1024
AVAIL
INT 3
o.
nr
102F
DATA-II
://
cs
05
04
09
02
03
01
tp
05
05
03
04
07
08
et
ub
DATA-I
ht
MEMORY ADDRESS
(Input)
1100
1101
1102
1103
1104
1105
(Output)
1200
1201
1202
1203
1204
e.c
Output:
02
FF
04
03
11
05
FF
01
00
11
RESULT:
Thus the output for searching an element in array using 8086 microprocessor was
executed successfully.
SKEC
http://csetube.co.nr/
Page 40
Ex. No: 4
a) ADDITION
ALGORITHM:
ub
e.c
o.
nr
Mnemonics
cs
Label
Machine Code
Comments
://
Address
et
Program:
ht
tp
STORE:
OUTPUT VERIFIACTION:
INPUT
2000H
2001H
2002H
2003H
OUTPUT
3000H
3001H
3002H
DATA 1
DATA 2
DATA 2
34
12
78
56
AC
68
00
SKEC
http://csetube.co.nr/
Page 41
b) SUBTRACTION
ALGORITHM:
nr
Mnemonics
Machine Code
Comments
ub
Label
ht
tp
://
cs
et
Address
e.c
o.
Program:
STORE:
OUTPUT VERIFIACTION:
INPUT
2000H
2001H
2002H
2003H
OUTPUT
3000H
3001H
3002H
DATA 1
DATA 2
DATA 2
88
44
33
22
55
22
00
SKEC
http://csetube.co.nr/
Page 42
C) MULTIPLICATION
ALGORITHM:
I.
II.
III.
IV.
V.
VI.
Program:
Mnemonics
nr
AX, [2000H]
BX, [2002H]
BX
[3000], AX
[3002], DX
Comments
ht
OUTPUT VERIFIACTION:
tp
://
cs
et
ub
MOV
MOV
MUL
MOV
MOV
INT 3
Machine Code
o.
Label
e.c
Address
INPUT
2000H
2001H
2002H
2003H
OUTPUT
3000H
3001H
3002H
3003H
DATA 1
DATA 2
DATA 2
0A
00
0A
00
64
00
00
00
SKEC
http://csetube.co.nr/
Page 43
D)DIVISION
I.
II.
III.
IV.
V.
VI.
Program:
Mnemonics
AX, [2000H]
BX, [2002H]
BX
[3000], AX
[3002], DX
Comments
DATA 1
://
ht
INPUT
2000H
2001H
2002H
2003H
OUTPUT
3000H
3001H
3002H
3003H
tp
OUTPUT VERIFIACTION:
cs
et
ub
e.c
MOV
MOV
DIV
MOV
MOV
INT 3
Machine Code
nr
Label
o.
Address
68
00
0A
00
DATA 2
DATA 2
0A
00
04
00
SKEC
http://csetube.co.nr/
Page 44
nr
Load starting address of array in to SI reg. and initialize DI reg for result.
Load the byte to be searched in DL reg. & initialize BH reg for position as 01
Get the 1st element into Accumulator
AGAIN : Compare Accumulator with DL reg
Check zero flag, if set goto AVAIL
Update SI and Increment BL
Get next element into Accumulator and compare with EOA
If not zero, goto AGAIN.
Initialize CX reg to zero
Store result for Not Available and goto END
AVAIL: Get word for available in to BL reg.
Store position, address and status of serach.
END: Halt
tp
://
cs
et
ub
e.c
o.
i.
ii.
iii.
iv.
v.
vi.
vii.
viii.
ix.
x.
xi.
xii.
xiii.
Address
ht
Program:
Label
Mnemonics
Machine Code
Comments
CMP AL, DL
JZ AVAIL
INC SI
SKEC
http://csetube.co.nr/
Page 45
INC BL
MOV AL, [SI]
CMP AL, E0
JNZ AGAIN
NOTAVL MOV CX, 0000H
MOV [DI+1], CX
MOV [DI+3], CX
JMP END
AVAIL:
MOV BL, FF
nr
MOV [DI+1], BX
e.c
ub
INT 3
ht
tp
://
cs
et
END:
o.
MOV [DI+3], SI
OUTPUT VERIFIACTION:
INPUT
DATA 1
3000H(BYTE)
05
2000H
AA
2001H
BB
2002H
CC
2003H
55
2004H
77
DATA 2
SKEC
http://csetube.co.nr/
DATA 2
Page 46
2018H
05
2032H
EO
nr
3001H
FF
3002H
19
3003H
18
3004H
20
ub
05
ht
tp
://
cs
et
3000H
e.c
o.
OUTPUT
SKEC
http://csetube.co.nr/
Page 47
Ascending/Descending order
Algorithm:
i.
Load SI reg with pointer to array
ii.
Load array length to CL & CH for two counters (CL for repetitions & CH for
comparisons)
iii.
REPEAT : Get an element into accumulator
iv.
NEXT: Compare with next element
v.
Check carry flag, if set goto SKIP
vi.
Swap elements of array
vii.
SKIP: Decrement CH and if not zero go to NEXT
viii. Decrement CL , if not zero go to REPEAT
ix.
Halt
nr
o.
Mnemonics
Comments
REPEAT:
ht
tp
DEC CL
://
cs
Machine Code
et
e.c
Label
ub
Address
Program:
NEXT:
SKIP:
DEC CH
SKEC
http://csetube.co.nr/
Page 48
JNZ NEXT
DEC CL
JNZ REPEAT
INT 3
07
1501
AA
1502
BB
1503
CC
1504
55
1505
77
1506
11
1507
99
nr
o.
1500(COUNT)
DATA 2
e.c
DATA 1
DATA 2
ht
tp
://
cs
et
ub
INPUT
OUTPUT VERIFIACTION:
OUTPUT
1501
11
1502
55
1503
77
SKEC
http://csetube.co.nr/
Page 49
99
1505
AA
1506
BB
1507
CC
ht
tp
://
cs
et
ub
e.c
o.
nr
1504
SKEC
http://csetube.co.nr/
Page 50
Ex.No: 05
STRING MANIPULATION
AIM:
To perform string manipulation in 8086 microprocessor.
APPARATUS REQUIRED:
8086 Microprocessor Kit.
a) Block Transfer
Algorithm:
Initialize DS & ES registers
Load source and destination locations to index regs.
Load block size in counter reg.
Clear Direction flag for Auto- incrementing mode
Copy contents from source to destination address until counter becomes zero.
Halt.
Program:
Mnemonics
et
Label
Machine Code
Comments
cs
Address
ub
e.c
o.
nr
i.
ii.
iii.
iv.
v.
vi.
ht
tp
://
OUTPUT VERIFIACTION:
INPUT
2000H (Block
Size)
2001H
2002H
2003H
2004H
2005H
DATA 1
DATA 2
DATA 2
05
12
34
56
78
9A
SKEC
http://csetube.co.nr/
Page 51
OUTPUT
3000H
3001H
3002H
3003H
3004H
nr
Mnemonics
Machine Code
://
Label
Comments
tp
Address
cs
et
ub
e.c
o.
b) Table search
Algorithm:
i. Initialize BX reg with table size
ii. Get address of table and symbol in DI & SI reg.
iii. Clear direction flag.
iv. Load counter with 08(length)
v. Compare bytes if successful goto FOUND
vi. Point to the next symbol
vii. Decrement BX, if not zero repeat the steps
viii. Show not found
ix. FOUND: Show found status.
x. Halt
Program:
12
34
56
78
9A
ht
LOOP1
NOTFOUND:
FOUND:
END:
SKEC
http://csetube.co.nr/
Page 52
OUTPUT VERIFIACTION:
INPUT
3000H
3001H
3002H
3003
00
30
00
00
2000H
2001H
2002H
2003H
00
12
00
00
cs
et
ub
e.c
o.
nr
Note: The table has to be loaded from memory location 3000H & the search string in
1200H.
Table size can be any 16 bit number
://
c) Code Conversion
ht
tp
Algorithm
SKEC
http://csetube.co.nr/
Page 53
Program:
Address
Label
Mnemonics
Machine Code
nr
Comments
INPUT
2000H
(DECIMAL
DIGIT)
2001
OUTPUT
3000H
3001H
e.c
o.
OUTPUT VERIFIACTION:
DATA 1
DATA 2
cs
et
ub
03
DATA 2
://
05
ht
tp
4F
6D
7
segment
code
3F
06
5B
4F
66
6D
7D
07
7F
6F
SKEC
http://csetube.co.nr/
Page 54
nr
o.
Comments
Mnemonics
e.c
Label
cs
et
ub
Address
ht
tp
://
LOOP1:
DONE:
OUTPUT VERIFIACTION:
INPUT
2000H
(COUNT)
2001H
2002H
DATA 1
DATA 2
DATA 2
05
CC
AA
3000H
3001H
3002H
3003H
3004H
OUTPUT
11
CC
22
CC
33
3000H
3001H
11
AA
SKEC
http://csetube.co.nr/
Page 55
22
AA
33
ht
tp
://
cs
et
ub
e.c
o.
nr
3002H
3003H
3004H
RESULT:
Thus the string manipulation has been performed successfully.
SKEC
http://csetube.co.nr/
Page 56
Ex.No: 06
8279:
Keyboard Interfacing:
Algorithm:
i.
ii.
iii.
v.
Else read Data code from input port and suppress unwanted bits(b7&b6)
vi.
Break point
Mnemonics
Machine Code
Comments
AL,12h
e.c
MOV
nr
Label
o.
Address
iv.
ub
MOV
://
cs
et
DX,FF52h
DX,AL
MOV
OUT
ht
tp
OUT
AL,3Eh
DX,AL
display/write inhibit
Wait:
MOV
AL,A0h
OUT
DX,AL
read status of 8279
IN
AL,DX
AND
FIFO empty?
AL,07h
If Yes loop back to wait
JZ
Wait
Data register
MOV
Read Code from data port
DX,FF50h
SKEC
http://csetube.co.nr/
Page 57
IN
AL,DX
Break point
AND
AL,3Fh
INT
24
23
22
21
1c
1b
1a
19
14
13
12
10
0c
0b
0a
09
ht
tp
://
cs
et
ub
e.c
o.
Row/Column
nr
Display interfacing:
Algorithm:
i.
ii.
iii.
Load display write inhibit word and count for clearing display
iv.
v.
Get the input code from table and send to display through output port
vi.
Break point
SKEC
http://csetube.co.nr/
Page 58
Program:
Comments
Control word to define 8279 in
8 bit 8 character display
MOV
DX,FF52h
OUT
DX,AL
MOV
AL,3Eh
OUT
DX,AL
MOV
AL,A0h
OUT
DX,AL
display/write inhibit
send to control reg
MOV
AH,08h
MOV
DX,0FF50h
MOV
AL,00h
OUT
DX,AL
DEC
AH
JNZ
Clear
MOV
cs
MOV
BX,2000h
MOV
AL,[BX]
OUT
DX, AL
BX
DEC
CL
JNZ
data =0
Clear up to AH= 00
Data reg
Back
CL,06
INC
et
ub
e.c
o.
nr
DX,FF50h
MOV
Back:
Machine Code
://
Clear:
Mnemonics
MOV
AL,12h
tp
Label
ht
Address
Loop back
SKEC
http://csetube.co.nr/
Page 59
DIGIT
7
SEGMENT FC 60 BA F2
CODE
66 D6 DE 70 FE
Algorithm:
nr
e.c
o.
ii. Select the counter reg by sending appropriate data to control reg.
ub
iii. Get lower order count in to AL and send to selected counter reg
cs
et
iv. Get higher order count in to AL and send to selected counter reg.
ht
tp
://
Program:
Address
Label
Mnemonics
Machine Code
Comments
Division Factor
MOV
AX,0050H
MOV
CX,AX
MOV
AL,36H
MOV
DX, FF56H
OUT
DX,AL
MOV
AL,CL
Count Lsb
MOV
DX, FF50H
Counter 0 Reg
OUT
DX,AL
MOV
AL,CH
Counter0 Is Selected
Control Reg
Count Msb
SKEC
http://csetube.co.nr/
76 7E CE 9C EA 9E 1E
8253:
i.
Page 60
OUT
DX,AL
NOP
3H
ht
tp
://
cs
et
ub
e.c
o.
nr
INT
Result:
Thus the Keyboard/Display controller and Interval Timer has been interfaced and the
program for key scan and square wave executed successfully.
SKEC
http://csetube.co.nr/
Page 61
Ex.No: 07
AIM:
To perform parallel/serial communication using 8085 and 8086 by interfacing 8255 and
8251.
APPARATUS REQUIRED:
8086 Microprocessor Kit-2
Parallel data cable
PC with serial port
8085 microprocessor kit
Serial data cable
nr
i)
ii)
i)
ii)
iii)
o.
ALGORITHM:
ub
e.c
tp
://
Get the control word of 8255 so as to have one of its as an output port.
Sent it to control reg of 8255
Get the byte to the transmitted acc
Send it to output port
ht
1.
2.
3.
4.
cs
et
Transmitter:
Receiver:
1.
2.
3.
Get the control word of 8255 so as to have one of its port as an input port
Read it as control reg of 8255
Read the data at the input port, if there isn`t carry, check again after delay.
SKEC
http://csetube.co.nr/
Page 62
://
cs
et
ub
e.c
o.
nr
v Using a parallel data communication bus connected parallel ports of two 8086
microprocessor.
v Load transmission program in one of the bit to make it as transmitter.
v Load receiver program in another kit to have it as receiver.
v Execute the receiver to have it ready for receiving data.
v Execute the transmitter data on display/acc of receiver.
ht
tp
PROGRAM:
ADDRESS
LABEL
MNEMONICS
HEXCODE
COMMENTS
Transmitter:
8500
MVI A,82
3E,82
Move 82 to A reg
8502
OUT 23
D3,23
8504
MVI A,55
3E,55
Move 55 to A reg
SKEC
http://csetube.co.nr/
Page 63
8506
OUT 20
D3,20
8508
RST 1
CF
Break point
8500
MVI A,99
35,99
Move 99 to A reg
8502
OUT 23
D3,23
8504
IN 20
8506
NOP
8507
e.c
o.
nr
Receiver:
cs
et
ub
DB,20
No operation
NOP
00
No operation
8508
NOP
00
No operation
8509
NOP
00
No operation
850A
RST 1
CF
Break point
ht
tp
://
00
SKEC
http://csetube.co.nr/
Page 64
/
nr
o.
e.c
ub
et
cs
://
tp
ht
PARALLEL DATA COMMUNICATION USING 8086
ADDRESS
LABEL
MNEMONICS
HEXCODE
COMMENTS
Transmitter:
9000
MOV DX,FF26
BA,26,FF
9003
MOV AL,82
BO,82
Move 82 to AC reg
9005
OUT DX,AL
EE
SKEC
http://csetube.co.nr/
Page 65
MOV DX,FF24
BA,24,FF
9009
MOV AL,00
B0,00
Move 00 to A reg
900B
OUT DX,AL
EE
900C
MOV DX,FF20
BA,20FF
900F
MOV AL,55
BO,55
Move 55 to A reg
9011
OUT DX,AL
EE
9012
MOV DX,FF24
9015
MOV AL,FF
9017
OUT DX,AL
EE
9018
INT 3
CC
Break point
8300
MOV DX,FF26
BA,26,FF
8303
MOV AL,99
BO,99
Move 99 to A reg
8305
OUT DX,AL
EE
e.c
o.
nr
9006
BO,FF
Move FF to A reg
ht
tp
://
cs
et
ub
BA,24,FF
Receiver:
SKEC
http://csetube.co.nr/
Page 66
8306
MOV DX,FF24
3A,24,FF
8309
IN AL,DX
EC
830A
JZ 8309
74,FD
Jump on 8309
830C
MOV DX,FF20
BA,20,FF
830F
IN AL,DX
EC
8310
INT 3
CC
Break point
ht
tp
://
cs
et
ub
e.c
o.
nr
LABEL
MNEMONICS
HEXCODE
COMMENTS
9000
LDA 9200
3A,00,92
9003
MOV A,B
47
9004
LDA 9201
3A,01,92
9007
ADD B
80
Add with A
SKEC
http://csetube.co.nr/
Page 67
MVI C,00
0E,00
Initialize carry as 0
900A
JNC 910E
02,0E,90
900D
INR C
0C
Increment C
900E
STA 9600
32,00,96
9011
MOV A,C
79
9012
STA 9601
e.c
9013
RST 1
o.
nr
9008
CF
ht
tp
://
cs
et
ub
32,01,96
MOV AX,1100
A1,00,11
1003
ADD AX,1102
D3,06,02,11
1007
MOV 1104,AX
A3,04,11
SKEC
http://csetube.co.nr/
Page 68
INT 3
CC
ht
tp
://
cs
et
ub
e.c
o.
nr
100A
TRANSMITTER
55
RECEIVER
55
SKEC
http://csetube.co.nr/
Page 69
Output 8086:
TRANSMITTER
RECEIVER
09FF
CF55
(G9000)
(G8300)
INPUT
OUTPUT
nr
o.
e.c
04
ht
tp
://
cs
et
ub
02
9201
(9600)
02
9200
Output 8086:
MEMORY
ADDRESS
OUTPUT
2000-01
3000-01
02
2001-02
3001-02
04
2002-03
3002-03
06
2003-04
3003-04
08
SKEC
http://csetube.co.nr/
Page 70
2004-05
3004-05
0A
RESULT:
ht
tp
://
cs
et
ub
e.c
o.
nr
Ex.No:08
AIM:
To write a program to interface a stepper motor using 8085/8086/8051 microprocessor.
APPARATUS REQUIRED:
SKEC
http://csetube.co.nr/
Page 71
i)
ii)
iii)
iv)
ALGORITHM:
Start the program
Move the control word to accumulator
Move the control word to control register
Store the accumulator content through port A
Change the accumulator content with phase sequence
Stop the program.
ht
tp
://
cs
et
ub
e.c
o.
nr
1.
2.
3.
4.
5.
6.
LABEL
MNEMONICS
MVI A,80
HEXCODE
3E,80
SKEC
http://csetube.co.nr/
COMMENTS
Control port of 8255
Page 72
9002
OUT 23
D3,23
Control word
MVI A,80
3E,A0
9006
OUT 20
D3,20
Out it in port A
9008
CALL DELAY
CD 0091
900B
MVI A,E0
900D
BACK
cs
et
ub
e.c
o.
nr
9004
OUT 20
D3,20
Out it in port A
900F
CALL DELAY
CD 0091
9012
MVI A,C0
3E,10
9014
OUT 20
D3,20
Out it in port A
ht
tp
://
3E,E0
SKEC
http://csetube.co.nr/
Page 73
CALL DELAY
CD 0091
9019
MVI A,80
3E,C0
901B
OUT 20
03,20
Out it in port A
901D
CALL DELAY
CD,00,91
9020
JMP BACK
cs
et
ub
e.c
o.
nr
9016
Jump back
MVI B,10
06,10
9102
MVI A,FF
3E,FF
9104
NOP
00
No operation
9105
NOP
00
No operation
ht
tp
://
C3,04
9100
DELAY
SKEC
http://csetube.co.nr/
Page 74
NOP
00
No operation
9107
NOP
00
No operation
9108
DCR A
3D
Decrement A
9109
JNZ 9104
C2,0491
910C
DCR B
910D
9110
cs
et
ub
e.c
o.
nr
9106
Decrement B
JNZ 9102
C2,02,91
RET
C9
ht
tp
://
05
LABEL
MNEMONICS
HEXCODE
SKEC
http://csetube.co.nr/
COMMENTS
Page 75
MOV DX,FF26
BA,26FF
9003
MOV AL,80
B0,80
Control word
9005
OUT DX,AL
EE
9006
MOV DX,FF20
BA,20FF
9009
MOV AL,A0
BO,AD
900B
OUT DX,AL
900C
CALL DELAY
E8,F100
900F
MOV AL,E0
BO,E0
9011
OUT DX,AL
EE
9012
CALL DELAY
E8,EB,00
EE
Out it in port A
ht
tp
://
cs
et
ub
e.c
o.
nr
9000
SKEC
http://csetube.co.nr/
Call delay
Out it in port A
Call delay
Page 76
MOV AL,C0
B0,E0
9017
OUT DX,AL
EE
Out in port A
9018
CALL DELAY
E8,EB00
901B
MOV AL,80
BO,80
901D
OUT DX,AL
EE
901E
CALL DELAY
9021
JMP 9006
EB,E3
MOV BX,0002
BB,9000
Change count
9026
MOV AL,FF
BO,FF
9028
NOP
00
E8,EB,00
ht
tp
://
cs
et
ub
e.c
o.
nr
9015
9023
DELAY
SKEC
http://csetube.co.nr/
No operation
Page 77
NOP
00
No operation
902A
NOP
00
No operation
902B
NOP
00
No operation
902C
DEC AL
FFF CD
Decrement AL
902E
JNZ 9028
75 F8
9030
DEC BX
9031
JNZ 9026
9033
RET
Jump on non-zero
et
ub
e.c
o.
nr
9029
ht
tp
://
cs
Decrement BX
SKEC
http://csetube.co.nr/
Page 78
9006
MOV A,#80
90,4003
74,80
Control word
F0
MOV X@DPTR,
A
MOV
DPTR,#4000
90,4000
cs
et
MOV A,#A0
COMMENTS
nr
9005
MOV DPTR,#
4003
HEXCODE
o.
9003
MNEMONICS
e.c
9000
LABEL
ub
ADDRESS
74,A0
ht
tp
://
9009
MOV
X@DPTR,A
F0
900B
Out in A
LCALL DELAY
12,9100
900C
Call delay
MOV A,#E0
74,A0
900F
MOV X@DPTR,
A
F0
9011
SKEC
http://csetube.co.nr/
Out it in port A
Page 79
LCALL DELAY
9012
12,9100
Call delay
74,C0
F0
Out it in port A
MOV A,#C0
9015
MOV X@DPTR,
A
9017
o.
nr
LCALL DELAY
12,9100
Call delay
e.c
9018
cs
et
ub
MOV A,#80
://
901B
74,80
ht
tp
MOV
X@DPTR,A
901D
L CALL DELAY
F0
Out it in port A
901E
LJMP 9009
12,9100
Call delay
9021
MOV R1,#0A
02,9009
MOV A,#A0
79,0A
9024
DELAY
SKEC
http://csetube.co.nr/
Page 80
DELAY1
NOP
74,40
9028
BACK
NOP
00
No operation
9029
NOP
00
No operation
902A
NOP
00
902B
DEC A
902C
No operation
cs
et
ub
e.c
o.
nr
9026
No operation
JNZ BACK
14
Jump on non-zero
902D
JNZ R1,DELAY1
70,F9
Jump on non-zero
902F
RET
D9,F5
ht
tp
://
00
9031
22
SKEC
http://csetube.co.nr/
Page 81
PHASE SEQUENCE:
PA7
PA6
PA5
PA4
PA3
PA2
PA1
PA0
80
A0
E0
C0
ht
tp
://
cs
et
ub
e.c
o.
nr
SKEC
http://csetube.co.nr/
Page 82
DC Motor:
Algorithm:
i.
ii.
Get control word so as to program 8255 ports as O/P port & send to control reg
iii.
iv.
v.
vi.
Call delaylow
vii.
Continue cycle
Program:
Mnemonics
Machine Code
Label
nr
Address
o.
MOV DX , FF26H
ub
e.c
MOV AL ,80H
Start Pulse
cs
MOV AL ,01H
://
CONT:
et
OUT DX ,AL
Comments
8255 Control Reg Address
Port C Address
tp
MOV DX , FF20H
ht
OUT DX ,AL
CALL DELAYHIGH
Stop Pulse
MOV AL,00H
OUT
DX,AL
CALL DELAYLOW
JMP CONT
Continue Cycle
DELAYHIGH:
MOV AH,01H
LOOP1:
NOP
NOP
NOP
DEC
AH
SKEC
http://csetube.co.nr/
Page 83
JNZ LOOP1
RET
DELAYLOW:
MOV AL,01H
LOOP2:
NOP
NOP
DEC AL
JNZ LOOP2
e.c
o.
nr
RET
ub
Procedure:
cs
et
i) Connect DC motor interface with VIK-86 through data bus and connect DC motor with
interface.
tp
://
ht
RESULT:
Thus the interfacing of stepper motor and DC motor has been
done successfully and the speed control achieved.
SKEC
http://csetube.co.nr/
Page 84
Ex.No: 09
Aim:
To program 8051 using its Arithmetic and Logical and Bit Manipulation
instructions.
a) Arithmetic operations
Address
Label
Mnemonics
MOV
Machine Code
Comments
DPTR, #8500
MOVX A, @DPTR
MOV
B, A
o.
nr
MOV R0, A
ht
tp
://
cs
MOV R1, A
ADD A, B
ub
A, @DPTR
et
MOVX
e.c
INC DPTR
INC DPTR
MOVX @DPTR, A
MOV R2, A
MOV A, R1
SUBB A, B
INC DPTR
MOVX @DPTR, A
MOV R3, A
MOV B, R2
MUL AB
SKEC
http://csetube.co.nr/
Page 85
INC DPTR
MOVX @DPTR, A
MOV A, R2
MOV B, R3
DIV AB
INC DPTR
MOVX @DPTR, A
LCALL 00BB
o.
nr
Input: M8500 - a
ub
e.c
M8501 - b
://
cs
et
ht
tp
SKEC
http://csetube.co.nr/
Page 86
b) 32 bit subtraction
Address
Label
Mnemonics
Machine Code
Comments
CLR C
MOV
A, 43
nr
SUBB A, 53
A, 42
ub
MOV
e.c
o.
MOV 63, A
cs
://
tp
MOV 62, A
et
SUBB A, 52
A, 41
ht
MOV
SUBB A, 51
MOV 61, A
MOV
A, 40
SUBB A, 50
MOV 60, A
LCALL 00BB
SKEC
http://csetube.co.nr/
Page 87
/
nr
e.c
Label
Mnemonics
Machine Code
R0, 60
Comments
://
cs
et
MOV
ub
Address
o.
C) Fibonacci series
ht
tp
MOVX @DPTR, A
INC DPTR
RPT:
MOV R2, A
ADD A, R1
MOV 01, 02
MOVX @DPTR, A
SKEC
http://csetube.co.nr/
Page 88
INC DPTR
DJNZ R0, RPT
EXIT:
LCALL 00BB
OUTPUT: M9000 00
o.
nr
M9001 01
so on
ht
tp
://
cs
et
M9003 02 &
ub
e.c
M9002 01
SKEC
http://csetube.co.nr/
Page 89
Ex.No: 10
PROCEDURE:
PC to Kit:
1.
2.
3.
4.
5.
6.
ub
e.c
o.
ht
tp
://
cs
et
1.
2.
3.
4.
nr
Kit to PC:
SKEC
http://csetube.co.nr/
Page 90
/
nr
o.
e.c
ub
et
cs
://
tp
ht
CS 2259 Microprocessors Lab
SKEC
http://csetube.co.nr/
Page 91
/
nr
o.
e.c
ub
et
cs
://
tp
ht
CS 2259 Microprocessors Lab
SKEC
http://csetube.co.nr/
Page 92