0% found this document useful (0 votes)
59 views

Microprocessors and Microcontrollers Laboratory

The document contains the lab report for experiments performed on arithmetic operations using 8086 microprocessor. It includes programs for 8-bit addition, subtraction, multiplication, and division. It also includes programs for 16-bit addition with carry and subtraction with borrow using 8086 microprocessor. Each experiment lists the aim, algorithm, program, input, output, and result to verify the arithmetic operation was performed correctly.

Uploaded by

Roshan Suresh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
59 views

Microprocessors and Microcontrollers Laboratory

The document contains the lab report for experiments performed on arithmetic operations using 8086 microprocessor. It includes programs for 8-bit addition, subtraction, multiplication, and division. It also includes programs for 16-bit addition with carry and subtraction with borrow using 8086 microprocessor. Each experiment lists the aim, algorithm, program, input, output, and result to verify the arithmetic operation was performed correctly.

Uploaded by

Roshan Suresh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 168

CMS COLLEGE OF ENGINEERING AND

TECHNOLOGY
(Approved by AICTE, New Delhi and affiliated to Anna University)
Coimbatore – 641032.

2020 – 2021

NAME : ARUNIMA KRISHNAKUMAR

REG. NO. : 720418104009

BRANCH & SECTION : CSE, III rd YR

SUBJECT CODE & TITLE : EC8691, MICROPROCESSORS AND

MICROCONTROLLERS _
CMS COLLEGE OF ENGINEERING AND TECHNOLOGY
(Approved by AICTE, New Delhi and affiliated to Anna University)

Certified that this is a Bonafide record work done in Microprocessors and


Microcontrollers Laboratory, by Mr. / Ms. _ _ _ARUNIMA
_ _ _ _ _KRISHNAKUMAR
________________
_ _ _ _ _ _ _ _ _ of this institution as prescribed by Anna University Chennai, for the V
semester course in Computer Science and Engineering branch, during the academic year
2020 -2021.

Date:

Staff In charge: Head of the Department

06/08/2021
Submitted for the university practical examination held on .................................. at
CMS College of Engineering and Technology, Coimbatore – 32

University Register Number 720418104009

……………………………………. …………………………………….
Internal Examiner External Examiner
S.NO DATE EXPERIMENTS MARK SIGN

8 BIT ARITHMETIC ADDITION


19/02/2021
1 USING 8086

8 BIT ARITHMETIC
19/02/2021 SUBTRACTION USING 8086
2
8 BIT ARITHMETIC
19/02/2021
3
MULTIPLICATION USING 8086
8 BIT ARITHMETIC DIVISION
27/03/2021 USING 8086
4

16 BIT ARITHMETIC ADDITION


27/03/2021
5 WITH CARRY USING 8086

16 BIT SUBTRACTION WITH


27/03/2021 BORROW USING 8086
6

16 BIT MULTIPLICATION USING


27/03/2021
7
8086

06/03/2021
8 16 BIT DIVISION USING 8086

06/03/2021
9 ASCENDING ORDER USING 8086

DESCENDING ORDER USING


10 06/03/2021 8086

11 11/03/2021 MATRIX ADDITION USING 8086

STRING MANIPULATION USING


12 11/03/2021 8086
13 11/03/2021 LARGEST NUMBER USING 8086

14 13/03/2021 SMALLEST NUMBER USING 8086

BCD TO HEXA DECIMAL


13/03/2021
15 CONVERSIONUSING 8086

HEXADECIMAL TO ASCII CODE


13/03/2021
16 CONVERSION USING 8086
8 BIT ARITHEMATIC ADDITION
13/03/2021 USING 8051
17 MICROCONTROLLER
8 BIT ARITHEMATIC
18 17/03/2021 SUBTRACTION USING 8051
MICROCONTROLLER
8 BIT ARITHEMATIC
19 17/03/2021 MULTIPLICATION USING 8051
MICROCONTROLLER
8 BIT ARITHEMATIC DIVISION
17/03/2021 USING 8051MICROCONTROLLER
20

TRAFFIC LIGHT CONTROLLER


21 20/03/2021 USING 8051

20/03/2021
22 BIT MANIPULATION USING 8051

LOGICAL OPERTAION USING


20/03/2021 8051
23

20/03/2021
24 FIND AND REPLACE USING 8086
FIND AN AVERAGE OF A
08/04/2021 NUMBER IN AN ARRAY USING
25 8086
8086 STEPER MOTOR
08/04/2021 INTERFACING
26 USING 8086
8086 ADDITION PROGRAM
08/04/2021 USING MASM
27

16/04/2021
28 8086 ADC PROGRAM

DISPLAY INTERFACING
16/04/2021 PROGRAM USING 8086
29

KEYBOARD INTERFACING
16/04/2021 PROGRAM USING 8086
30

SERIAL COMMUNICATION
30/04/2021 USING 8086 (8251)
31

30/04/2021
32 8086 DAC PROGRAM

SQUARE WAVE GENERATION


30/04/2021
33 USING 8086 (8253)

SQUARE OF A NUMBER
34 06/05/2021 USING 8051 MICROCONTROLER

CUBE OF THE NUMBER USING


06/05/2021
35 8051 MICROCONTROLLER

2’S COMPLEMENT USING 8051


08/05/2021
36 MICROCONTROLLER

UNPACKED BCD TO ASCII


08/05/2021
37 CONVERSION

1
EXP NO :1
8 BIT ARITHMETIC ADDITION USING
DATE: 8086

AIM
To write an assembly language program to add two 8 bit numbers
using 8086.
ALGORITHM
Step 1: Load the first data in AC reg.
Step 2: Load the second data in BC register.
Step 3: Add the two numbers.
Step 4: Store the sum in memory.
Step 5: Stop the program.

2
PROGRAM

ADDRESS MNEMONICS OPCODE

1000 MOV AX, 0000 B8, 00, 00

1003 STC F9

1004 MOV AL,22 B0, 22

1006 MOV BL,33 B3, 33

1008 ADC AL,BL 10, D8

100A INT3 CC

INPUT:

ADDRESS DATA

