You are on page 1of 10

MICRO PROJECT

KALA VIDYA MANDIR INSTITUTE TECHNOLOGY


SECOND YEAR DIPLOMA IN COMPUTER ENGINEERING
ACADEMIC YEAR 2021-2022

_______________________________________________
Name: -
Roll no: -
Enrolment no: -
Subject: -
Subject code: -
Professor: -
Semester: - 4th
Scheme: - I
Project title: -
8086 program to find sum of odd numbers in a given series

MEMORY ADDRESS MNEMONICS COMMENT


400 MOV SI, 500 SI<-500
403 MOV CL, [SI] CL<-[SI]
405 INC SI SI<-SI+1
406 MOV CH, 00 CH<-00
408 MOV AL, 00 AL<-00
40A MOV BL, [SI] BL<-[SI]
40C TEST BL, 01 BL AND 01
40F JNZ 413 JUMP IF NOT ZERO
411 ADD AL, BL AL<-AL+BL
413 INC SI SI<-SI+1
414 LOOP 40A JUMP TO 40A IF CX NOT
ZERO
416 MOV [600], AL AL->[600]
41A HLT END

8086 program to find sum of Even numbers in a given series

MEMORY Address Mnemonics Comments


400 MOV SI, 500 SI<-500
403 MOV CL, [SI] CL<-[SI]
405 INC SI SI<-SI+1
406 MOV CH, 00 CH<-00
408 MOV AL, 00 AL<-00
40A MOV BL, [SI] BL<-[SI]
40C TEST BL, 01 BL.01
40F JZ 413 Jump to 413 memory location if zero
flag is set
411 ADD AL, BL AL<-AL+BL
413 INC SI SI<-SI+1
414 LOOP 40A jump to 40A memory location if
content of CX is not equal to zero
416 MOV [600], AL [600], AL
41A HLT end
8086 program to sort an integer array in ascending order

MEMORY ADDRESS MNEMONICS COMMENT


400 MOV SI,500 SI<-500
403 MOV CL, [SI] CL<-[SI]
405 DEC CL CL<-CL-1
407 MOV SI, 500 SI<-500
40A MOV CH, [SI] CH<-[SI]
40C DEC CH CH<-CH-1
40E INC SI SI<-SI+1
40F MOV AL, [SI] AL<-[SI]
411 INC SI SI<-SI+1
412 CMP AL, [SI] AL-[SI]
414 JC 41C JUMP TO 41C IF CY=1
416 XCHG AL, [SI] SWAP AL AND [SI]
418 DEC SI SI<-SI-1
419 XCHG AL, [SI] SWAP AL AND [SI]
41B INC SI SI<-SI+1
41C DEC CH CH<-CH-1
41E JNZ 40F JUMP TO 40F IF ZF=0
420 DEC CL CL<-CL-1
422 JNZ 407 JUMP TO 407 IF ZF=0
424 HLT END
8086 program to sort an integer array in descending order

MEMORY ADDRESS MNEMONICS COMMENT


400 MOV SI, 500 SI<-500
403 MOV CL, [SI] CL<-[SI]
405 DEC CL CL<-CL-1
407 MOV SI, 500 SI<-500
40A MOV CH, [SI] CH<-[SI]
40C DEC CH CH<-CH-1
40E INC SI SI<-SI+1
40F MOV AL, [SI] AL<-[SI]
411 INC SI SI<-SI+1
412 CMP AL, [SI] AL-[SI]
414 JNC 41C JUMP TO 41C IF CY!=1
416 XCHG AL, [SI] SWAP AL AND [SI]
418 DEC SI SI<-SI-1
419 XCHG AL, [SI] SWAP AL AND [SI]
41B INC SI SI<-SI+1
41C DEC CH CH<-CH-1
41E JNZ 40F JUMP TO 40F IF ZF=0
420 DEC CL CL<-CL-1
422 JNZ 407 JUMP TO 407 IF ZF=0
424 HLT END
Flowchart: -
8086 ASSEMBLY PROGRAM TO SORT NUMBERS IN ASCENDING ORDER
DATA SEGMENT

STRING1 DB 99H,12H,56H,45H,36H

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV CH,04H

UP2: MOV CL,04H

LEA SI,STRING1

UP1: MOV AL,[SI]

MOV BL,[SI+1]

CMP AL,BL

JC DOWN

MOV DL,[SI+1]

XCHG [SI],DL

MOV [SI+1],DL

DOWN: INC SI

DEC CL

JNZ UP1

DEC CH

JNZ UP2

INT 3

CODE ENDS

END START
Output
C:\TASM>masm AMPE10.asm

Microsoft (R) Macro Assembler Version 5.00

Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.

Object filename [AMPE10.OBJ]:

Source listing [NUL.LST]:

