You are on page 1of 3

ALP for finding the smallest number in an array

assume cs:code,ds:data
data segment
ary db 06h,02h,08h,05h,01h
res db ?
data ends
code segment
start:
mov ax,data
mov ds,ax
xor ax,ax
mov cl,04h
lea si,ary
mov al,[si]
back:inc si
cmp al,[si]
jc next
mov al,[si]
next:loop back
mov res,al
int 03h
code ends
end start

ALP for finding the largest number in an array

assume cs:code,ds:data
data segment
ary1 db 16h,42h,08h,75h,0A1h
res db ?
data ends
code segment
start:
mov ax,data
mov ds,ax
xor ax,ax
mov cl,04h
lea si,ary1
mov al,[si]
back:inc si
cmp al,[si]
jnc next
mov al,[si]
next:loop back
mov res,al
int 03h
code ends
end start

ALP for sorting numbers in an array

assume cs:code,ds:data
data segment
ary db 33h,22h,44h,11h,55h
data ends
code segment
start:
mov ax,data
mov ds,ax
xor ax,ax
mov cl,04h
up1:lea si,ary
mov dl,cl
up2:mov al,[si]
cmp al,[si+1]
jc next (jnc next #descending order)
mov bl,[si+1]
mov [si+1],al
mov [si],bl
next:inc si
dec dl
jnz up2
dec cl
jnz up1
int 03h
code ends
end start

ALP for searching a number in an array

assume cs:code,ds:data
data segment
arr db 0A3h,23h,0B6h,79h,88h,15h
num db 79h
count db 6h
data ends
code segment
start:
mov ax,data
mov ds,ax
xor ax,ax
lea si,arr
mov cl,count
back:mov al,[si]
mov bl,num
cmp al,bl
jz next
inc si
dec cl
jnz back
mov ax,0000h
int 03h
next:mov ax,1111h
int 03h
code ends
end start

You might also like