1005 22

1007 33

OUTPUT:

ADDRESS DATA

AX 56

3
RESULT
Thus the addition of two 8 bit numbers using 8086 was executed and
output was verified.

4
EXP NO :2 8 BIT ARITHMETIC SUBTRACTION
DATE: USING 8086

AIM
To subtract two eight bit numbers using 8086 microprocessors.
ALGORITHM
Step 1:Load the first data n in AC register .
Step 2:load the second data in BC register.
Step 3:Subtract the two numbers.
Step 4:Store the result in memory.
Step 5:Stop the program.

5
PROGRAM

ADDRESS MNEMONICS OPCODE

1000 MOV AX, 0000 B8, 00, 00

1003 STC F9

1004 MOV AL, 02 B0, 02

1006 MOV BL, 03 B3, 03

1008 SBB AL, BL 18, D8

100A INT3 CC

INPUT

ADDRESS DATA

1005 02

1006 03

OUTPUT

ADDRESS DATA

AX FE

6
RESULT
Thus the subtraction of two 8 bit numbers using 8086 microprocessors
was performed and the output was verified.

7
EXP NO :3 8 BIT ARITHMETIC MULTIPLICATION
DATE: USING 8086

AIM
To write a program of two 8 bit numbers using 8086 microprocessors.

ALGORITHM
Step 1: Load the first data in AL register.
Step 2: Load the second data in BL register.
Step 3: Multiply the content of B register.
Step 4: Store the printer in memory.
Step 5: Stop the program.

8
PROGRAM

ADDRESS MNEMONICS OPCODE

1000 MOV AL, 04 B0, 04

1003 MOV BL, 02 B3, 02

1005 MUL BL F6, E3

1007 INT3 CC

INPUT

ADDRESS DATA

1001 04

1003 02

OUTPUT

ADDRESS DATA

AX 08

9
RESULT
Thus the program to perform the multiplication of two 8 bit numbers
was performed and output was verified.

10
EXP NO : 4 8 BIT ARITHMETIC DIVISION USING
DATE: 8086

AIM
To write a program to perform division of two 8 bit numbers in 8086.
ALGORITHM
Step 1: Get the lowest word of dividend.
Step 2: Get the upper word of dividend.
Step 3: Perform the quotient in memory.
Step 4: Solve the quotient in memory.
Step 5: Stop the program.

11
PROGRAM

ADDRESSS MNEMONICS OPERAND OPCODE

1000 MOV AX 00 06 B8, 55, 00

1003 MOV CL 02 B1, 05

1005 DIV CL F6, F1

1007 INT3 - CC

INPUT

ADDRESS DATA

1000 55

1003 05

OUTPUT

ADDRESS DATA

AX 0011

12
RESULT

Thus the program to perform the division of two 8 bit numbers was
performed and output was verified.

13
EXP NO :5 16 BIT ARITHMETIC ADDITION WITH
DATE: CARRY USING 8086

AIM
To write programs to perform 16 bit addition along with carry using
8086. Processor.

ALGORITHM
Step 1: Initialize the data segment.
Step 2: Get the first number in AX register.
Step 3: Get the second number in BX register.
Step 4: Set carry flag.
Step 5: Add the two numbers along with carry.
Step 6: Stop.

14
PROGRAM
ADDRESS MNEMONICS OPERAND OPCODE

1100 MOV AX,11 11 B8,11,11

1103 MOV BX,22 22 BB, 22, 22

1106 STC - F9

1107 ADC AX,BX 11, D8

1109 INT3 - CC

OUTPUT

AX=3334

15
RESULT
Thus the program to perform 16 bit addition along with carry is
performed and the output is verified.

16
EXP NO :6 16 BIT SUBTRACTION WITH BORROW
DATE: USING 8086

AIM
To write programs to perform 16 bit subtraction along with borrow.
using 8086 processor.
ALGORITHM
Step 1: Initialize the data segment.
Step 2: Get the first number in AX register.
Step 3: Get the second number in BX register.
Step 4: Set carry flag.
Step 5: Subtract the two numbers along with borrow.
Step 6: Stop.

17
PROGRAM

ADDRESS MNEMONICS OPERAND OPCODE

1100 MOV AX,33 33 B8 33 33

1103 MOV BX,88 88 BB 88 88

1106 STC F9

1107 SBB AX,BX 29 D8

1109 INT3 CC

OUTPUT

AX=AAAB

18
RESULT
Thus the program to perform 16 bit subtraction along with borrow is
performed and the output is verified.

19
EXP NO :7
16 BIT MULTIPLICATION USING 8086
DATE:

AIM:
To write an Assembly Language Program (ALP) for performing the
multiplication operation of 16-bit numbers.
ALGORITHM:
Step 1: Get the multiplier.
Step 2 : Get the multiplicand
Step 3: Initialize the product to 0.
Step 4: Product = product + multiplicand
Step 5: Decrement the multiplier by 1
Step 6: If multiplicand is not equal to 0, repeat from step (d) otherwise store
the product

20
PROGRAM

ADDRESS MNEMONICS OPERAND OPCODE

1000 MOV AX,12,34 B8, 34, 12

1003 MOV BX,01,00 BB, 00,01

1006 MUL BX F7, E3

1008 INT3 - CC

OUTPUT

AX*BX=1234*1000
AX=3400
DX=0012

21
RESULT
Thus the program for 16-bit multiplication was verified.

22
EXP NO :8
16 BIT DIVISION USING 8086
DATE:

AIM:
To write a program to perform 16 bit division using 8086 processor.
ALGORITHM
Step 1: Initialize the data segment.
Step 2: Get the first number in AX register.
Step 3: Get the second number in DX register.
Step 4: Get the third number in CX register.
Step 5: Divide the two 16 bit numbers in AX and CX.
Step 6: Stop.

23
PROGRAM
ADDRESS MNEMONICS OPERAND OPCODE

1000 MOV AX, AA, AA B8,AA,AA

1003 MOV DX,00, AA BA,AA,00

1006 MOV CX,55,55 B9,55,55

1009 DIV CX F7,F1

100B INT3 - CC