Cross-reference [NUL.CRF]:

49452 + 414900 Bytes symbol space free

0 Warning Errors

0 Severe Errors

C:\TASM>link AMPE10.obj

Microsoft (R) Overlay Linker Version 3.60

Copyright (C) Microsoft Corp 1983-1987. All rights reserved.

Run File [AMPE10.EXE]:

List File [NUL.MAP]:

Libraries [.LIB]:

LINK : warning L4021: no stack segment

C:\TASM>debug AMPE10.exe

-g

AX=1456 BX=0099 CX=0000 DX=0045 SP=0000 BP=0000 SI=0004 DI=0000

DS=14A4 ES=1494 SS=14A4 CS=14A5 IP=0027 NV UP EI PL ZR NA PE CY

14A5:0027 CC INT 3

-d 14A4:0000

14A4:0000 12 36 45 56 99 00 00 00-00 00 00 00 00 00 00 00 .6EV............

14A4:0010 B8 A4 14 8E D8 B5 04 B1-04 8D 36 00 00 8A 04 8A ..........6.....

14A4:0020 5C 01 3A C3 72 08 8A 54-01 86 14 88 54 01 46 FE \.:.r..T....T.F.

14A4:0030 C9 75 EA FE CD 75 E0 CC-2B C0 8B F0 0B F6 74 0C .u...u..+.....t.

14A4:0040 8B DE D1 E3 03 1E 9A 16-8B 07 EB 02 2B C0 89 46 ............+..F

14A4:0050 F2 C4 5E F8 26 8B 47 08-89 46 F6 8B 5E 06 8B 07 ..^.&.G..F..^...

14A4:0060 8B 57 02 89 46 F8 89 56-FA C4 5E F8 26 83 7F 06 .W..F..V..^.&...

14A4:0070 00 74 0F 26 8B 5F 06 D1-E3 03 1E 96 16 8B 07 EB .t.&._..........


8086 ASSEMBLY PROGRAM TO SORT NUMBERS IN DESCENDING ORDER
DATA SEGMENT

STRING1 DB 99H,12H,56H,45H,36H

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV CH,04H

UP2: MOV CL,04H

LEA SI,STRING1

UP1:MOV AL,[SI]

MOV BL,[SI+1]

CMP AL,BL

JNC DOWN

MOV DL,[SI+1]

XCHG [SI],DL

MOV [SI+1],DL

DOWN: INC SI

DEC CL

JNZ UP1

DEC CH

JNZ UP2

INT 3

CODE ENDS

END START
Output
C:\TASM>masm str_desc.asm

Microsoft (R) Macro Assembler Version 5.00

Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.

Object filename [str_desc.OBJ]:

Source listing [NUL.LST]:

Cross-reference [NUL.CRF]:

str_desc.asm(1): warning A4001: Extra characters on line

50760 + 450936 Bytes symbol space free

1 Warning Errors

0 Severe Errors

C:\TASM>link str_desc.obj

Microsoft (R) Overlay Linker Version 3.60

Copyright (C) Microsoft Corp 1983-1987. All rights reserved.

Run File [STR_DESC.EXE]:

List File [NUL.MAP]:

Libraries [.LIB]:

LINK : warning L4021: no stack segment

C:\TASM>debug str_desc.exe

-g

AX=0B36 BX=0012 CX=0000 DX=0012 SP=0000 BP=0000 SI=0004 DI=0000

DS=0B37 ES=0B27 SS=0B37 CS=0B38 IP=0027 NV UP EI PL ZR NA PE NC

0B38:0027 CC INT 3

-d 0B37:0000

0B37:0000 99 56 45 36 12 00 00 00-00 00 00 00 00 00 00 00 .VE6............

0B37:0010 B8 37 0B 8E D8 B5 04 B1-04 8D 36 00 00 8A 04 8A .7........6.....

0B37:0020 5C 01 3A C3 73 08 8A 54-01 86 14 88 54 01 46 FE \.:.s..T....T.F.

0B37:0030 C9 75 EA FE CD 75 E0 CC-0C 2A E4 40 50 8B C3 05 .u...u...*.@P...

0B37:0040 0C 00 52 50 E8 19 46 83-C4 04 50 8D 86 00 FF 50 ..RP..F...P....P

0B37:0050 E8 6F 70 83 C4 06 B8 CD-05 50 8D 86 00 FF 50 E8 .op......P....P.

0B37:0060 CA 0C 83 C4 04 B8 FF FF-50 8D 86 00 FF 50 8D 46 ........P....P.F

0B37:0070 80 50 E8 4D FA 83 C4 06-0A C0 75 03 E9 7B FF 5E .P.M......u..{.^

-q
8086 assembly language program to find number of odd and even numbers
in an array

Output

You might also like