ALP to display all prime numbers from 1 to 9
ASSUME CS:CODE,DS:DATA
DATA SEGMENT
DIVIDEND DB ?
DIVISOR DB ?
NUM DB 9h
DATA ENDS
CODE SEGMENT
START:
MOV AX,DATA
MOV Ds,AX
ALL:
MOV AL,NUM
dec AL
MOV DIVIDEND,AL
MOV NUM,AL
MOV CH,00H
MOV CL,DIVIDEND
DEC CL
MOV DL,00H;FLAG
L:
MOV DIVISOR,CL
MOV AH,00H
MOV AL,DIVIDEND
MOV BL,DIVISOR
DIV BL
CMP AH,00H
JNE SKIP
CMP DIVISOR,01H;TO SKIP DIVISOR AS 1
JE SKIP1
INC DL;FLAG
SKIP1:
SKIP:
LOOP L
DONE:
CMP DL,00H
JE ELSE1
;NOT PRIME
JMP DIS
ELSE1:
MOV DH,00H
MOV DL,DIVIDEND
ADD DL,30H
MOV AH,02H
INT 21H
DIS:
cmp num,01h
je ex
CMP NUM,02H
JNE ALL
ex:
MOV AH,4CH
INT 21H
CODE ENDS
END START
DATA SEGMENT
DIVIDEND DB ?
DIVISOR DB ?
NUM DB 9h
DATA ENDS
CODE SEGMENT
START:
MOV AX,DATA
MOV Ds,AX
ALL:
MOV AL,NUM
dec AL
MOV DIVIDEND,AL
MOV NUM,AL
MOV CH,00H
MOV CL,DIVIDEND
DEC CL
MOV DL,00H;FLAG
L:
MOV DIVISOR,CL
MOV AH,00H
MOV AL,DIVIDEND
MOV BL,DIVISOR
DIV BL
CMP AH,00H
JNE SKIP
CMP DIVISOR,01H;TO SKIP DIVISOR AS 1
JE SKIP1
INC DL;FLAG
SKIP1:
SKIP:
LOOP L
DONE:
CMP DL,00H
JE ELSE1
;NOT PRIME
JMP DIS
ELSE1:
MOV DH,00H
MOV DL,DIVIDEND
ADD DL,30H
MOV AH,02H
INT 21H
DIS:
cmp num,01h
je ex
CMP NUM,02H
JNE ALL
ex:
MOV AH,4CH
INT 21H
CODE ENDS
END START
Comments
Post a Comment