OUTPUT
AX=0200 (QUOTIENT)
DX=00AA (REMINDER)

24
RESULT
Thus the program to perform 16 bit division is performed and the
output is verified.

25
26
EXP NO : 9
ASCENDING ORDER USING 8086
DATE:

AIM
To write an Assembly Language Program (ALP) to sort a given array
in ascending order.

ALGORITHM
Step 1: Load the array count in two registers C1 and C2 Get the first two
numbers.
Step 2: Compare the numbers and exchange if necessary so that the two
numbers ascending order .Decrement c2.
Step 3: Get the third number from the array and repeat the process until C2
Is 0.
Step 4: Decrement C1 and repeat the process until C1 is 0.

27
PROGRAM

ADDRESS LABEL MNEMONICS OPCODE

1000 MOV SI, 1200 C7 C6 00 12

1004 MOV CL, [SI] 8A 0C

1006 DEC CL FE C9

1008 LOOP1 MOV SI, 1200 C7, C6,00, 12

100C MOV CH, [SI] 8A, 2C

100E DEC CH FE, CD

1010 INC SI 46

1011 LOOP2 MOV AL, [SI] 8A, 04

1013 INT SI 46

1014 MOV BL, [SI] 8A, 1C

1016 CMP AL, BL 38, D8

1018 JC 1020 72, 06

101A MOV DH, [SI] 8A, 34

101C MOV [SI], AL 88, 04

101E DEC SI 4E

101F MOV [SI], DH 88 34

28
29
1021 INC SI 46

1022 DEC CH FE, CD

1024 JNZ 1011 75, EB

1026 DEC CL FE, C9

1028 JNZ 1008 75, DE

102A INT3 CC

INPUT OUTPUT

ADDRESS DATA ADDRESS DATA

1200 07 1200 07

1201 06 1201 01

1202 05 1202 02

1203 04 1203 03

1204 03 1204 04

1205 02 1205 05

1206 01 1206 06

30
RESULT
Thus the program for sorting the data in ascending is verified.

31
EXP NO :10
DESCENDING ORDER USING 8086
DATE:

AIM
To write an Assembly Language Program (ALP) to sort a given array
in descending order.
ALGORITHM:
Step 1: Load the array count in two registers C1 and C2.
Step 2: Get the first two numbers.
Step 3: Compare the numbers and exchange if necessary so that the two
numbers are in ascending order.
Step 4: Decrement C2.Get the third number from the array and repeat the
process until c2 is 0.
Step 5: Decrement C1 and repeat the process until C1 is 0.

32
PROGRAM
ADDRESS LABEL MNEMONICS OPCODE

1000 MOV SI, 1200 C7, C6, 00, 12

1004 MOV CL, [SI] 8A, 0C

1006 DEC CL FE, C9

1008 MOV SI, 1200 C7, C6, 00, 12

100C MOV CH, [SI] 8A, 2C

100E DEC CH FE, CD

1010 INC SI 46

1011 MOV AL, [SI] 8A, 04

1013 INC SI 46

1014 MOV BL, [SI] 8A, 1C

1016 CMP AL, BL 38, D8

1018 JNC 1020 73, 06

101A MOV DH ,[SI] 8A, 34

101C MOV [SI], AL 88,04

101E DEC SI 4E

101F MOV [SI], DH 88, 34

33
34
1021 INC SI 46

1022 DEC CH FE, CD

1024 JNE 1011 75, EB

1026 DEC CL FE, C9

102C JNZ 1008 75, DE

102F INT 3 CC

INPUT OUTPUT

ADDRESS DATA ADDRESS DATA

1200 07 1200 07

1201 01 1201 06

1202 02 1202 05

1203 03 1203 04

1204 04 1204 03

1205 05 1205 02

1206 06 1206 01

35
RESULT
Thus the program for sorting the data in descending order was verified.

36
EXP NO :11
MATRIX ADDITION USING 8086
DATE:

AIM
To write an assembly language program to perform matrix addition
using 8086.

37
PROGRAM

ADDRESS LABEL MNEMONICS OPCODE

1000 MOV CL,09 B1,09

1002 MOV SI, 2000 BE, 00,20

1005 MOV DI, 3000 BF, 00,30

1008 LOOP1 MOV AL, [SI] 8A, 04

100A MOV BL, [DI] 8A, 1D

100C ADD AL, BL 00, D8

100E MOV [DI], AL 88, 05

1010 INC DI 47

1011 INC SI 46

1012 DEC CL FE, C9

1014 JNZ LOOP 1 75, F2

1016 INT3 CC

38
39
INPUT

ADDRESS DATA ADDRESS DATA

2000 02 3000 04

2001 02 3001 04

2002 02 3002 04

2003 02 3003 04

2004 02 3004 04

2005 02 3005 04

2006 02 3006 04

2007 02 3007 04

2008 02 3008 04

40
41
OUTPUT

ADDRESS DATA

3000 06

3001 06

3002 06

3003 06

3004 06

3005 06

3006 06

3007 06

3008 06

42
RESULT
Thus the program for matrix addition was verified.

43
EXP NO :12
STRING MANIPULATION USING 8086
DATE:

AIM:
To move a string of length FF from source to destination.

ALGORITHM:
Step1: Initialize the data segment. (DS)
Step 2: Initialize the extra data segment. (ES)
Step 3: Initialize the start of string in the DS. (SI)
Step 4: Initialize the start of string in the ES. (DI)
Step 5: Move the length of the string (FF) in CX register.
Step 6: Move the byte from DS TO ES, till CX=0.

44
PROGRAM
ADDRESS LABEL MNEMONICS OPCODE

MOV SI, 1100


1000 BE, 00, 11
(SOURCE)
MOV DI,1200
1003 BF, 00, 12
(DESTINATION)

1006 MOV CX, 0006H B9, 06, 00

1009 CLD FC

100A (NEXT) MOV SB A4

100B LOOP 100A (NEXT) E2, FD

100D INT3 CC

INPUT OUTPUT

ADDRESS DATA ADDRESS DATA

1100 05 1200 05

1101 04 1201 04

