1
					
						
						« en: Miércoles 11 de Enero de 2006, 18:30 »
					 
					
					Buenas:
Tengo un problemilla y es que no se como calcular correctamente, usando ensamblador, el como saber si un numero introducido por teclado es o no un numero primo.
El codigo que tengo escrito es el siguiente:
dosseg
.model small
.stack 100h
.data
        numero db 30h,30h,30h
        factor db 10
        primo db 'Es primo',10,13,'$'
        noprimo db 'No es primo',10,13,'$'
.code
convertir proc
sub al, 30h
ret
convertir endp
inicio:
        mov ax,@data
        mov ds,ax
        mov ah,1
        int 21h
        call convertir
        mov numero,al
        int 21h
        call convertir
        mov numero[1],al
        int 21h
        call convertir
        mov numero[2],al
        mov bh,numero[0]
   mov bl,numero[1]
        mov cl,4
   shl bl,cl
   shr bx,cl
   
   mov cl,bl
   xor ax,ax
et1:
   div cl
   cmp ax,0
   jnz esprimo
   dec cx
   jcxz noesprimo
   jmp et1
   
noesprimo:
   mov ah, 9
   lea dx, noprimo
   int 21h
   jmp fin
esprimo:
   mov ah, 9
   lea dx, primo
   int 21h
   
   
fin:
   mov ah, 4Ch
   int 21h
   end inicio
Si me podeis hechar una mano os lo agradeceria muchisimo.
Un saludo