Sunday, December 12, 2010

LCM of two numbers

Share Orkut
        print macro msg         lea dx,msg         mov ah,09h         int 21h     endm     read macro n,j1,j2         mov cx,0ah     j1:mov ah,01h         int 21h         cmp al,0dh         je j2         sub al,30h         mov bl,al         mov ax,n         mul cx         xor bh,bh         add ax,bx         mov n,ax         jmp j1     j2 :nop     endm     .model small     .stack 100h     .data         msg1 db 10,13,'Enter the 1st number: $'         msg2 db 10,13,'Enter the 2nd number: $'         msg3 db 10,13,'The LCM= $'         data1 dw 0         data2 dw 0         dat1 dw 0         dat2 dw 0     .code     main proc         mov ax,@data         mov ds,ax         print msg1         ;reading 1st multidigit number         read data1,jump1,jump2         print msg2         ;reading 2nd multidigit number         read data2,jump3,jump4         ;copy the data1 and data2 to dat1& dat2         mov bx,data1         mov dat1,bx         mov cx,data2         mov dat2,cx         ;Algorithm for finding lcm         ;if(dat1=dat2) then finish, lcm=dat1 or dat2         ;elseif(dat1<dat2) then dat1=dat1+data1         ;else dat2=dat2+data2         ;repeat     loop1:mov ax,dat1         cmp ax,dat2         je jump5         jc jump6         mov ax,dat2         add ax,cx         mov dat2,ax         jmp loop1     jump6:mov ax,dat1         add ax,bx         mov dat1,ax         jmp loop1         ;printing LCM     jump5:mov bx,0ah         xor cx,cx         ;push into stack     p1:xor dx,dx         div bx         push dx         inc cx         cmp ax,00h         jne p1         print msg3         ;pop from stack     display:pop dx         add dl,30h         mov ah,02h         int 21h         loop display         mov ah,4ch         int 21h     main endp     end

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

Sum of two multidigit digit number

Share Orkut

        print macro msg         lea dx,msg         mov ah,09h         int 21h     endm     read macro n,j1,j2         mov cx,0ah     j1:mov ah,01h         int 21h         cmp al,0dh         je j2         sub al,30h         mov bl,al         mov ax,n         mul cx         xor bh,bh         add ax,bx         mov n,ax         jmp j1     j2 :nop     endm     .model small     .stack 100h     .data         msg1 db 10,13,'Enter the 1st number: $'         msg2 db 10,13,'Enter the 2nd number: $'         msg3 db 10,13,'The Sum= $'         num1 dw 0         num2 dw 0     .code     main proc         mov ax,@data         mov ds,ax         print msg1         ;reading 1st multidigit number         read num1,jump1,jump2         print msg2         ;reading 2nd multidigit number         read num2,jump3,jump4         ;finding sum         mov ax,num1         add ax,num2         ;printing number         mov bx,000ah         xor cx,cx         ;push into stack     p1:xor dx,dx         div bx         push dx         inc cx         cmp ax,0000h         jne p1         print msg3         ;pop from stack     display:pop dx         add dl,30h         mov ah,02h         int 21h         loop display         mov ah,4ch         int 21h     main endp     end

Sum of two single digit number

Share Orkut

        print macro msg         lea dx,msg         mov ah,09h         int 21h     endm     read macro         mov ah,01h         int 21h     endm     .model small     .stack 100h     .data         msg1 db 10,13,'Enter the 1st number $'         msg2 db 10,13,'Enter the 2nd number $'         msg3 db 10,13,'Sum= $'     .code         mov ax,@data         mov ds,ax         ;read first number         print msg1         read         mov bl,al         ;read second number         print msg2         read         ;find sum         add bl,al         ;display sum         print msg3         mov dl,bl         sub dl,30h         mov ah,02         int 21h         mov ah,4ch         int 21h     end

Hello World

Share Orkut

        .model small     .stack 100h     .data         mg db "Hello World $"     .code         mov ax,@data         mov ds,ax         lea dx,mg         mov ah,09h         int 21h         mov ah,4ch         int 21h     end