Você está na página 1de 47

Program 1 Aim -: write an ALP for generation of fibonaci series.

data segment f1 db 0 f2 db 1 ;program to generate fibonaci ;series

fibo db 100 dup(0) data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov ax,00 mov al,f1 lea si,fibo mov [si],al inc si mov bh,f2 mov [si],bh inc si mov cl,50 again: add al,bh mov [si],al mov al,bh mov bh,[si] mov bl,bh ;loop ;initialization

inc si loop again int 3h code ends end start

Program 2 Aim -: Write an ALP to transferring data in forward order. data segment a db 50h,72h,61h,6bh,61h,73h,68h,30h,34h,39h db 6 dup(0) b db 15 dup(0) data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax lea bx,a lea si,b mov cl,10 new: mov al,[bx] mov [si],al inc si inc bx loop new int 3h code ends end start ;loop ;initialization ;data

Program 3 Aim -: Write an ALP to find maximum number from given array. data segment a db 50h,72h,61h,6bh,61h,73h,68h,30h,34h,39h db 5 dup(0) max db 0 data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov cl,10 lea bx,a again: mov al,[bx] cmp al,max jae l1 jmp l2 l1: mov max,al l2: inc bx loop again int 3h code ends end start ;reault in ;loop ;initialization ;data ;space for result

Program 4 Aim -: write an ALP to display GEC PATAN. data segment a db "GEC PATAN$" data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax lea dx,a mov ah,09 int 21h mov ax,4c00h int 21h code ends end start ;function in ;string

Program 5 Aim -:Write an ALP to transfer 8-bit data in reverse order. data segment a db 50h,72h,61h,6bh,61h,73h,68h,30h,34h,39h db 6 dup(0) b db 15 dup(0) data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax lea bx,a lea si,b add bx,09 mov cl,10 new: mov al,[bx] mov [si],al inc si dec bx loop new int 3h code ends end start ;loop ;initialization ;data

Program 6 Aim -: Write an ALP to convert ASCII to packed BCD. data segment a db 35h b db 36h db 1 dup(0) p_b db 1 dup(0) data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov al,a and al,0fh mov bl,b and bl,0fh mov cl,04 clc rcl bl,cl add al,bl mov p_b,al int 3 code ends end start ;result in ;value in ;value in ;space for result ;two ascii ;numbers

Program 7 Aim -: Write an ALP to find the even and odd parity from given numbers. data segment a db 2,5,1,6,8,9,7,3 ;program for separating

db 2 dup(0) evenp db 5 dup(0) oddp db 5 dup(0) data ends code segment

;odd and even parity

assume cs:code,ds:data start: mov ax,data mov ds,ax mov cl,08 mov ax,00 mov bx,offset a mov si,offsetevenp mov bp,offsetoddp new: mov ax,00 mov al,byteptr[bx] or al,00 jpe even mov byte ptr[bp],al inc bp jmp exit even: ;for odd parity ;value in ;set the flag

mov byte ptr[si],al inc si exit: inc bx loop new int 3 code ends end start

;for even parity

Program 8 Aim -: Write an ALP to convert temperature ,Fahrenheit into Celsius. data segment f db 45d db 1 dup(0) c db 1 dup(0) data ends ;space for celsius ;temp. infahrenheit

code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov ah,00 mov al,f sub al,32 mov dl,05 imul dl mov dl,09 idiv dl mov c,al int 3 code ends end start ;data in

Program 9 Aim -: Write an ALP find number of 0s and 1s of given 16-bit number.

code segment

;program for counting 1's

assume cs:code ; 0's in given 16 bit no. start: mov ax,1234 mov dx,00 mov cl,16 clc again: rcr ax,1 jc count1 inc dl jmp exit count1: inc dh exit: loop again int 3 code ends end start ;count for 1's ;count for 0's ;initialization ;value in

Program 10 Aim -: Write an ALP to separate positive and negative numbers from given array.

data segment a db 50h,-72h,-61h,6bh,61h,73h,68h,-30h,34h,39h db 2 dup(0) b db 9 dup(0) c db 5 dup(0) data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax lea di,a lea bx,b lea si,c mov cl,10 l2: mov al,[di] add al,00 jns l1 mov [si],al incsi jmp l3 l1: mov [bx],al ;for negative ;initialization ;data ;space for ;result

inc bx l3: inc di loop l2 int 3 code ends end start

;for positive