1102 01 1202 01

1103 03 1203 03

1104 02 1204 02

1105 08 1205 08

45
RESULT
Thus the program for string manipulation was verified.

46
EXP NO :13
LARGEST NUMBER USING 8086
DATE:

AIM:
To write an Assembly Language Program (ALP) to find the largest in
a given array.

ALGORITHM
Step 1: Load the array count in a register C1.
Step 2: Get the first two numbers.
Step 3: Compare the numbers and exchange if the number is small.
Step 4: Get the third number from the array and repeat the process until C1 is 0.

47
PROGRAM

ADDRESS LABEL MNEMONIC OPCODE

MOV SI, 1100 BE, 00, 11


1000

1003 MOV CI,[SI] 8A, 0C

1005 INC SI 46

1006 MOV AL, [SI] 8A, 04

1008 DEC CL FE, C9

100A LOOP 1 INC SI 46

100B CMP AL, [SI] 3A, 04

100D JNB LOOP 2 73, 02

100F MOV AL,[SI] 8A, 04

1011 LOOP 2 DEC CL FE, C9

1013 JN LOOP 1 75, F5

1015 MOV DI ,1200 BF, 00, 12

MOV [DI], AL
1018 88, 05

1019 INT3 CC

48
49
INPUT

ADDRESS DATA

1100 04

1101 05

1102 02

1103 01

1104 03

OUTPUT

ADDRESS DATA

1200 05

50
RESULT

Thus the program to find the largest in an array is performed and the
output is verified.

51
EXP NO :14
SMALLEST NUMBER USING 8086
DATE:

AIM:
To write an Assembly Language Program (ALP) to find the smallest
number in a given array.
ALGORITHM:
Step 1: Load the array count in a register C1.
Step 2: Get the first two numbers.
Step3: Compare the numbers and exchange if the number is large.
Step 4: Get the third number from the array and repeat the process until C1
is 0.

52
PROGRAM

ADDRESS LABEL MNEMONIC OPERAND OPCODE

1000 BE 00,11
MOV SI,1100

1003 8A OC
MOV CL,[SI]

1005 INC SI 46

1006 MOV AL,[SI] 8A 04

1008 DEC CL FE,C9

100A LOOP2 INC SI 46

100B CMP AZ,[SI] 3A,04

100D JB LOOP 1 72,02

100F MOV AL,[SI] 8A,04

1011 LOOP1 DEC CL FE C9

1013 JN LOOP 2 75,F5

1015 MOV DI,1200 BF 00, 12

1018 MOV [DI],AC 88 ,05

1019 INT 3 CC

53
54
INPUT

ADDRESS DATA

1100 04

1101 05

1102 02

1103 01

1104 03

OUTPUT

ADDRESS DATA

1200 01

55
RESULT

Thus the program to find the smallest number in an array is performed and
the output is verified.

56
EXP NO :15
BCD TO HEXA DECIMAL
DATE: CONVERSIONUSING 8086

AIM
To write a program to perform BCD to Hexadecimal conversion in
8086 microprocessor.

ALGORITHM
Step1: Start the program.
Step2: Move the data 10 to AL register.
Step3: Move the content of AL to AH register.
Step4: Perform the AND operation between the contents of AH and value 0F.
Step5: Move the content of AH to BL register.
Step6: Perform the AND operation between the contents of AL and value F0.
Step7: Move the data 04 to CL register.
Step8: Rotate the upper digit to make it lower nibble.
Step9: Move the value 0A to BH register.
Step10: Multiply the content of BH and AH.
Step 11: Add the content of AL and BL.
Step12: End the program.

57
PROGRAM
ADDRESS LABEL MNEMONICS OPERAND OPCODE

1000 MOV AL, 10 B0,10

1002 MOV AH, AL 88,C4

1004 AND AH, 0F 80,E4,0F

1007 MOV BL,AH 88,E3

1009 AND AL, F0 24, F0

100B MOV CL, 04 B1,04

100D ROR AL, CL D2,C8

100F MOV BH, 0A B7,0A

1011 MUL BH F6, E7

1013 ADD AL, BL 00, D8

1015 INT 3 CC

OUTPUT
AX=000A

58
RESULT

Thus the program to perform BCD to Hexadecimal conversion is done


and the output is verified.

59
EXP NO :16
HEXADECIMAL TO ASCII CODE
DATE: CONVERSION USING 8086

AIM
To write a program to perform Hexadecimal to ASCII code conversion
in 8086 microprocessor.

ALGORITHM
Step1: Start the program.
Step2: Move the data 0A to AL register.
Step3: Compare the content of AL with the number with 09.
Step4: If a zero or equal occurs jump to the Step7.
Step5: If below or nor equal jump to the Step7.
Step6: Add the content of AL with 07.
Step7: Add the content of AL with 30.
Step8: End the program.

60
PROGRAM

ADDRESS LABEL MNEMONICS OPERAND OPCODE

1000 MOV AL,0A B0,0A

1002 CMP AL,09 3C,09

1004 JZ 010A 74,04

1006 JB 010A 72,02

1008 ADD AL,07 04,07

100A ADD AL,30 04,30

100C INT 3 CC

OUTPUT

AX=0041

61
RESULT

Thus the program to perform Hexadecimal to ASCII code conversion is


done and the output is verified.

62
EXP NO :17 8 BIT ARITHEMATIC ADDITION USING
DATE: 8051 MICROCONTROLLER

AIM:
To write a program to perform an 8bit addition using 8051 microcontroller.

63
PROGRAM

ADDRESS LABEL MNEMONICS OPCODE

9000 MOV R0,#00 78, 00

9002 MOV DPTR,#8000 90, 80, 00

9005 MOV A,@DPTR E0

9006 MOV R1,A 79

9007 INC DPTR A3

9008 MOVX A,@DPTR E0

9009 ADD A,R1 29

900A INC LOOP 50, 01

900C INC R0 08

900D INC DPTR A3

MOVX
900E F0
@,DPTR,A

900F MOV A,R0 E8

9010 INC DPTR A3

9011 MOVX @DPTR,A F0

