Saturday, December 11, 2010

Largest of 10 numbers

Share Orkut
        print macro msg         lea dx,msg         mov ah,09h         int 21h     endm     read macro n,j1,j2     j1:mov ah,01h         int 21h         cmp al,0dh         je j2         sub al,30h         mov bl,al         mov ax,n         mov dx,0ah         mul dx         xor bh,bh         add ax,bx         mov n,ax         jmp j1     j2 :nop     endm     .model small     .stack 100h     .data         msg1 db 10,13,'Enter a number: $'         msg2 db 10,13,'Largest= $'         num dw 10 dup(0)         larg dw 0     .code     main proc         mov ax,@data         mov ds,ax         ;read 10 elements         mov cx,0ah         lea si,num     loop1:print msg1         ;read a multidigit number         read [si],jump1,jump2         add si,02         loop loop1         ;asign 1st element as largest         lea si,num         mov ax,[si]         mov larg,ax         mov cx,09h     ;compare larg with other elements     loop2:add si,02         mov ax,[si]         cmp larg,ax         jnc notlarg         mov larg,ax     notlarg:loop loop2         ;printing largest         mov bx,000ah         mov ax,larg         xor cx,cx         ;push into stack     p1:xor dx,dx         div bx         push dx         inc cx         cmp ax,0000h         jne p1         print msg2         ;pop from stack     display:pop dx         add dl,30h         mov ah,02h         int 21h         loop display         mov ah,4ch         int 21h     main endp     end

No comments:

Post a Comment