Program 11 Aim -: Write an ALP to find an integer squre root of given number. data segment a db 80 db 1 dup(0) root db 1 dup(0) data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov dl,01 mov cl,00 mov al,a again: sub al,dl jc exit inc cl add dl,02 jmp again exit: mov root,cl int 3 code ends end start ;answer ;counting ;data in ;initialization ;data

Program 12 Aim -: Write an ALP to transfer 16-bit number in forward order. data segment a dw 7250h,6b61h,7361h,3068h,3934h db 6 dup(0) b dw 6 dup(0) ;data ;space for result

data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax lea bx,a lea si,b mov cl,05 new: inc bx mov al,[bx] mov [si],al inc si dec bx mov al,[bx] mov [si],al inc si add bx,02 loop new int 3h ;loop

code ends end start

Program 13 Aim -: Write an ALP to transfer 16-bit number in forward order. data segment a dw 7250h,6b61h,7361h,3068h,3934h db 6 dup(0) b dw 6 dup(0) data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax lea bx,a lea si,b mov cl,05 new: inc bx mov al,[bx] mov [si],al inc si dec bx mov al,[bx] mov [si],al inc si add bx,02 loop new int 3h ;loop ;data ;space for result

code ends end start

Program 14 Aim -: Write an ALP to find average of 8-bit number. data segment a db 1,5,4,8,7 db 1 dup(0) av db 1 dup(0) data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov ax,00 lea bp,a lea si,av mov bh,5 mov cl,5 again: add al,[bp] inc bp loop again div bh mov [si],al int 3h code ends end start ;loop ;division ;adding ;space for result ;data

Program 15 Aim -: Write an ALP for sum of 8-bit number. data segment a db 4,5,8,3,6 db 1 dup(0) sum db 1 dup(0) data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov ax,00 lea bx,a lea si,sum mov cl,5 again: add al,[bx] inc bx loop again mov [si],al int 3h code ends end start ;loop ;summing ;initialization ;space for result ;data

Program 16 Aim -: Write an ALP for sum of 16-bit numbers. data segment a dw 7250h,6b61h,7361h,3068h,3934h ;data ;space for carry ;space for sum

dw 1 dup(0) carry db 1 dup(0) sum dw 5 dup(0) dw 5 dup(0) data ends code segment

assume cs:code,ds:data start: mov ax,data mov ds,ax mov ax,0000 lea bx,a mov dh,00 mov cl,05 l1: add ax,[bx] jc l2 jmp l3 l2: inc dh l3: add bx,2 loop l1 ;addition ;initialization

mov sum,ax mov carry,dh int 3 code ends end start

;result in

Program 17 Aim -: Write an ALP to transfer 16-bit data in reverse order. data segment a dw 7250h,6b61h,7361h,3068h,3934h db 6 dup(0) bdw 6 dup(0) data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax lea bx,a lea si,b mov cl,05 add bx,9 new: mov al,[bx] mov [si],al inc si dec bx mov al,[bx] mov [si],al inc si dec bx loop new int 3h ;loop ;initialization ;data ;space for result

code ends end start

Program 18 Aim -: Write an ALP for moving the string.

data segment a db "prakash $" data ends extra segment str db 9 dup(0) extra ends code segment assume cs:code,ds:data,es:extra start: mov ax,data mov ds,ax mov ax,extra mov es,ax lea si,a lea di,str mov cl,9d cld rep movsb int 3 code ends end start

Program 19 Aim -: Write an ALP for comparison of two strings. data segment s1 db "electronics & communication $" s2 db "electronics & computers $" m1 db "it is not equal $" m2 db "it is equal $" data ends code segment assumecs:code,ds:data start: movax,data movds,ax lea si,s1 lea di,s2 mov cl,29d cld repcmpsb je dm1 lea dx,m1 mov ah,09 int 21h jmp exit dm1: lea dx,m2 mov ah,09h int 21h

exit: int 3 code ends end start

Program 20 Aim :- Write an ALP to create delay using near procedure. data segment msg db "satisfaction is the greatest happiness $" data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax call delay lea dx,msg mov ah,09 int 21h mov ax,4c00h int 21h delay proc near mov cx,0ffffh mov dx,0ffffh l1: loop l1 dec dx jnz l1 ret delay endp code ends end start

Program-21 Aim :- Write an ALP for macro. display macro mov ax,segmsg mov ds,ax mov dx,offsetmsg mov ah,09h int 21h endm data segment msg db "prakash $" data ends

code segment assume cs:code start: display mov ax,4c00h int 21h code ends end start

