mup lab manual

67
PART A ; to generate FIBONACCI series(11A) .model small .stack 200 .data n dw 6 fib db 30 dup(?) .code mov ax,@data ; initialization of data segment mov ds,ax ; inside the code segment lea si,fib mov [si],0 ;initializing first number mov [si+1],1 ;initializing second number mov cx,n sub cx,2 back: mov al,[si] add al,[si+1] ; adding first & second number mov [si+2],al ; storing at as third number inc si loop back int 3 ; break point interrupt end BNMIT/CSE/Mp Lab Manual 1

Upload: solo

Post on 16-Sep-2015

258 views

Category:

Documents


1 download

DESCRIPTION

microprocessor lab manual 4th sem vtu cs

TRANSCRIPT

PART A; to generate FIBONACCI series(11A).model small

.stack 200

.data

n dw 6

fib db 30 dup(?)

.code

mov ax,@data

; initialization of data segment mov ds,ax

; inside the code segment lea si,fib mov [si],0

;initializing first number mov [si+1],1

;initializing second number mov cx,n

sub cx,2

back:

mov al,[si]

add al,[si+1]

; adding first & second number mov [si+2],al

; storing at as third number inc si

loop back

int 3

; break point interruptend; sort the no using bubble sort(3A).model small

.stack 200

.data

a db 23h,43h,12h,55h,11h

len dw ($-a)

.code

mov ax,@data

; initialization of data segment

mov ds,ax

; inside code segment

mov bx,len

; outer loop from 0 to n-1

dec bx

outl:

mov cx,bx

; inner loop from 0 to outer loop

mov si,0

inl:

mov al,a[si]

inc si

cmp al,a[si]

; comparison of 2 elements

jb next

xchg al,a[si]

; if greater exchange

mov a[si-1],al

next:

loop inl

dec bx

jnz outl

mov ah,4ch

; interrupt to end the code segment

int 21h

end

;Binary Search-1A.model small

.stack 200

.data

a dw 1111h,3333h,5555h,7777h,9999h

len dw ($-a)/2

key dw 2333h

msg1 db 10,13,'successful search','$'

msg2 db 10,13,'Unsuccessful search','$'

.code

mov ax,@data

; Initialization of Data Segment

mov ds,ax

; Inside Code Segment

mov ax,key

; ax = Search key

mov si,0

; si = low

mov di,len

; di = high

dec di

again:

cmp si,di

; low > high

ja notfound

mov bx,si

add bx,di

; bx = low + high

shr bx,01

; bx = mid

mov bp,bx

shl bx,01

; pointer adjustment

cmp ax,a[bx]

; Searching for key element

je found

; mid = key

jc midbig

inc bp

; si(low) = mid + 1

mov si,bp

jmp again

midbig:

dec bp

; di (high) = mid - 1

mov di,bp

jmp again

found:

lea dx,msg1

jmp exit

notfound:

lea dx,msg2

exit:

mov ah,09h

; interrupt to display the

int 21h

; message

mov ah,4ch

; interrupt to end the

int 21h

; program

end

; linking of 2 macros which are (2A) included as library files with

include c:\masm\jalaja\2a1.mac

include c:\masm\jalaja\2a2.mac

.model small

.stack 200

.data

msg db 10,13,"enter the data end with enter key",'$'

a db 10 dup(?)

.code

mov ax,@data

; initialization of data segment

mov ds,ax

; inside code segment

lea dx,msg

; interrupt to print

mov ah,09h

; the message

int 21h

mov si,0

again:

read

; macro to accept i/p

cmp al,13

; till ENTER key is pressed

je disp

mov a[si],al

inc si

jmp again

disp:

mov dl,0ah

; interrupt to move the

mov ah,02

; cursor to next line

int 21h

mov cx,si

mov si,0

begin:

mov dl,a[si]

writ

; macro to print a character

inc si

loop begin

mov ah,4ch

int 21h

end

;------2a1.mac------

read macro

mov ah,01

; interrupt to accept i/p

int 21h

endm

;-----2a2.mac------

writ macro

mov ah,02

; interrupt to print a character

int 21h

endm

; Factorial of a number using(8a)

; recursive approach

.model small

.stack 200

.data

n dw 4

res dw ?

.code

mov ax,@data

; initialization of data segment

mov ds,ax

; inside code segment

mov ax,n

call fact

; procedure finding the factorial

int 3

; break point interrupt

;---factorial procedure---

fact proc

cmp ax,00

je exit

push ax

dec ax

call fact

; procedure called recursively

pop ax

mul res

mov res,ax

ret

exit:

mov res,1

ret

fact endp

end

; 9A Write an ALP to compute NCR using recursive procedure

; nCr = (nC(r-1) * (n+1-r))/r

.model small

.stack 200

.data

n dw 4

r dw 2

n dw ?

.code

mov ax,@data

mov ds,ax

mov ax,n

mov bx,r call ncrrecRA1: mov ah,4ch

int 21h

ncrrec proc

cmp bx,0

je exit

push ax

push bx

dec bx

call ncrrec

RA2:

pop bx

pop ax

inc ax

; n+1

sub ax,bx

; n+1-r

mul ncr

;ax