9012 SJMP 80, FE

64
65
OUTPUT

8000 02

8001 01

8002 03

66
RESULT:
Thus the program is executed and the output is verified successfully.

67
EXP NO :18 8 BIT ARITHEMATIC SUBTRACTION

DATE: USING 8051 MICROCONTROLLER

AIM:
To write a program to perform a 8bit subtraction using 8051 microcontroller.

68
PROGRAM

ADDRESS LABEL MNEMONICS OPCODE

9000 MOV R0,#00 78, 00

9002 MOV DPTR,#8000 90, 80, 00

9005 MOV A,@DPTR E0

9006 MOV R1,A F9

9007 INC DPTR A3

9008 MOVX A,@DPTR E0

9009 SUBB A,R1 99

900A JNC LOOP 50, 01

900C INC R0 08

900D INC DPTR A3

900E MOVX @DPTR,A F0

900F MOV A,R0 E8

9010 INC DPTR A3

9011 MOVX @DPTR,A F0

9012 SJMP 80, FE

69
70
OUTPUT:

8000 01

8001 02

8002 01

71
RESULT
Thus the program is executed and the output is verified
successfully.

72
EXP NO :19 8 BIT ARITHEMATIC
MULTIPLICATION
DATE: USING 8051 MICROCONTROLLER

AIM:

To write a program to perform a 8bit multiplication using 8051


microcontroller.

73
PROGRAM

ADDRESS LABEL MNEMONICS OPCODE

9000 MOV DPTR,#8000 90, 80, 00

9003 MOVX A,@DPTR E0

9004 MOV B,F0 F5, F0

9006 INC DPTR A3

9007 MOVX@ A,@DPTR E0

9008 MUL AB A4

9009 INC DPTR A3

900A MOVX @DPTR,A F0

900B INC DPTR A3

900C MOV A,F0 E5, F0

900E MOVX @DPTR,A F0

900F SJMP 80, FE

74
75
OUTPUT

8000 02

8001 04

8002 08

76
RESULT
Thus the program is executed and the output is verified successfully.

77
EXP NO :20
8 BIT ARITHEMATIC DIVISION
DATE: USING 8051 MICROCONTROLLER

AIM:

To write a program to perform an 8bit division using 8051 microcontroller.

78
PROGRAM

ADDRESS LABEL MNEMONICS OPCODE

9000 MOV DPTR,#8000 90, 80, 00

9003 MOVX A,@DPTR E0

9004 MOV B,F0 F5, F0

9006 INC DPTR A3

9007 MOVX A,@DPTR E0

9008 DIV AB 84

9009 INC DPTR A3

900A MOVX @DPTR,A F0

900B INC DPTR A3

900C MOV A,F0 E5, F0

900E MOVX @DPTR,A F0

900F SJMP 80, FE

79
80
OUTPUT

8000 02

8001 08

8002 04

81
RESULT
Thus the program is executed and the output is verified successfully.

82
EXP NO :21
TRAFFIC LIGHT CONTROLLER
DATE: USING 8051

AIM:

To write a program for traffic light operation using 8051 microcontroller.

83
PROGRAM

ADDRESS LABEL MNEMONICS OPCODE

9000 MOV A,#80H 74 80

9002 MOV DPTR,#PPI+3 90 60 03

9005 MOVX,@DPTR,A F0
FOR STARTING VEHICLES N DIRECT&PEDEST STOPPING:

ADDRESS LABEL MNEMONICS OPCODE

9006 MOV A,#0FH 74 0F

9008 MOV DPTR,#PPTH 90 60 01

900B MOVX @DPTR,A F0

900C MOV A,#4DH 74 4D

900E MOV DPTR,#PPI 90 60 00

9011 MOVX @DPTR,A F0

9012 LCALL DELAY 12 90 7E

9015 LCALL AMBER 12 90 72


FOR STOP VEHICLES N-S DIRECT&START IN E-W

ADDRESS LABEL MNEMONICS OPCODE

9018 MOV DPTR,#PPI 90 60 00

901B MOV A,#8BH 74 8B

84
85
901D MOVX @DPTR,A F0

9016 LCALL DELAY 12 90 7E

9021 LCALL AMBER 12 90 72


FOR STRAIGHT RIGHT TURN IN N-S &STOP E-W

ADDRESS LABEL MNEMONICS OPCODE

9024 MOV A,#49H 74 49

9026 MOV DPTR,#PPI 90 60 00

9029 MOVX @DPTR,A F0

902A MOV DPTR,#PPI+2 90 60 02

902D MOV A,#1 74 01

902F MOVX@DPTR,A F0

9030 LCALL DELAY 12 90 7E

9033 MOV A,#0 74 00

9035 MOVX@DPTR,A F0

9036 LCALL AMBER 12 90 72


STOP RIGHT TURN IN N-S &START RIGHT TURN IN E-W:

ADDRESS LABEL MNEMONICS OPCODE

9039 MOV A,#89H 74 89

86
87
903B MOV DPTR,#PPI 90 60 00

903E MOVX,@DPTR,A F0

903F MOV DPTR,#PPI+2 90 60 02

9042 MOV A,#2 74 02

9044 MOVX,@DPTR,A F0

9045 LCALL DELAY 12 90 7E

9048 MOV A,#0 74 00

904A MOVX@DPTR,A F0

904B MOV A,#30 74 30

904D MOV DPTR,#PPI 90 60 00

9050 MOVX@DPTR,A F0

9051 MOV R1,#4 79 04

9053 LCALL DELAYSUB 12 90 84


FOR STARTING PEDESTRATION:

ADDRESS LABEL MNEMONICS OPCODE

9056 MOV A,#C0H 74 C0

9058 MOV DPTR,#PPI 90 60 00

905B MOVX@DPTR,A F0

88
89
905C INC DPTR A3

905D MOV A,#0F0H 74 F0

905F MOVX,@DPTR,A F0

9060 MOV R1,#10H 79 10

9062 LCALL DELAYSUB 12 90 84

9065 MOV A,#30H 74 30

9067 MOV DPTR,#PPI 90 60 00