Program 22 Aim :- Write an ALP to find average of 16-bit number. data segment a dw 7250h,6b61h,7361h,3068h,3934h ;data ;space for carry ;space for sum ;space for average

dw 1 dup(0) carry db 1 dup(0) sum db 3 dup(0) av db 5 dup(0)

data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov ax,0000 lea si,sum lea bp,av lea bx,a mov dx,00 mov cl,05 l1: add ax,[bx] jc l2 jmp l3 l2: inc dl l3: ;addition ;initialization

add bx,2 loop l1 mov [si],ah inc si mov [si],al mov carry,dl mov cx,05 div cx mov [bp],ah inc bp mov [bp],al int 3 code ends ;result in ;division ;result in

Program-23 Aim :- Write an ALP for far procedure.

data segment b db "example of far procedure$" data ends

stack segment dw 100 dup(0) top label word stack ends

public b extrnabc : far code segment assume cs:code,ds:data,ss:stack start: mov ax,data mov ds,ax mov ax,stack mov ss,ax mov sp,offset top int 3 code ends end start

Program 24 Aim :- write an ALP to sort array in ascending order. data segment a db 50h,72h,61h,6bh,61h,73h,68h,30h,34h,39h data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov dl,09 l0: mov cl,dl lea si,a l1: mov al,[si] cmp al,[si+1] jl l2 xchg [si+1],al xchg [si],al l2: add si,01 loop l1 dec dl jnz l0 int 3 code ends

end start

Program 25 Aim :- Write an ALP to sort array in descending order. data segment a db 50h,72h,61h,6bh,61h,73h,68h,30h,34h,39h data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov dl,09 l0: mov cl,dl lea si,a l1: mov al,[si] cmp al,[si+1] jg l2 xchg [si+1],al xchg [si],al l2: add si,01 loop l1 dec dl jnz l0 int 3 code ends

end start

Program 26 Aim :- write an ALP for encripon of string. data segment str1 db "encruption $" str3 db 10,13,'$' str2 db 12 dup(0) data ends code segment assume cs:code,ds:data,es:data start: mov ax,data mov ds,ax mov es,ax mov ax,00 lea dx,str1 mov ah,09h int 21h lea dx,str3 mov ah,09h int 21h lea si,str1 lea di,str2 mov cl,28d l1: cld lod sb cmp al,'$'

je skip add al,06 skip: stosb loop l1 lea dx,str2 mov ah,09h int 21h int 3 code ends end start

Program 27 Aim :-Write an A.L.P. for encripson of encripted string. data segment str1 db "ktix{vzout&$" str3 db 10,13,'$' str2 db 12 dup(0) data ends code segment assume cs:code,ds:data,es:data start: mov ax,data mov ds,ax mov es,ax mov ax,00 lea dx,str1 mov ah,09h int 21h lea dx,str3 mov ah,09h int 21h lea si,str1 lea di,str2 mov cl,28d l1: cld lodsb cmp al,'$'

je skip sub al,06 skip: stosb loop l1 lea dx,str2 mov ah,09h int 21h int 3 code ends end start

Program-28 Aim :- Write an ALP to convert ASCII to packed BCD.(using arithmetic instruction)

data segment a db 37h b db 32h data ends code segment assumecs:code,ds:data start: movax,data mov ds,ax mov ax,00 mov al,a mov bl,b sub al,30h sub bl,30h mov cl,04 rol al,cl add ax,bx int 3 code ends end start

Program 29 Aim :- write an ALP for arithmetic operation. data segment a db 10 b db 5 db 14 dup(0) r db 16 dup(0) data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax lea bp,r mov ax,00 mov al,a mov bl,b add al,bl mov [bp],al mov al,a sub al,bl mov [bp+2],al mov al,a mul bl mov [bp+4],al mov al,a div bl

mov [bp+6],al int 3h code ends end start

Program 30 Aim :- Write an ALP for logical operation. data segment a db 5 b db 3 db 14 dup(0) r db 16 dup(0) data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax lea si,r mov al,a mov bl,b and al,bl mov [si],al mov al,a or al,bl mov [si+2],al mov al,a xor al,bl mov [si+4],al int 3 code ends end start

Program 31 Aim :- Write an ALP for far procedure. ;main program data segment b db "example of far procedure$" data ends

stack segment dw 100 dup(0) top label word stack ends

public b extrnabc : far code segment Assume cs:code,ds:data,ss:stack start: mov ax,data mov ds,ax mov ax,stack mov ss,ax lea sp,top call abc int 3 code ends end start

Você também pode gostar