Divisiones mediante restas...

Hola quería saber como puedo hacer divisiones con sucesivas restas.
Es para hacer un programa que lea un numero y diga si es primo o no, en lenguaje maquina, gracias.
1

1 respuesta

1
Respuesta de
Hola
Aunque la pregunta no tiene nada que ver con adsl, voy a intentar responderte.
Un número es primo si solo es divisible por si mismo y por la unidad. Esto significa que al dividirlo solo puede dar resto cero en esos dos casos. El algoritmo para ver si un número es primero consiste en dividirlo por todos los anteriores (sin incluir ni uno ni cero) para ver si alguno da resto cero. Si ninguno da resto cero es primo.
No se qué entiendes por lenguaje máquina, depende del procesador. En lenguaje ensamblador existe la instrucción DIV que permite dividir dos número obitendo el resultado y el resto. No necesitas hacer restas sucesivas.
La instrucción DIV funciona de la siguiente forma:
DIV BL -> Se realiza AX / BL = AL, con rexto en AH
DIV BX -> Se realiza DX:AX / BX = AX, con resto en DX
Como ves, no es muy complicado, divides el número en AX por el número en BL si este último es de 8 bits (hasta 255). Si es mayor, tienes que cargarlo en un registro de 16 bits, y entonces cargas el número que quieres dividir en DX:AX, en DX los bits de la parta alta, y en AX los de la parte baja.
Intenta hacerlo de esta forma. Si no consigues hacerlo o necesitas usar restas por algo en especial, dímelo.
Saludos.
Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje
¿No es la respuesta que estabas buscando? Puedes explorar otras preguntas del tema ADSL o hacer tu propia pregunta: