Wednesday, May 18, 2016

Program to Find L of 2 s in assembly language using labels


This program find the lst common divisor of two s using labels and this program is written in Masam. Find lst common divisor in assembly language.
How to find lst common divisor of two s 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,"L OF TWO NO'S IS:"

L1 DB ?
L2 DB ?,'$'
COUNT DB ?
.
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 2

2:
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_L
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 L1,AL
MOV L2,AH
MOV DX,OFFSET MESSAGE4
MOV AH,9H
INT 21H
JMP END_FINAL
NOT_L:
MOV DX,OFFSET MESSAGE5
MOV AH,9H
INT 21H



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

No comments:

Post a Comment