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