906A MOVX,@DPTR,A F0

906B MOV R1,#8 79 08

906D LCALL DELAYSUB 12 90 84

9070 AJMP CONTINUE 01 06


AMBER:

ADDRESS LABEL MNEMONICS OPCODE

9072 MOV DPTR#PPI 90 60 00

9075 MOV A,#39H 74 39

9077 MOVX @DPTR,A F0

9078 MOV R1,#8H 79 08

907A LCALL DELAYSUB 12 90 84

90
91
907D RET 22
DELAY:

ADDRESS LABEL MNEMONICS OPCODE

907E MOV R1,#040H 79 40

9080 LCALL DELAYSUB 12 90 84

9083 RET 22
DELAY SUBROUTINE:

ADDRESS LABEL MNEMONICS OPCODE

9084 MOV R2,#0FFH 7A FF

9086 MOV A,#00FFH 74 FF

9088 NOP 00

9089 DEC A 14

908A JNZ BACK 70 FC

908C DEC R2 1A

908D MOV A,R2 EA

908E JNZ BACK1 70 F6

9090 MOV A,R1 E9

9091 JZ OUT 60 03

92
93
9093 DEC R1 19

9094 JNZ BACK2 70 EE

9096 RET 22

94
RESULT
Thus the program for traffic light was performed and the output is
verified.

95
EXP NO :22
BIT MANIPULATION USING 8051
DATE:

AIM:

To write a program to perform a bit manipulation using 8051.

96
PROGRAM

ADDRESS MNEMONICS OPCODE

9000 CPL 91(P1.1) B2 91

9002 ACALL 9100 31 00

9004 SJMP 9000 80 FA

DELAY ROUTINE

ADDRESS MNEMONICS OPCODE

9100 MOV R1,#FF 79, FF

9102 MOV A,#FF 74, FF

9104 NOP 00

9105 NOP 00

9106 NOP 00

9107 NOP 00

9108 DEC A 14

9109 JNZ 9104 70, F9

910B DJNZ R1,9102 D9, F5

910D RET 22

97
RESULT:
Thus the program is executed and the output is verified successfully.

98
EXP NO :23
LOGICAL OPERATIONS USING 8051
DATE:

AIM:
To write a program to perform a AND, OR, XOR operations using
8051

99
AND OPERATION

ADDRESS MNEMONICS OPCODE

9000 MOV A,#01 74 01

9002 MOV R0,#55 78 55

9004 ANL A,R0 58

9005 MOV R1,A F9

9006 LCALL 00,BB 12 00 BB

OUTPUT
A = 01
OR OPERATION

ADDRESS MNEMONICS OPCODE

9000 MOV A,#01 74 01

9002 MOV R0,#55 78 55

9004 ORL A,R0 48

9005 MOV R1,A F9

9006 LCALL 00,BB 12 00 BB

OUTPUT
A = 55

100
101
XOR OPERATION

ADDRESS MNEMONICS OPCODE

9000 MOV A,#01 74 01

9002 MOV R0,#55 78 55

9004 XRL A,R0 68

9005 MOV R1,A F9

9006 LCALL 00,BB 12 00 BB

OUTPUT
A = 54

102
RESULT
Thus the program is executed and the output is verified successfully.

103
EXP NO :24 FIND AND REPLACE
DATE: USING 8086

AIM
To find and replace an element using 8086 microprocessor.

104
PROGRAM

ADDRESS LABEL MNEMONICS OPCODE

1000 MOV DI,1300 BF 00 13

1003 MOV SI,1400 BE 00 14

1006 MOV CX,0006 B9 06 00

1009 CLD FC

100A MOV AL,08 B0 08

100C MOV BH,30 B7 30

100E REPNE SCASB F2

1010 DEC DI 4F

1011 MOV BL,[DI] 8A 1D

1013 MOV [SI],BL 88 1C

1015 MOV [DI],BH 88 3D

1017 INT3 CC

105
106
INPUT OUTPUT

ADDRESS DATA ADDRESS DATA

1300 56 1300 56

1301 44 1301 44

1302 67 1302 67

1303 78 1303 78

1304 08 1304 30

1305 54 1305 54

107
RESULT
Thus the program is executed and the output is verified successfully.

108
EXP NO :25
FIND AN AVERAGE OF A NUMBER IN
AN ARRAY USING 8086
DATE:

AIM

To perform an average of an array using 8086.

109
PROGRAM

ADDRESS LABEL MNEMONICS OPCODE

1000 MOV BX,0000H BB, 00, 00

1003 MOV SI,9000H BE, 00, 90

1006 MOV AX,0000H B8, 00 00

1009 MOV CL,06H B1, 06

100B MOV CH,CL 8A, E9

100D MOV BL,[SI] 8A, 1C

100F ADD AL,BL 02, C3

1010 INC SI 46

1012 DEC CL FE, C9

1014 JNB NEXT 75, F7

1016 DIV CH F6, F5

1017 INT3 CC

110
111
INPUT

ADDRESS DATA

9000 03

9001 03

9002 03

9003 03

9004 03

9005 03

OUTPUT

AX=0003

112
RESULT:
Thus the program is executed and the output is verified successfully.

113
EXP NO :26 8086 STEPER MOTOR INTERFACING
USING 8086
DATE:

AIM:

To write An assembly language program in 8086 to rotate the motor at


different speeds.

114
PROGRAM
CLOCKWISW DIRECTION:

ADDRESS LABEL MNEMONICS OPCODE

1000 MOV DX,FF26 BA 26 FF

1003 MOV AL,80 B0 80

1005 OUT DX,AL EE

1006 LOOP1 MOV DX,FF20 BA 20 FF

1007 MOV AL,05 B0 05

100B OUT DX,AL EE

100C CALL 1100 E8 F1 00

100F MOV AL,07 B0 07

1011 OUT DX,AL EE

1012 CALL 1100 E8 EB 00

1015 MOV AL,06 B0 06

1017 OUT DX,AL EE

1018 CALL 1100 E8 E5 00

101B MOV AL,04 B0 04

101D OUT DX,AL EE

