Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

Experiment No.

05
PART A

A.1 Aim: Write assembly program to find minimum and maximum no. from a given array.
[Use BIOS/DOS interrupts to read input and display results.]

A.2 Prerequisite:Basic knowledge of 8086 instruction set and interrupts

A.3 Outcome:
After successful completion of this experiment students will be able to
1. Use appropriate instructions to program microprocessor to perform various
task.
2. Develop the program in assembly/ mixed language for Intel 8086 processor
3. Demonstrate the execution and debugging of assembly/ mixed language
program A.4 Theory:
Theory:Finding maximum and minimum number from a given array of n numbers or list
elements according to a comparison operator on the elements. The comparison operator
helps in deciding whether the number taken in registers is small or large. In the given
diagram shows the example finding largest number from a given array. A random set of
numbers are given in an array and is stored in memory location from 2000:500 to memory
location 2000:504. The largest among the given array is stored in memory location
2000:600.

A.5 Algorithm:
1. Start, Define memory model
2. Initialize data segment.
3. Initialize the code segment
4. set the counter
5. Initialize the array base pointer.
6. Get the numbers on MAX and MIN.
7. Compare the numbers
8. If num in AL> MAX, Max = num in AL & increment pointer.
If num in AL< MIN, Min = num in AL & increment pointer
9. Decrement the counter.
10. If count = 0 stop or else repeat steps 6, 7, 8, 9.
11. Store maximum and minimum number.
12. Stop.

PART B
(PART B: TO BE COMPLETED BY STUDENTS)

(Students must submit the soft copy as per following segments within two hours of the practical. The
soft copy must be uploaded at the end of the practical)

Roll. No.: 39 Name: Devesh Rajbhar

Class: SE-A Batch: A-2

Date of Experiment: 22-03-2021 Date of Submission:14-04-2021

Grade:

B.1 Observations and learning:

Program to find minimum number from a given array:

Code:
data segment
STRING1 DB 08h,14h,05h,0Fh,09h
res db ? data ends

code segment assume


cs:code, ds:data start:
mov ax, data
mov ds, ax
mov cx, 04h
mov bl, 79h
LEA SI, STRING1
up:
mov al, [SI]
cmp al, bl
jge nxt
mov bl, al
nxt:
inc si dec
cx jnz up
mov
res,bl

int 3 code
ends end
start
Output:

Program to find maximum number from a given array:


Code:
data segment
STRING1 DB 08h,14h,05h,0Fh,09h
res db ? data ends

code segment assume


cs:code, ds:data start:
mov ax, data
mov ds, ax
mov cx, 04h
mov bl, 00h
LEA SI, STRING1

up:
mov al, [SI]
cmp al, bl
jl nxt
mov bl, al

nxt: inc si dec cx


jnz up
mov res,bl

int 3 code
ends end
start

Output:
B.2 Conclusion:

Hence, assembly language programs to find minimum and maximum numbers from a given
array have been implemented and use of jump instructions, labels and interrupts have been
understood.

B.3 Question of Curiosity

Q1. List out and explain any 5 different type of JMP instruction with example.

Ans.:

1. JC: Stands for 'Jump if Carry'. It checks whether the carry flag is set or not. If yes,
then jump takes place, that is: If CF = 1, then jump.
2. JNC: Stands for 'Jump if Not Carry'. It checks whether the carry flag is reset or not. If
yes, then jump takes place, that is: If CF = 0, then jump.
3. JE / JZ: Stands for 'Jump if Equal' or 'Jump if Zero'. It checks whether the zero flag is
set or not. If yes, then jump takes place, that is: If ZF = 1, then jump.
4. JNE / JNZ: Stands for 'Jump if Not Equal' or 'Jump if Not Zero'. It checks whether the
zero flag is reset or not. If yes, then jump takes place, that is: If ZF = 0, then jump.
5. JP / JPE: Stands for 'Jump if Parity' or 'Jump if Even Parity'. It checks whether the
Parity flag is set or not. If yes, then jump takes place, that is: If PF = 1, then jump.

Q2. Write an assembly language program to find factorial of a number


Ans.:

DATA SEGMENT
A DB 5
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
MOV AH,00
MOV AL,A
L1: DEC A
MUL A
MOV CL,A
CMP CL,01
JNZ L1

MOV AH,4CH
INT 21H
CODE ENDS
END START

You might also like