Wednesday, March 4, 2009

MP lab program 1:binary search


.model small
.data
arr db 01h,03h,06h,07h,0ah,15h,20h,38h
len db $-arr
ele db 03h
found db"Element found$"
notfound db"Element not found$"
print macro msg;macro for printing a message
push ax
push dx
mov ah,09h
mov dx,offset msg
int 21h
pop dx
pop ax
endm
.code
mov ax,@data
mov ds,ax
mov cl,ele
mov al,00
mov ah,00
mov dl,len
mov bh,00
back: cmp al,dl
ja last
push ax
add al,dl
shr ax,01
mov bl,al
pop ax
cmp cl,arr[bx]
je dfound
jb down
inc bx
mov ax,bx
jmp back
down:dec bx
mov dx,bx
jmp back
dfound:print found
jmp ter
last:print notfound
ter:mov ah,4ch
int 21h
end




No comments:

Post a Comment