115
116
101E CALL 1100 E8 DF 00

1021 JMP 1006 E8 E3

DELAY SUBROUTINE:

ADDRESS LABEL MNEMONICS OPCODE

1100 MOV BX,00 10 BB 1000

1103 LOOP3 MOV AL,FF B0 FF

1105 LOOP4 NOP 90

1106 NOP 90

1107 NOP 90

1108 NOP 90

1109 DEC AC FE C8

110B JNE 1105 75 F8

110D DEC BX 4B

110E JNE 1103 75 F3

1110 RET C3

117
RESULT:
Thus the program for rotating a stepper motor at different speed was
verified.

118
EXP NO :27 8086 ADDITION PROGRAM
DATE: USING MASM

MASM
1. Start ----------- Run
2. Run ------------CMD
3. Enter
4. DOS window opens
5. Enter (type) cd\
6. Change the directory to D by typing C :\> D
7. D:\>cd masm [open the masm folder by typing cd\masm]
8. D:\MASM debug
9. Press Enter
10.? [Type a question mark]
11. You can type a program by A1000 (a starting address)
12. A1000 [enter program]
13. 1000: MOV AX, 0001
1003: MOV BX, 0001
1006: ADD AX, BX
1008: INT3
14. Press double enters to come out of the program.
15. Type P = starting address [p=1000] Enter.
16. Display all the register values
AX: 0001 BX: 0000 CX: 0000
17. To RUN [A=1000] enter it display the output
AX: 0002, BX: 0001, CX=0000

119
EXP NO:28
8086 ADC PROGRAM
DATE:

AIM
To write an assembly language program for analog to digital
conversion using 8086.

120
PROGRAM

ADDRESS LABEL OPCODE MNEMONICS

1000 BA 26 FF MOV DV,FF 26 H

1003 B0 90 MOV AL,90 H

1004 EE OUT DX,AL

1006 BA 24 FF MOV DX FF24H

1009 B0 FF MOV AL,FFH

100B EE OUT DX,AL

100C B0 00 MOV AL,OOH

100E EE OUT DX AL

100F B0 FF FFH

1011 EE OUT DX AL

1012 E8 EB 00 CALL 110 OH

1015 BA 20 FF MOV DX,FF 20H

1018 EC IN AL,DA

1019 CC INT3

121
122
DELAY SUBROUTINE

ADDRESS LABEL OPCODE MNEMONICS

MOV
1100 B9 FF FF
CX,FFFFF H

1103 L1 90 NOP

1104 90 NOP

1105 41 DEC CX

1106 75 FB INC

1108 C3 RET

OUTPUT

0.00 AX=0000

2.00 AX=006B

5.00 AX=00FF

123
RESULT
Thus the program for 8086 ADC was executed and output is verified
successfully.

124
EXP NO :29 DISPLAY INTERFACING PROGRAM
DATE: USING 8086

AIM
To write assembly language program for display using 8086.

125
PROGRAM

ADDRESS MNEMONICS OPCODE

1050 MOV AL,12H B012

1052 MOV DX,FF 52 BA 52 FF

1055 OUT DX,AL EE

1056 MOV AL,3EH B0 3E

1058 OUT DX,AL EE

1059 MOV AL,AOH B0 A0

105B OUT DX,AL EE

105C MOV AX,08H B4 08

105E MOV DX,FF50H BA 50 FF

1061 MOV AL,OOH B0 00

1063 OUT DX,AL EE

1064 DEC AH FE CC

1066 JNE 1063 75 FB

1068 MOV DX,FF52H BA 52 FF

106B IN AL,DX EC

100C AND AL,OH 24 01

126
127
106E JE 106CH 74 FC

1070 MOV DX,FF50H BA 50 FF

1043 MOV BX,2000H BB 00 20

1076 MOV AL,[BX] 8A 07

1078 OUT DX,AL EE

1079 JMP 1068H EB ED

128
RESULT
Thus the program was executed and output is verified.

129
EXP NO: 30 KEYBOARD INTERFACING PROGRAM
DATE: USING 8086

AIM
To write an assembly language program for keyboard interfacing using 8086.

130
PROGRAM

ADDRESS MNEMONICS OPCODE

1000 MOV AL,12H B0 12

1002 MOV DX,FF 52 H BA 52 FF

1005 OUT DX,AL EE

1006 MOV AL,8EH B0 8E

1008 OUT DX,AL EE

1009 MOV AL,AOH B0 A0

100B OUT DX,AL EE

100C IN AL,DX EC

100D AND AL,OH 24 01

100F JE 100CH(LL) 74 EB

1011 MOV DX,FF 50 H BA 50 FF

1014 IN AL,DX EC

1015 AND AL,3FH 24 3F

1017 INT 3 CC

131
132
OUTPUT

21H AX=F521

13H AX=F513

11H AX=F511

133
RESULT
Thus the program was executed and the output is verified.

134
EXP NO : 31 SERIAL COMMUNICATION USING
DATE: 8086 (8251)

AIM
To write an assembly language program to perform serial communication
using 8086 microprocessor.

135
PROGRAM (RECEIVER)

ADDRESS MNEMONICS OPCODE

1000 MOV AX,00 78 H B8 7800

1003 CALL 10 17 E8 11 00

1006 CALL 10 0A E8 80 100

1009 INT 3 CC

100A MOV DX,FF 12 BA 12 FF

1000 IN AL,DX EC

100E AND AL,02 2402

1010 JE 10 0D 74 FB

1012 MOV DX,FF 10 BA 10 FF

1015 IN AL,DX EC

1016 RET C3

1017 MOV CX,AX 8B C8

1019 MOV AL,37 B0 37

101B MOV DX,06 FF BA FF

1015 OUT DX,AL EE

101F MOV AL,CL 8A C1

136
137
1021 MOV DX ,FF 00 BA 00 FF

1024 OUT DX,AL EE

1025 MOV AL,CH 8A C5

1027 OUT DX,AL EE

1028 NOP 90

1029 NOP 90

102A MOV DX,HR BA 12 FF

102D MOV A1 00 B0 00

102F OUT DX,AL EE

