Beruflich Dokumente
Kultur Dokumente
LIST OF EXEPRIMENTS
Sl.No.
1
2
16 bit numbers
a) Multiplication of 2 - 8 numbers
b) Division of 2 - 8 bit numbers
a) Ascending order
b) Descending order
a) Fibonaci Series
b) Sum of finite series
7
8
10
a) Rolling Display
b) Flashing Display
11
12
13
14
Microcontroller
a) Addition
b) Subtraction
c) Multiplication
d) Division
Page No.
S1
S0 and S1 are status signal which provides different status and functions.
RD
1.
2.
WR
1.
2.
HOLD
1.
This indicates if any other device is requesting the use of address and data bus.
HLDA
1.
2.
INTR
1.
2.
INTA
1.
2.
RESET IN
1.
This pin resets the program counter to 0 to 1 and results interrupt enable and
HLDA flip flops.
X1, X2
These are the terminals which are connected to external oscillator to produce the
necessary and suitable clock operation.
SID
This pin provides serial input data
SOD
This pin provides serial output data
VCC and VSS
1.
VCC is +5V supply pin
2.
VSS is ground pin
Specifications
1. Processors
Intel 8085 at E144 MHz clock
2. Memory
Monitor RAM:
0000
EPROM Expansion: 2000
0000
System RAM:
4000
Monitor data area
4100
RAM Expansion
6000
IFFF
FFF
5FFF
5FFF
BFFF
3. Input / Output
Parallel: A8 TTL input timer with 2 number of 32-55 only input timer available in -85 EBI.
Serial: Only one number RS 232-C, Compatible, crucial interface using 8281A
Timer: 3 channel -
Display: 6 digit
data display.
7 segment LED display with filter 4 digit for adder display and 2 digit for
Key board: 21 keys, soft keyboard including common keys and hexa decimal keys.
RES: Reset keys allow to terminate any present activity and retain to - 85 its on initialize
state.
RD
1
i.
ii.
after 1, take used to st cutting address.
iii.
i)
ii)
REG
C
2
TN
B
3
TR
F
4
BLOC
A
5
FILL
L
6
SER
H
7
F2
i)
ii)
iii)
i)
ii)
iii)
i)
ii)
iii)
i)
ii)
iii)
i)
ii)
iii)
i)
ii)
I
8
i)
ii)
G0
PL
SNG
i)
ii)
iii)
PH
i)
ii)
Function key F3
F3
C
SH
MOV
i)
ii)
iii)
i)
ii)
Hex key D
Compare 2 memory block
i)
ii)
iii)
CMP
B
SL
BC
E
INS
F
i)
ii)
i)
ii)
DEL
System Power Consumption
Micro BSEB2
+5V @ 1Amp
+12V @ 200 mA
- 12V @ 100 mA
MICRO SSEB
+5V@ 800 mA
8085
8253
8255
8279
8251
2764
6264
7414
7432
7409
7400
7404
74373
74139
74138
8 bit p
programmable internal timer
programmable peripheral interface
programmable key boards / display interface
programmable communication interface
8 KV VV EPROM
8K STATIC PROM
Hex inverter
Quad 21/p OR GATE
Quad 21/p AND GATE
NAND Gate
Dual D-FF
Dual 2 to 4 line decoder
3 to 8 line decoder
8.
How to executive program
1.
2.
3.
Enter the address location in which line program was executed
4.
Result:
Thus 8085 microprocessor was studied successfully.
10
:
:
:
:
:
:
:
:
:
:
:
:
11
No
Check for
carry?
Yes
Increment carry by one
Store the added value in accumulator
Move the contents of carry into accumulator
END
12
Address
4100
4102
4105
Mnemonics
MVI C,00
LDA 4300
MOV, B,A
Hex Code
OE, 00
3A, (00, 43)
47
4106
LDA 4301
4109
410A
410D
ADD B
JNC
INR C
80
D2, 0E, 41
OC
STA 4302
32 (02, 43)
4111
MOV A,C
79
4112
STA 4303
32 (03, 43)
4115
HLT
76
410E
Label
Loop
Comments
Initialize the carry as zero
Load the first 8 bit data
Copy the value of 8 bit data
into register B
Load the second 8 bit data
into the accumulator
Add the hoo values
Jump on if no carry
If carry is there increment it
by one
Stone the added value in the
accumulator
More the value of carry to
the
accumulator
from
register C
Store the value of carry in
the accumulator
Stop the program execution
Input
Without carry
Input Address
4300
4301
Value
04
02
Output Address
4302
4303
Value
06
00 (carry)
Input Address
4300
4301
Value
FF
FF
Output Address
4302
4303
Value
FE
01 (carry)
Output
With carry
Calculation
(1)
1111 1111
1111 1111
--------------1111 1110
=========
F
E
Result:
The assembly language program for 8 bit addition of two numbers was executed
successfully by using 8085 micro processing kit.
13
:
:
:
:
:
:
:
:
:
:
:
:
:
14
START
No
Check for
carry?
Yes
Increment carry by one
nd
value
END
15
Address
4100
4102
Label
Mnemonics
MVI C,00
LDA 4300
Hex Code
OE, 00
3A, (00, 43)
MOV, B,A
LDA 4301
47
3A, (01, 43)
SUB B
INC
INR C
90
D2, 0E, 41
OC
CMA
ADI, 01
2F
6, 01
4111
4114
STA 4302
MOV A,C
32,02,43
79
4115
4118
STA 4303
HLT
32,03,43
76
4105
4106
4109
410A
410D
410E
410F
Loop
Loop
Comments
Initialize the carry as zero
Load the first 8 bit data into the
accumulator
Load the 2nd 8 bit data into the
accumulator
Subtract both the values
Jump on if no borrow
If borrow is there, increment it by
one
Compliment of 2nd data
nd
data
Store the result in accumulator
Moul the value of borrow into the
accumulator
Store the result in accumulator
Stop Program execution
Input
Without borrow
Input Address
4300
4301
Value
05
07
Output Address
4302
4303
Value
02
00 (borrow)
Input Address
4300
4301
Value
07
05
Output Address
4302
4303
Value
02
01 (borrow)
Output
Calculation
CMA
ADJ 0.1
05 -
05 07
07 0111
1000
0001
-----1001
0101
-----1110 (-2)
16
Result:
The assembly language program subtraction of two 8 bit numbers was executed
successfully by using 8085 micro processing kit.
17
:
:
Step 3
Step 4
:
:
Step 5
Step 6
Step 7
Step 8
Step 9
:
:
:
:
:
Step 10
Step 11
Step 12
:
:
:
18
START
C = 00 H
st
L
Data
Transfer HL - DE
nd
L
Data
DE + HL = HL
If
Cy =0
C = C + 01
Transfer C - A
STOP
19
Address
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
Label
Mnemonics
MVI
C,00
LHLD
4800
XCHG
LHLD
4802
DAD
JNC
Ahead
450E
450A
450B
450C
450D
450E
450F
4510
4511
4512
4513
4514
4515
AHEAD
INR
SHLD
C
4804
MOV
STA
C,A
4806
HLT
Input
Without
Input Address
4800
4801
4802
4803
Value
01 (addend)
04
02 (augend)
03 (augend)
Output Address
4804
4805
4806
Value
03 (sum)
07 (sum)
00 (carry)
Output
Calculation
20
Hex Code
0E
00
2A
00
48
EB
2A
02
48
19
D2
0E
45
0C
22
04
48
79
32
06
48
76
Comments
C = 00H
HL 1st No.
HL DE
HL 2nd No.
Double addition DE +
HL
If Cy = 0, G0 to 450E
C = C + 01
HL 4804 (sum)
Cy A
Cy 4806
Stop excution
With carry
Calculation
Input Address
4800
4801
4802
4803
Value
FF (addend)
DE (addend)
96 (augend)
DF (augend)
Output Address
4804
4805
4806
Value
95 (sum)
BE (sum)
01 (carry)
Result:
The assembly language program for addition of two 16 bit numbers was executed
using 8085 micro processing kit.
21
BIT NUMBERS
Aim:
To write an assembly language program for subtracting two 16 bit numbers using
8085 microprocessor kit.
Apparatus required:
8085 microprocessor kit
(0-5V) DC battery
Algorithm:
Step 1
Step 2
Step 3
Step 4
Step 5
Step 6
:
:
:
:
:
:
Step 7
Step 8
Step 9
:
:
:
Step 10
Step 11
:
:
22
START
C = 00H
st
Data
Transfer HL - DE
nd
L
Transfer E
Data
A (LSB)
A=A
L (LSB)
Transfer D
A (MSB)
A A H
Borrow (MSB)
STOP
23
Address
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
450A
450B
450C
450D
450E
450F
4510
4511
4512
4513
Label
Mnemonics
MVI
C,00
LHLD
4800
XLHG
LHLD
4802
MOV
SUB
STA
A,E
L
4804
MOV
SBB
STA
A,D
H
4805
HLT
Input
Without borrow
Input Address
4800
4801
4802
4803
Value
07
08
05
06
Output Address
4804
4805
4807
Value
02
02
00
Output
24
Hex Code
0E
00
2A
00
48
EB
2A
02
48
7B
95
32
04
48
7A
9C
32
05
48
76
Comments
C = 00H
L 1st No.
HL DE
HL 2nd No.
A
A
A L
memory
MSB of 1 to A
A- A H
A memory
Stop execution
With borrow
Calculation
05
06
Input Address
4800
4801
4802
4803
Value
05
06
07
08
Output Address
4804
4805
4806
Value
02
02
01
07
05
06
CMA
ADI
0101 0110
1010 1001
0000 0001
--------------1010 1010
05
06
(1)
08
07
08
CMA
ACI
0111 1000
1000 0111
0000 0001
-------------1000 1000
07
08
1010 1010
1000 1000
--------------0010 0010
02
02
Result:
The assembly language program for subtraction of two 16 bit numbers was executed
by using 8085 micro processing kit.
25
BIT NUMBERS
Aim:
To write an assembly language for multiplying two 8 bit numbers by using 8085
micro processor kit.
Apparatus required:
8085 microprocessor kit
(0-5V) DC battery
Algorithm:
Step 1
Step 2
Step 3
Step 4
Step 5
Step 6
Step 7
Step 8
Step 9
Step 10
Step 11
:
:
:
:
:
:
:
:
:
:
:
Step 12
Step 13
Step 14
:
:
:
26
START
No
Check for
carry?
Yes
Increment carry
Decrement 2nd number
No
2nd Number
Yes
Store the value f carry in accumulator
END
27
Address
4100
4103
Label
Mnemonics
LDA 4500
MOV B,A
Hex Code
3A, 00, 45
47
Comments
Load the first 8 bit number
Move the 1st 8 bit data to
4104
4107
LDA 4501
MOV C,A
3A, 01, 45
4F
4108
MVI A, 00
3E, 00
410A
410C
MVI D, 00
ADD B
16, 00
80
410D
4110
4111
4112
4115
INC
INR D
DCR C
JNZ
STA 4502
D2 11, 41
14
OD
C2 0C, 41
32 02, 45
4118
MOV A,D
7A
4119
STA 4503
32,03,45
411C
HLT
76
accumulator
Jump if no carry
Increment carry if there is
Jump if number zero
Store
the
result
in
accumulator
Move the carry
into
accumulator
Store
the
result
in
accumulator
Stop the program execution
Input
Input Address
4500
4501
Value
04
02
Output Address
4502
4503
Value
08
00
Output
Result:
The assembly language program for multiplication of two 8 bit numbers was executed
using 8085 micro processing kit.
28
:
:
:
:
:
:
:
:
:
:
:
:
:
:
29
START
No
Check for
carry?
Increment carry
Decrement 2nd number
Dividend
Yes
Store the Quotient in accumulator
Move the remainder to accumulator
Store the remainder in accumulator
END
30
Address
4100
4102
4105
Label
Mnemonics
MVI C, 00
LDA, 4500
MOV B,A
Hex Code
0E, 00
3A 00, 45
47
Comments
Intialise Quotient as zero
Get the 1st data
Copy the 1st data into
LDA, 4501
CMP B
JC (LDP)
3A 01, 45
B8
DA 12,41
SUB B
90
INR C
JMP (LDP, 41)
0C
C3, 0D, 41
STA 4502
32 02,45
4115
MOV A,C
79
4116
STA 4503
32 03,45
4119
HLT
76
4106
4109
410A
410D
Loop 2
410E
410F
4112
Loop 1
Input
Input Address
4500
4501
Value
09
02
Output Address
4502
4503
Value
04 (quotient)
01 (reminder)
Output
Quotient
Carry
1001
0010
-----0111
0010
-----0101
0010
-----0011
0010
-----0001
- 04
- 01
II
III
IV
carry
31
Result:
The assembly language program for division of two 8 bit numbers was executed using
8085 micro processing kit.
32
:
:
Step 3
Step 4
Step 5
Step 6
Step 7
Step 8
:
:
:
:
:
:
Step 9
Step 10
Step 11
Step 12
:
:
:
:
ro, go step 3
Stop the program execution
33
START
-1)
Compare
the datas
A<M
No
Yes
C=0?
No
Yes
Decrement
No
B=0?
END
34
Address
4100
4103
4104
4105
4108
4109
410A
410B
410C
410D
Mnemonics
LDA 4500
MOV B,A
DCR B
LXI H, 4500
MOV C,M
DCR C
INX H
MOV A,M
INX H
CMP M
Hex Code
3A, 00,45
47
05
21, 00,45
4E
0D
23
7E
23
BE
410E
JC
DA, 16, 41
4111
MOV D,M
56
4112
4113
MOV M,A
DCX H
77
2B
4114
MOV M,D
72
4115
4116
4117
411A
411B
411E
Label
Loop 3
Loop 2
Loop 1
INX H
DCR C
JNZ Loop 1
DCR B
JNZ Loop 2
HLT
23
0D
C2, 0B, 41
05
C2, 05, 41
76
Comments
Load the number of values
For (N-1) comparisons
Set the pointer for array
Count for (N-1) comparisons
For (N-1) comparisons
Increment pointer
Increment pointer
Compare
next
with
accumulator
If content less memory go
ahead
If it is greater than
interchange it
Memory content
Exchange the content of
memory poin
previous location
location
Increment pointer
values
Stop the program execution
Input
Input Address
4500
4501
4502
4503
4504
Value
04
AB
BC
01
0A
Output Address
4500
4501
4502
4503
4504
Value
04
01
0A
AB
BC
Result:
The assembly language program for sorting numbers in ascending order was executed
by microprocessor kit.
35
Apparatus required:
8085 microprocessor kit
(0-5V) DC battery
Algorithm:
Step 1
Step 2
:
:
Step 3
Step 4
:
:
Step 5
Step 6
Step 7
Step 8
:
:
:
:
-1) Repetitions
gister pair as data array address pointer and load the
data of array in accumulator
-1) repetitions
Step 9
mulator
If the value of accumulator is larger than memory, then jump
to step 10, otherwise next step.
accumulator
Step 10
o go to step 6,
otherwise next step.
Step 11
Step 12
:
:
next step.
Stop the program execution
36
START
-1)
-1)
A<M
No
Exchange the contents
C=0?
Decrement register C
Yes
No
B=0?
No
END
Yes
37
Address
4100
Mnemonics
LDA 4500
Hex Code
3A, 00,45
MOV B,A
DCR B
LXI H, 4500
MOV C,M
DCR C
INX H
MOV A,M
INX H
CMP M
ICE, Loop 1
47
05
21, 00,45
4E
0D
23
7E
23
BE
D2, 16,41
4111
MOV D,M
56
4112
MOV M,A
77
4113
4114
DCX H
MOV M,D
2B
72
4115
4116
4117
411A
411B
INX H
DCR C
JNZ Loop 2
DCR B
JNZ Loop 3
23
0D
C2, 0B, 41
05
C2, 05, 41
HLT
76
4103
4104
4105
4108
4109
410A
410B
410C
410D
410E
Label
Loop 3
Loop 2
Loop 1
411E
Comments
Load the number of values
in accumulator
For (N-1) comparisons
Set the pointer for array
Count for (N-1) comparisons
For (N-1) comparisons
Increment pointer
Get one data from array
Increment pointer
Compare next with number
If it is greater than
interchange the datas
Accumulator to memory
value
Decrement memory pointer
previous location
Increment pointer
Repeat till
Jump to loop till the value of
Stop the program execution
Input
Input Address
4500
4501
4502
4503
4504
Value
04
AB
BC
01
0A
Output Address
4500
4501
4502
4503
4504
Value
04
BC
AB
0A
01
Result:
The assembly language program for sorting
executed successfully using microprocessor kit.
38
:
:
Step 3
Step 4
Step 5
:
:
:
Step 6
Step 7
Step 8
Step 9
Step 10
Step 11
Step 12
Step 13
:
:
:
:
:
:
:
:
pair
Increment the pointer to next data
r
39
START
No
Check for
carry?
Yes
Is
C=0?
40
Address
4100
Mnemonics
LDA 4200
Hex Code
3A 00,42
4103
4104
MOV B,A
LXI H, 4201
4F
21,01,42
4107
4108
4109
Loop
SUB A
MOV B,A
ADD M
97
47
86
Skip
JNC Skip
INR B
INX H
D2, 0E, 41
04
23
410F
4110
4113
DCR C
JNZ Loop
STA 4400
0D
C2, 09, 41
32,00,44
4116
MOV A,B
78
4117
411A
STA 4401
HLT
32,01,44
76
410A
410D
410E
Label
Input
Input Address
4200
4201
4202
4203
4204
Value
04
07
09
03
04
Output Address
4400
4401
Value
17
00
Output
07 + 09 + 03 + 04 = 23
= 17 (in Hexa decimal)
(0F + 8 = 233)
0F
08
=
=
0000 1111
0000 1000
--------------0001 0111
1
7
41
Comments
Load the accumulator with
number of values
Move it from A to C
Load the starting address of
data array
Result:
The assembly language program for sum of datas was executed successfully using
8085 microprocessor kit.
42
:
:
:
Step 4
Step 5
Step 6
:
:
:
Step 7
Step 8
Step 9
Step 10
:
:
:
:
Memory address
4250
4251
Content
05
(12010)
43
START
If
Number < 2 ?
Result = 1
Load counter
Initialize result
CALL facto
END
44
Facto
Result = Result X no
No = No -1
No
If
No = 0 ?
Yes
RET
45
Memory
Location
4200
4201
4202
4203
4204
Hex Code
4205
4206
4207
4208
4209
420A
420B
DA
17
42
5F
16
00
3D
420C
Label
3A
50
42
FE
02
Mnemonics
Op code
Operand
LDA
4250
CPI
02H
JC
Loop 1
MOV
MVI
E,A
D,00
DCR
4F
MOV
C,A
420D
420E
420F
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
421A
421B
421C
421D
Sub Routine
4600
4601
4602
4603
CD
00
46
EB
22
51
42
C3
1D
42
21
00
01
22
51
42
76
CALL
Facto
XCHG
SHLD
4251
JMP
Loop 3
LXI
H,0001H
SHLD
4251
Loop 1
Loop 3
HLT
21
00
00
41
Facto
LXI
H,0000
MOV
B,C
4604
19
Loop 2
DAD
4605
4606
4607
4608
05
C2
04
46
DCR
JNZ
B
Loop 2
46
Comments
Get the number
accumulator
in
A)
Call
sub
routine
programe Facto
Exchange (DE) (HL)
Store content of HL in
specified
memory
location
Jump to Loop 3
result
in
moved to B
Content of DE is added
with HL
Multiply by successive
addition till zero flag is
set
EB
0D
XCHG
DCR
460B
460C
460D
460E
C4
00
46
C9
CNZ
Facto
RET
Memory address
4250
4251
[DE] [HL]
Decrement
counter
value
Call on no zero to facto
(i.e repeat process till
zero flag for c = 1)
Return
to
main
program
Content
04
18
1 x 2 x 3 x 4 = 24
Hexadecimal
16 24
1-8
Result:
Thus, factorial program was done successfully
47
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
ccumulator
48
START
49
Address
4200
Label
Mnemonics
LDA 4300
Hex Code
3A, 00, 43
4203
4205
4206
SUI 02
MOV D,A
LXI H, 4301
D6, 02
57
21,01,43
4209
420B
420C
420E
420F
4211
4213
4214
4215
4216
4217
4218
4219
421A
421D
MVI M,00
INX H
MVI M, 01
INX H
MVI B,00
MVI, C, 01
MOV A,B
ADD C
MOV B,C
MOV C,A
MOV M,A
INX H
DCR D
JNZ loop
HLT
36,00
23
36,01
23
06,00
0E, 01
78
81
41
4F
77
23
15
C2, 13,42
76
Loop
Comments
Store the length of series in
Move B to A
Move C to B
Move A to C
Move the result to memory
Increment pointer
Decrement counter
If D = 0, jump to loop
Stop the program
Input
Input Address
4300
Value
05
Output Address
4301
4302
4303
4304
4305
Value
00
01
01
02
03
Output
00 + 01 = 01
01+ 01 = 02
02 + 01 = 03
Result:
The assembly language for Fibonaci series was executed successfully using 8085
microprocessor kit.
50
BIT MULTIPLICATION
Aim:
To write an assembly language program for 16 bit multiplication by using 8085
microprocessor kit.
Apparatus required:
8085 microprocessor kit
(0-5V) DC battery
Algorithm:
Step 1
Step 2
Step 3
Step 4
Step 5
Step 6
Step 7
:
:
:
:
:
:
:
Step 8
Step 9
:
:
Step 10
Step 11
51
START
No
If
Carry=0?
Yes
Increment BC pair
Decrement DE pair
No
Yes
END
52
Memory
Location
4100
4103
Hex Code
4106
4107
2A,02,42
EB
LHLD
XCHG
4202
4108
410B
410E
410F
21,00,00
01,00,00
39
D2, 13, 41
LXI H
LXI B
DAD
JNC
0000
0000
SP
Loop
4112
4113
03
1B
INX
DCX
B
D
4114
4115
Label
2A,00,42
F9
Next
Loop
7B
B2
Mnemonics
Op code
Operand
LHLD
4200
SP HL
MOV
ORA
A,E
D
4116
C2,0E,41
JNZ
Next
4119
22,04,42
SHLD
4204
411C
411D
411E
69
60
22,06,42
MOV
MOV
SHLD
L,C
H,B
4206
4121
76
HLT
Comments
Get the 1st data in HL
Save it in stack
pointer4106
Get the 2nd data in HL
Make HL 0000
Make BC 0000
Jump to loop if no
carry
one
Make E A
&D
Jump on if number
zero
Store the LSB in
memory
Make C to L
Make B to H
Store the MSB in
memory
Stop the program
Input
Input Address
4200
4201
4202
4203
Value
04
07
02
01
Output Address
4204
4205
4206
4207
Value
08
12
01
00
Output
Result:
Thus the assembly language program for 16 bit multiplication was executed
successfully.
53
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
Move
54
START
Check for
if cy = 1
Yes
END
55
Address
4500
4503
4506
4507
450A
450B
450C
450D
450E
450F
4510
4513
4514
4517
4518
451B
451C
451D
4520
Label
Loop 2
Mnemonics
LXI B,0000
LHLD 4802
XCHG
LHLD 4800
MOV A,L
SUB E
MOV L,A
MOV A,H
SBB D
MOV H,A
JC loop 1
INX B
JMP loop 2
SHLD 4806
MOV L,C
MOV H,B
Hex Code
0,00,00
2A,02,48
EB
2A,00,48
7D
93
6F
7C
9A
67
DA,17,45
03
C3, 0A, 45
19
22,06,48
69
60
SHLD 4804
HLT
22,04,48
76
Loop 1
Comments
If cy is present go to loop 1
Increment BC pair by 1
Jump to loop 2
HL is stored in memory
gister data to
Input
Input Address
4800
4801
4802
4803
Value
04
00
02
00
Output Address
4804
4805
4806
4807
Value
02
00
FE
FF
Output
Result:
Thus the assembly language program for 16 bit division was executed successfully.
56
:
:
Step 3
Step 4
Step 5
Step 6
:
:
:
:
Step 7
Step 8
Step 9
Step 10
Step 11
Step 12
:
:
:
:
:
:
xt step
57
START
Cy = ?
Cy = ?
END
58
Memory
Location
4100
Hex Code
4102
53
Label
0E,00
Mnemonics
Op code
Operand
MVI
E,00
Comments
(Hund)
MOV
D,E
(tens)
4103
4106
3A,00,42
C3,06,41
LDA
CPI
4200
64
4108
DA,11,41
JC
TEN
410B
410D
D6, 64
IC
SUI
INR
64
E
410E
C3,06,41
JMP
HUND
4111
C3, 0A
CPI
0A
4113
DA,1C,41
JC
UNIT
4116
4118
D6, 0A
14
SUI
INR
0A
D
4119
411C
C3,11,41
4F
JMP
MOV
TEN
4A
411D
7A
MOV
A,D
411E
411F
4120
07
07
07
RLC
RLC
RLC
4121
4122
4123
07
81
32,50,42
RLC
ADD
STA
C
42,50
4126
4127
7B
32,51,42
MOV
STA
A,E
4251
412A
76
HLT
HUND
TEN
UNIT
59
Move to E to A
Save hundreds unit in
Stop
the
execution
program
Value
54
Output Address
4250
4251
Value
84
00
Output
Result:
Thus the binary to BCD conversion was executed successfully
60
:
:
:
:
:
:
:
:
:
:
Step 11
Step 12
Step 13
:
:
:
61
START
Yes
Zf = 0 ?
END
62
Memory
Location
4100
4103
4104
4106
4107
4108
4109
410A
Hex Code
410B
410C
410E
410F
4110
4113
4114
4115
4117
4118
411B
AF
0E,0A
08
0D
C2,0E,41
47
7B
E6, 0F
80
32,01,42
76
Label
3A,00,42
5E
E6, F0
07
07
07
07
47
Mnemonics
Op code
Operand
LDA
4200
MOV
E,A
ANI
F0
RLC
RLC
RLC
RLC
MOV
B,A
XRA
MVI
REP
DCR
JNZ
MOV
MOV
ANI
ADD
STA
HLT
A
C,0A
C
B,A
A,E
0F
B
4201
Input
Input Address
4200
Value
68
Output Address
4201
Value
44
Output
16 68
4-4
Result:
Thus the BCD to binary conversion was executed successfully
63
Comments
:
:
:
Step 4
Step 5
Step 6
Step 7
Step 8
:
:
:
:
:
Load
Move the memory value to accumulator and display it by
control word
Run the delay loop control D-register becomes zero.
Jump on no zero
When B = 0, go to start and restart the program
64
START
D=0?
one (count)
Cy = ?
65
Memory
Location
4100
4103
4105
4106
4108
410B
410C
410D
410E
410F
4112
4113
4114
4117
Hex Code
Label
Start
LXI
Repeat
Delay
MVI
MOV
OUT
LXI
NOP
DCX
MOV
ORA
JNZ
INX
DCR
JNZ
JMP
Mnemonics
Op code
Operand
H,Look up
21,1A,41
B,04
A,M
C0
D,03,03
D
A,E
D
DELAY
H
B
Repeat
START
06,04
7E
D3, C0
11
00
1B
7B
B2
C2, 0B,41
23
05
C2,05,41
C3,00,41
Comments
data
B = 04
Display it
with FFFF
Start delay loop
Decrement DE by 1
Check De = 0 or not
Jump on zero
Increment HL by 1
Decrement B by 1
Jump on no zero
Jump to start
Input
Input Address
411A
411B
411C
411D
Value
0A
06
05
09
Output Address
411A
411B
411C
411D
Value
09
05
06
0A
Reverse Direction
Result:
Thus, an assembly language program to control of stepper motor was written using
8085 microprocessor kit.
66
Step 2
Step 3
Step 4
:
:
:
Step 5
Step 6
Step 7
Step 8
Step 9
Step 10
:
:
:
:
:
:
Increment the register pair by one and display the character and
call for delay.
Clear the display and call delay routine to step 7
Go to step 7
ry address
If the content is not equal to zero, go to step 8
Return to main program
67
START
No
Check for
carry?
Yes
Call delay
Load control word for linear screen
Call delay
No
If
Content ?
Yes
Return
68
Memory
Location
4300
4302
Hex Code
Label
MVI
OUT
4304
MVI
4306
4308
430A
430C
430F
4310
4311
4312
4314
4315
4318
431B
431D
431F
4322
4600
4603
4604
4605
4606
4609
Loop 2
Loop 1
Delay
Loop 3
OUT
MVI
OUT
LXI
MOV
INX
MOV
OUT
DCR
JNZ
CALL
MVI
OUT
CALL
JMP
LXI
DCX
MOV
ORA
JNZ
RET
Mnemonics
Op code
Operand
A,00
3E,00
01
DE,01
A,90
01
A,CC
01
H,5000
C,M
H
A,M
00
C
Loop 1
Delay
A,DC
01
Delay
Loop 2
D,FFFF
D
A,E
D
Loop 3
C9
Comments
3E,90
D3,01
3E,CC
0D,01
21,00,50
4E
23
7E
D3, 00
0D
C2,10,43
C0,00,46
3E,DC
D3, 01
CD,00,46
C3 0C,43
11,FF,FF
1B
7B
B2
C2,03,46
C9
RAM
Out the cw
A = CC
Out the cw
M to C
Move M to A
Out the character
Check for zero
Call subroutine
A <- 0C
A<-01
Call subroutine
Check for zf
Intialise DE=FFFF
Decrement DE by 1
Jump on no zero
Return
to
main
program
Input
Input Address
5000
5001
5002
5003
5004
5005
Value
05
68
68
68
FD
88
Output
EEE
Result:
Thus, an assembly language program to obtain flashing display of a particular data
was written using 8085 microprocessor kit.
69
Step 2
Step 3
Step 4
Step 5
:
:
Step 6
Step 7
Step 8
:
:
:
70
Delay
t by one
No
If
Count ?
Yes
No
Count ?
Yes
Return
71
Memory
Location
4500
4502
Hex Code
Label
MVI
OUT
Mnemonics
Op code
Operand
A,00
3E,00
01
DE, 01
4504
4506
MVI
OUT
A,90
01
3E, 90
DE,01
4508
450A
MVI
OUT
A,CC
01
3E,CC
DE,01
LXI
H,5000
21,00,50
MOV
INX
MOV
OUT
CALL
DCR
JNZ
JMP
LXI
DCX
MOV
ORA
JNZ
RET
C,M
H
A,M
00
Loop
C
Loop 1
Loop 2
D,FFFF
D
A,D
E
Loop 3
4E
23
7E
DE, 00
CD,00,46
0D
C2,10,45
C3,0C,45
11,FFFF
1B
7A
B3
C2,03,46
C9
450C
450F
4510
4511
4512
4514
4517
4518
451B
4600
4603
4604
4605
4606
4609
Loop 2
Loop 1
Loop
Loop 3
Comments
Initialise A 00
Control word through 8
bit
A = RAM cw
Output cw through 8
bit port
A = CC
Output cw through 8
bit port
Memory
->
HL
location
M -> C
Input
Input Address
5000
5001
5002
5003
5004
5005
5006
Value
06
98
68
7A
C8
1A
2C
Output
HELPUS
Result:
Thus, an assembly language program to obtain rolling display of a particular value
written using 8085 microprocessor kit.
72
:
:
:
:
:
:
:
:
:
:
:
:
Call delay
Call delay
Go to step 1
Counter 1 = 05
Counter 2 = FF
Decrement counter 2
Check if c= 0, if no jump to step 3
Decrement counter 1
Check if B = 0, if no jump to step 2
Return to main program
73
START
Check for
c=?
No
Yes
No
Check for
B=0?
Yes
Return
74
Memory
Location
4100
4102
4104
4107
4109
410B
410E
4111
4113
4115
4116
4119
411A
411D
Hex Code
Label
3E,00
D3,C8
CD,11,41
3E,FF
D3,C8
CD,11,41
C3,00,41
06,05
0E
OD
C2,15,41
05
C2,13,41
C9
Start
Delay
Loop 1
Loop 2
Mnemonics
Op code
Operand
MVI
A,00
OUT
C8
CALL
Delay
MVI
A,FF
OUT
C8
CALL
Delay
JMP
Start
MVI
B,05
MVI
C,FF
DCR
C
JNZ
Loop 2
DCR
B
JNZ
Loop 1
RET
Comments
Result:
Thus square wave was generated using 8085 microprocessor kit.
75
main
:
:
:
:
:
:
:
Output content of C8
Increment L till zf = 0
76
Delay
Move
Output the control word for control signal
L=0?
No
Yes
L=0?
Yes
Jump to start
77
No
Memory
Location
4300
4302
4303
4305
4306
Hex Code
Label
2E,00
7D
D3,C8
2C
C2,02,43
Start
Loop 1
4309
430B
430C
430E
430F
2E, FF
70
D3,C8
2D
C2,0B,43
4312
C3,00.43
Loop 2
Mnemonics
Op code
Operand
MVI
L,00
MOV
A,L
OUT
C8
INR
L
JNZ
Loop 1
MVI
MOV
OUT
DCR
JNZ
L,FF
A,L
C8
L
Loop 2
JMP
Start
Comments
Result:
Thus the triangular wave was generated using 8085 microprocessor kit.
78
:
:
:
:
Delay
Memory
Location
4500
4502
4504
4505
Hex Code
Label
3E,00
D3, C8
3C
C3,02,45
Start
Loop 1
Mnemonics
Op code
Operand
MVI
A,00
OUT
C8
INR
A
JMP
Loop 1
TRIANGULAR WAVE
79
Comments
A = [C8]
Jump to loop one
SQUARE WAVE
Result:
Thus the Sawtooth wave was generated using 8085 microprocessor kit.
80
:
:
Step 3
Step 4
Step 5
:
:
:
Step 6
81
START
Load the control word necessary for generation of ALE signal to control register
Load the control word necessary to start the conversion to control register
Get the output port specified
If the 1st
LSB bit=1?
82
Memory
Location
5000
5002
5004
5006
Hex Code
Label
5008
5009
500A
00
00
3E,10
NOP
NOP
MVI
A,10
500C
D3,C8
OUT
C8
500E
5010
5012
5013
5014
5015
5017
5019
501B
501D
5020
5022
5023
5025
5028
5029
502B
502C
502E
502F
5032
5034
5036
3E,01
D3,D0
00
00
00
3E,00
D3,D0
DB,D8
E6,01
CA,19,50
DB,C0
47
E6,0F
32,51,51
78
E6,F0
0F
0F
0F
32,50,51
3E,03
0E,08
21,50,51
MVI
OUT
NOP
NOP
NOP
MVI
OUT
IN
ANI
JZ
IN
MOV
ANI
STA
MOV
ANI
RRC
RRC
RRC
STA
MVI
MVI
LXI H
A,01
D0
5039
503C
CD,05,00
C3,0E,50
CALL
JMP
0005
500E
3E,10
D3,C
3E,18
D3, C8
L2
L1
Mnemonics
Op code
Operand
MVI
A,10
OUT
C8
MVI
A,18
OUT
C8
A,00
D0
D8
01
L1
C0
B,A
0F
5151
A,B
F0
550
A,03
C,08
5150
Comments
signal
Output channel through
8 bit port
2nd
Output through 8 bit
Result:
Thus the analog to digital conversion was done microprocessor.
83
START
Initialize DPTR
Stop
84
Label
Opcode
Start
C3
74DA
CLR C
MOV A, # data 1
4103
24DA
ADD A, # data 2
4105
464500
4108
F0
MOV A @ DPTR, A
4109
80 FE
Execution:
Addition:
ML
4103
4109
Mnemonics
SJMP 4109
Input
0L
03
ML
4500
Comments
Clear the carry flat
Moves data 1 to
register A
Add content of A and
data 2 and store in A
Moves data 4500 to
DPTR
Moves control of A to
location pointed DTPR
Short jump to 4109
Output
05
Label
Opcode
Start
C3
74DA
CLR C
MOV A, # data 1
4103
24DA
SUB B, # data 2
4105
4108
464500
F0
4109
80 FE
SJMP 4109
Execution:
Subtraction:
ML
4101
4103
Mnemonics
Input
05
02
ML
4500
Result:
Thus 8-bit addition, subtraction is performed using 8051.
85
Comments
Clear the carry flat
Moves data 1 to
register A
Subtract data 2 from
content of A and store
result in A
Moves 4500 to DPTR
Moves
result
by
location by DTPR
Short jump to 4109
Output
03
START
Increment data
Increment DPTR
Stop
86
Yes
EE0310-Microprocessor & Microcontroller Lab
Program: 8-bit Multiplication:
Memory
Label
Opcode
Location
4100
Start
7403
Mnemonics
MOV A, # data 1
4101
75F003
4105
A4
4106
904500
4109
410B
410D
410E
F0
E5F0
F0
80FE
MOV X @DPTR, A
MOV A,B
MOV A @ DPTR
SJMP 410E
Execution:
Multiplication:
ML
4101
4103
Program: 8-bit Division:
Memory
Label
Location
4100
Start
MUL A B
Input
0L
04
Output Address
4500
Opcode
7408
4102
75F002
4105
84
4106
904500
4109
410A
410B
410D
410E
F0
A3
ESF0
F0
80FE
Execution:
Division:
ML
4101
4103
MOV B, # data 2
Comments
Mnemonics
Value
08
Comments
MOV A, # data 1
Input
08
04
Output Address
4500
Result:
Thus 8-bit multiplication & division is performed using 8051.
87
Value
02