Monday, September 5, 2011

TASM Assembly Program to Find the Largest of N Numbers

The TASM Assembly program given can be used to find the largest number among the numbers entered to an array.The Complete Source Code is given Below.
 print macro msg  
  mov ah,09h  
  mov dx,offset msg  
  int 21h  
 read macro num  
  mov ah,01h  
  int 21h  
  sub al,'0'  
  mov bh,0ah  
  mul bh  
  mov num,al  
  mov ah,01h  
  int 21h  
  sub al,'0'  
  add num,al  
 data segment  
  cr equ 0dh  
  lf equ 0ah  
  msg1 db 'Enter the limit ',cr,lf,'$'  
  msg2 db cr,lf,'Enter the no:',cr,lf,'$'  
  msg3 db cr,lf,'$'  
  msg4 db cr,lf,'largest no is',cr,lf,'$'  
  num db ?  
  n db ?  
  arr db 100 dup(0)  
  larg db 8 dup('$')  
 data ends  
 code segment  
 assume cs:code,ds:data  
  start:mov ax,data  
     mov ds,ax  
     print msg1  
     read n  
     mov ch,00h  
     mov cl,n  
     mov si,00h  
     print msg2  
  rept1:read num  
     mov bl,num  
     mov arr[si],bl  
     inc si  
     print msg3  
     loop rept1  
     mov si,00h  
     mov ch,00h  
     mov cl,n-1  
     mov al,arr[si]  
  rept2:inc si  
     mov bl,arr[si]  
     cmp bl,al  
     jb exit  
     mov al,bl  
  exit:loop rept2  
     mov ah,00h  
     mov si,offset larg  
     call hextoasc  
     print msg4  
     print larg  
     mov ah,4ch  
     mov al,00h  
     int 21h  
 hextoasc proc near  
  push ax  
  push bx  
  push cx  
  push dx  
  push si  
  mov cx,00h  
  mov bx,0ah  
 rept3:mov dx,00  
    div bx  
    add dl,'0'  
    push dx  
    inc cx  
    cmp ax,0ah  
    jge rept3  
    add al,'0'  
    mov [si],al  
 rept4:pop ax  
    inc si  
    mov [si],al  
    loop rept4  
    inc si  
    mov al,'$'  
    mov [si],al  
    pop si  
    pop dx  
    pop cx  
    pop bx  
    pop ax  
  hextoasc endp  
  code ends  
 end start  


Post a Comment


The Source Codes Published in this Blog can be used freely for Educational purposes but should not be reproduced on any other Blog or Website without the consent of the author.