1030 OUT DX,AL EE

1031 OUT DX,AL EE

1032 AL 40 H B0 40

1034 OUT DX ,AL EE

1035 CALL 10 43 E8 0B 00

1038 MOV AL, 4E B0 48

103A OUT DX, AL EE

103B NOP 90

138
139
103C NOP 90

103D MOV AL,27 B0 27

103F OUT DX,AL EE

1040 NOP 90

1041 NOP 90

1042 RET C3

1043 PUSH BX 53

1044 MOV DX,04 FF H BB FF 04

1047 NOP 90

1048 NOP 90

1049 DEC BX 4B

104A JNE 1047 75 FB

104C POP BX 5B

104D RET C3

140
141
INPUT OUTPUT

IN RECEIVER ,
IN TRANSMITTER
EXECUTE THE PROGRAM

RBX=0042 G1000

EXECUTE THE PROGRAM


GET THE RESULT RBX=0042
G1000

142
RESULT

Thus the program for 8251 program 8086(board) was executed the
output is verified successfully.

143
EXP NO :32
8086 DAC PROGRAM
DATE:

AIM
To write an assembly language program for digital to analog converter
using 8086.

144
PROGRAM

ADDRESS MNEMONICS OPCODE

1000 MOV DX,FF 26 H BA 26 FF

1003 MOV AL, 80 H B0 80

1005 OUT DX,AL EE

1006 MOV FF 22 H BA 72 FF

1009 MOV AL,80H B0 80

100B OUT DX,AL EE

100C INT 3 CC

OUTPUT

INPUT VALUES OUTPUT VALUES

00 00

40 1.25

80 2.5

C0 3.75

FF 5.0

145
RESULT
Thus the program was executed and output is verified.

146
EXP NO :33 SQUARE WAVE GENERATION USING
DATE: 8086 (8253)

AIM
To write an assembly language program to generate square wave using
(8253) 8086

INPUT ADDRESS FOR 8253/8254

COUNTER 0 –>F10H
COUNTER 1FF 12 H
COUNTER 2FF 14 H
CONTROL REGFF 16H

147
PROGRAM

ADDRESS MNEMONICS OPCODE

1000 MOV AL,B7 H BO B7

1002 MOV BX,FF 16 H BA 10 FF

1005 OUT DX,AL EE

1006 MOV AL,O2H B0 02

1008 MOV DX,FF 10H BA 10 FF

100B OUT DX,AL EE

100C MOV AL,00 H B0 00

100E MOV DX,FF 10 H BA 10 FF

1011 OUT DX,AL EE

1012 INT 3 CC

148
RESULT
Thus the program was executed and output was verified.

149
EXP NO:34 SQUARE OF A NUMBER USING 8051
DATE: MICROCONTROLER

AIM

To write an assembly language program to perform square of a number


using 8051 microcontroller.

150
PROGRAM

ADDRESS LABEL MNEMONICS OPCODE

9000 MOV DPTR,#8600 90 86 00

9003 MOVX A,@DPTR E0

9004 MOV F0,A F5 F0

9006 MUL AB A4

9007 MOV DPTR,#8700 90 87 00

900A MOVX @DPTR,A F0

900B LCALL 00BB 12 00 BB

OUTPUT

ADDRESS VALUE

8600(INPUT) 05

8700(OUTPUT) 19

151
RESULT
Thus the program was executed and output is verified.

152
EXP NO :35 CUBE OF THE NUMBER USING 8051
DATE: MICROCONTROLLER

AIM
To write an assembly language program to perform a cube of a number
using 8051 microcontroller

153
PROGRAM

ADDRESS LABEL MNEMONICS OPCODE

9000 MOV DPTR,#8600 90 86 00

9003 MOVX A,@DPTR E0

9004 MOV R0,A F8

9005 MOV B,A F5 F0

9007 MUL AB A4

9008 PUSH B C0 F0

900A MOV B,A F5 F0

900C MOV A,R0 E8

900D MUL AB A4

900E MOV DPTR,#8700 90 87 00

9011 MOVX @DPTR,A F0

9012 LCALL 00BB 12 00 BB


OUTPUT

ADDRESS VALUE

8600 (INPUT) 03

8700 (OUTPUT) 1B

154
RESULT
Thus the program was executed and output is verified.

155
EXP NO: 36 2’S COMPLEMENT USING 8051
DATE: MICROCONTROLLER

AIM
To write an assembly language program to perform 2’s complement of
a number using 8051 microcontroller.

156
PROGRAM

ADDRESS LABEL MNEMONICS OPCODE

9000 MOV DPTR,#8500 90 85 00

9003 MOVX A,@DPTR E0

9004 CPL A F4

9005 ADD A, #01 24 01

9007 MOV DPTR, #8600 90 86 00

900A MOVX @DPTR,A F0

900B LCALL 00BB 12 00 BB

OUTPUT

ADDRESS VALUE

8500 (INPUT) 4

8600 (OUTPUT) FC

157
RESULT
Thus the program was executed and the output is verified.

158
EXP NO : 37 UNPACKED BCD TO ASCII CONVERSION
DATE:

AIM
To write an assembly language program to perform unpacked BCD to
ASCII conversion using 8051 microcontroller.

159
PROGRAM

ADDRESS LABEL MNEMONICS OPCODE

9000 MOV R1,#04 79 04

9002 MOV R2,#05 7A 05

9004 MOV A,R1 E9

9005 SWAP A C4

9006 ADD A,R2 2A

9007 MOV R0,A F8

9008 ANL A,#0F 54 0F

900A ORL A,#30 44 30

900C MOV R4,A FB

900D MOV A,R0 E8

900E SWAP A C4

900F ANL A,#0F 54 0F

9011 ORL A,#30 44 30

9013 MOV R3,A FC

9014 LCALL 00BB 12 00 BB

160
161
OUTPUT

REGISTER VALUE

R1 (INPUT) 4

R2 (INPUT) 5

R3 (OUTPUT) 34

R4 (OUTPUT) 35

162
RESULT

Thus the program was executed and output is verified.

163
164

You might also like