This program find the least common divisor of two numbers using labels and this program is written in Masam. Find least common divisor in assembly language.
How to find least common divisor of two numbers in assembly language.


.MODEL SMALL
.STACK 100H
.DATA
MESSAGE1 DB "ENTER TWO NO'S LESS THAN 100 in that format(01),(09):",'$'
MESSAGE2 DB 10,13,"ENTER FIRST NO:",'$'
MESSAGE3 DB 10,13,"ENTER SECOND NO:",'$'
MESSAGE5 DB 10,13,"CAN NOT FOUND:",'$'
MESSAGE4 DB 10,13,"LCD OF TWO NO'S IS:"

LCD1     DB ?

LCD2     DB ?,'$'
COUNT    DB ?
.CODE
MAIN PROC
        MOV AX,@DATA
        MOV DS,AX
        MOV DX,OFFSET MESSAGE1
        MOV AH,9H
        INT 21H
        MOV DX,OFFSET MESSAGE2
        MOV AH,9H
        INT 21H
        MOV AH,1
        INT 21H
        SUB AL,30H
        MOV BL,10
        MUL BL
        MOV BL,AL
        
        MOV AH,1
        INT 21H
        SUB AL,30H
        ADD BL,AL
        MOV AH,1
        INT 21H
        CMP AL,13
        JE  NUMBER2

   NUMBER2:

        MOV DX,OFFSET MESSAGE3
        MOV AH,9H
        INT 21H
        MOV AH,1
        INT 21H
        SUB AL,30H
        MOV DL,10
        MUL DL
        MOV DL,AL
        MOV AH,1
        INT 21H
        SUB AL,30H
        ADD DL,AL

        MOV CL,2

        MOV CH,1
        CMP BL,DL
        JBE BELOW
        MOV COUNT,DL
        JMP LOOP_1
   BELOW:
        MOV COUNT,BL


  LOOP_1:

        CMP COUNT,0
        JE NOT_LCD
        XOR AH,AH
        MOV CH,1
        
        MOV AL,BL
        DIV CL
        

        CMP AH,0

        JE END_2
        JMP END_3
    END_2:
        MOV CH,AH

        

    END_3:
        XOR AH,AH
        MOV AL,DL
        DIV CL
        
        CMP AH,0
        JE END_4
        JMP END_6

        

        
    END_4:
        CMP AH,CH
        JE END_5
    END_6:
        
        INC CL
        DEC COUNT
        JMP LOOP_1
        
    END_5:
        
        MOV AL,CL
        MOV CL,10
        DIV CL

        ADD AH,30H

        ADD AL,30H
        MOV LCD1,AL
        MOV LCD2,AH
        MOV DX,OFFSET MESSAGE4
        MOV AH,9H
        INT 21H
        JMP END_FINAL
    NOT_LCD:
        MOV DX,OFFSET MESSAGE5
        MOV AH,9H
        INT 21H

    

    
   END_FINAL:
        MOV AH,4CH
        INT 21H
        MAIN ENDP
        END MAIN

0 comments:

Post a Comment

 
Top