0% found this document useful (0 votes)
15 views21 pages

Mmmmmikiki

The document contains 10 assembly language programs for adding, subtracting, multiplying, dividing, and other operations on 16-bit numbers in 8086. It also contains programs to find largest/smallest numbers in arrays, Fibonacci series, and ASCII division.

Uploaded by

bybirthpro
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views21 pages

Mmmmmikiki

The document contains 10 assembly language programs for adding, subtracting, multiplying, dividing, and other operations on 16-bit numbers in 8086. It also contains programs to find largest/smallest numbers in arrays, Fibonacci series, and ASCII division.

Uploaded by

bybirthpro
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

Microprocessor-Based Systems Design (UCS617)

Lab Assignment-1 (8085)

Submitted to:

Dr. Manju Khurana

Submitted by:

Nishchey khajuria 102283032

Yuvraj Bhalla 102153015

Divyajot Kaur Sodhi 102103293

Yashika 102283033

Komal 102283043

BE Third Year, COE Group No: 3COE10

Computer Science and Engineering Department

TIET, Patiala

1
Index
SNo. TITLE Page
No.
1 Write an assembly language program to add two 16-bit numbers in 3
8086.
2 Write an assembly language program to add two 16-bit numbers in 4
8086.
3 Write an assembly language program to add two 16-bit 5
numbers in 8086.
4 Write an assembly language program to add two 16-bit 6
numbers in 8086.
5 Write an assembly language program to add two 16-bit 7
numbers in 8086.
6 Write an assembly language program to add two 16-bit 13
numbers in 8086.
7 Write an assembly language program to add two 16-bit 15
numbers in 8086.
8 Write an assembly language program to add two 16-bit 17
numbers in 8086.
9 Write an assembly language program to add two 16-bit 19
numbers in 8086.
10 Write an assembly language program to add two 16-bit 21
numbers in 8086.

2
Experiment 1
Q1) Write an assembly language program to add two 16-bit numbers in 8086.

Ans) MOV AX,15H


MOV BX,15H
ADD AX,BX
HLT

OUTPUT:

Fig 1

3
Experiment 2
Q2) Write an assembly language program to subtract two 16-bit numbers in 8086.

Ans) MOV AX,15H


MOV BX,10H
ADD AX,BX
HLT

OUTPUT:

Fig 2

4
Experiment 3
Q3) Write an assembly language program to multiply two 16-bit numbers in 8086

Ans) MOV AX,[1001H]

MOV BX,[1003H]

MUL BX

HLT

OUTPUT:

Fig 3

5
Experiment 4
Q4) Write an assembly language program to divide two 16-bit numbers in 8086.
Ans) MOV AX,[1001H]

MOV BX,[1003H]

DIV BX

HLT

OUTPUT:

Fig 4

6
Experiment 5
Q5) Write an assembly language program to demonstrate AAA, AAS, AAM, AAD, DAA
and DAS in 8086.

Ans) AAA Instruction

MOV AX,010FH

AAA

HLT

Fig 5.1

7
AAS Instruction:

MOV AX,020FH

AAS

HLT

Fig 5.2

8
AAM Instruction:

MOV AL,'3'

MOV BL,'9'

AND AL,0FH

AND BL,0FH

MUL BL

AAM

OR AX,3030H

Fig 5.3

9
AAD Instruction:

MOV AX,0207H

MOV BL,05H

AAD

DIV BL

Fig 5.4

10
DAA Instruction:

MOV AL,73H

ADD AL,45H

DAA

HLT

Fig 5.5

11
DAS Instruction:

MOV AL,81H

SUB AL,33H

DAS

HLT

Fig 5.6

12
Experiment 6
Q6) Write an assembly language program to find out the count of positive numbers and
negative numbers from a series of signed numbers in 8086.

Ans) MOV CL,0AH

MOV BL,00H

MOV DL,00H

LEA SI, [1000H]

L1: MOV AL, [SI]

SHL AL, 01

JNC L2

INC DL

JMP L3

L2: INC BL

L3: INC SI

DEC CL

JNZ L1

MOV [100AH], BL

MOV [100BH], DL

HLT

13
Output:

Fig 6

14
Experiment 7
Q7) Write an assembly language program to find out the largest number from a given
unordered array of 8-bit numbers, stored in the locations starting from a known address in
8086.

Ans) MOV CL, 0AH

LEA SI, [1000H]

MOV AL, [SI]

L1: INC SI

MOV BL, [SI]

CMP AL, BL

JC L2

JMPL3

L2: MOV AL, BL

L3: DEC CL

JNZ L1

MOV [100AH], AL

HLT

15
Output:

Fig 7

16
Experiment 8
Q8) Write an assembly language program to convert the largest number from a given
unordered array of 16-bit numbers, stored in the locations starting from a known address
in 8086.

Ans) MOV BX, 1000H

MOV CL, [BX]

INC BX

MOV AX, [BX[

DEC CL

Back: INC BX

INC BX

CMP AX, [BX]

JNC Next

MOV AX, [BX]

Next: DEC CL

JNZ Back

MOV [1020H],

AXHLT

17
Output:

Fig 8

18
Experiment 9
Q9) Write an assembly language program to print Fibonacci series in 8086.

Ans) MOV AL,00H

MOV SI,500H

MOV [SI],AL

ADD SI,01H

ADD AL,01H

MOV [SI],AL

MOV CX,[0000H]

SUB CX,0002H

L1:MOV AL,[SI-1]

ADD AL,[SI]

ADD SI,01H

MOV [SI],AL

LOOP L1

HLT

19
Output:

Fig 9.1

Fig 9.2

Fig 9.3

20
Experiment 10
Q10) Write an assembly language program to perform the division 15/6 using the ASCII codes.
Store the ASCII codes of the result in register DX.
Ans) MOV AX,"15"
MOV BX, "6"

SUB AX, 3030H

SUB BH, 30H

AAD

DIV BH

ADD AX,3030H

MOV [SI], AX

HLT

Output:

Fig 10

21

You might also like