Foros del Web » Programación para mayores de 30 ;) » Programación General »

Assembler!

Estas en el tema de Assembler! en el foro de Programación General en Foros del Web. estaba haciendo un pequeño ejercicio en assembler el cual es determinar si un numero es primo o no. La subrutina da como resultado 0 si ...
  #1 (permalink)  
Antiguo 20/11/2011, 11:35
Avatar de rdk_  
Fecha de Ingreso: noviembre-2011
Mensajes: 3
Antigüedad: 12 años, 5 meses
Puntos: 0
Assembler!

estaba haciendo un pequeño ejercicio en assembler el cual es determinar si un numero es primo o no. La subrutina da como resultado 0 si el numero es primo y un 1 si el numero no es primo.

lo raro es que si le mando "5" por ejemplo si funcion y dice q es primo, al igual si le mando un 8 por ejemplo me dice q no es primo. Lo raro es que si mando un "3" se cuelga el programa o si mando un "7" me dice que no es primo y el "7" si es primo.

aca les dejo la subrutina talvez encuentran el error aunq hice pruebas de escritorio y deberia funcionar

numeroprimo:
;ax es la entrada
; salida es 0 si es primo y 1 si no es primo

push cx
push dx
push bx

mov cx,0
mov dx,0
mov bx,0

inicio:
cmp ax,bx
je comparar
add bx,1
div bx
cmp dx,0
je contadorprimo
jmp inicio

contadorprimo:
add cx,1
jmp inicio

;aca se compara el contador cx primero se pasa al registro ax
; si es 2 el valor signfica que es primo ya que solo dio residuo 0 cuando se dividio entre 1 y por si mismo
; de lo contrario no es primo
comparar:
mov ax,cx
cmp ax,2
jle esprimo
mov ax,1
jmp finalizar

esprimo:
mov ax,0
jmp finalizar

finalizar:
pop bx
pop dx
pop cx
ret
  #2 (permalink)  
Antiguo 20/11/2011, 12:23
Avatar de rdk_  
Fecha de Ingreso: noviembre-2011
Mensajes: 3
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Assembler!

alguna respuesta? :(

Etiquetas: entrada, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:39.