Ciao a tutti, devo fare un programma che dica se il numero inserito e' primo(Ris=1) o no(Ris=0)
Ecco il codice:
Vorrei sapere come posso utilizzare l'operatore MOD, perche' il compilatore mi da' errore se scrivo in questo modo:codice:#include <stdio.h> void main () { unsigned int Num=2; int Ris; // 1 se e' primo, 0 altrimenti __asm { 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 MOV EDX,2 DIV EDX ;EAX=MaxDiv=Num/2 MOV EBX,2 ;EBX=D=2 L1: MOV ECX, Num MOD EBX ;Resto=ECX= Num MOD D --- MOD restituisce il resto della divisione Num/D // non funziona-errore di compilazione CMP ECX,0 JZ J3: ;Salta se ECX=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: } printf ("Ris:%d\n",Ris); }
PS: non posso cambiare l'algoritmo e il codice in c.codice:MOV ECX, Num MOD EBX

Rispondi quotando