program factors;
// Phil Gardner
#include( "stdlib.hhf" )
begin factors;
// The value to test as prime or not
mov( 2, bl );
testPrime:
// Count of how many factors found for the value
mov( 0, dx );
// The divisor to test as a factor
mov( 1, cl );
tryFactor:
mov( bl, al );
cbw();// Is this a factor? Check remainder
div( cl );
cmp( ah, 0 );
jz isFactor;
nextFactor:
inc( cl );
cmp( cl, bl );
jle tryFactor;jg finishedSingleTest;
isFactor:
inc( dl );
stdout.puti8( cl );
stdout.put( " goes into " );
stdout.puti8( bl );
stdout.put( " " );
stdout.puti8( al );
stdout.put( " times", nl );
jmp nextFactor;
finishedSingleTest:
cmp( dl, 2 );
jz reportAsPrime;
jmp underline;
reportAsPrime:
stdout.puti8( bl );
stdout.put( " IS A PRIME", nl );
stdout.put( "- - - - - -", nl );
readyForNextTest:
inc( bl );
cmp( bl, 100 );
jle testPrime;stdout.put( nl, "Finished testing.", nl );
end factors;