L'operatore MOD lo puoi usare solo se il secondo parametro è costante, altrimenti devi fare una divisione e prendere il resto.

Ti consiglio le modifiche in rosso nel sorgente

codice:
        SUB EAX,EAX
	SUB EBX,EBX
	SUB ECX,ECX
	SUB EDX,EDX

	CMP Num,2
	JZ J1			;Salta se Num=2

	CMP Num,2
	JNGE J2			;Salta se Num<2

	MOV EAX,Num
	SHR EAX,1
	MOV EBX,2		;EBX=D=2

L1:
	PUSH EAX
	MOV EAX,Num
	SUB EDX,EDX
	DIV EBX
	POP EAX

	CMP EDX,0
	JZ J3				;Salta se EDX=0

	INC EBX				;D++

	CMP EBX,EAX
	JG J4				;Salta se D>MaxDiv

	JMP L1				;Loop
J1:
J4:
	MOV Ris,1

		
	JMP J5
J3:
J2:	MOV Ris,0

J5: