Programming

HOME Programming

データレジスタ1の整数が素数かどうかを判定する


※データのサイズはワードとする
F	DS.W	1		//フラグ変数
I	DS.W	1
J	DS.W	0
TWO	DC.W	2
	MOVE.W	D1,J
	DIVU.W	TWO,J		//J=D1/2
LP2	COMP.W	I,J
	BEQ	TRUE		//if I=J → D1は素数
	ADDI.W	#1,I		//I=I++
	MOVE	D1,D0		//D0=D1
LP1	CMPI.W	#0,D0		//if D0=0 → D1は素数ではない
	BEQ	FALSE
	SUB.W	I,D0		//D0=D0-I
	CMPI.W	#0,D0
	BLT	LP2		//if D0<0 goto LP2
	CMPI.W	#0,D0
	BGT	LP1		//if D0>0 goto LP1
FALSE	MOVE.W	#0,F		//Fに0を代入
TRUE	MOVE.W	F,D0		//Fの値をDOに代入
	END
D0が0ならば、D1は素数ではない。1ならば、D1は素数。