Acerca del divisor y dividendo en la instrucción de ensamblaje DIV
8086 admite dos instrucciones de división, los divisores son de 8 y 16 bits.
Sus cocientes también deben tener ?8 o 16 dígitos.
Si el dividendo es demasiado grande y el divisor es demasiado pequeño, el cociente puede exceder el número predeterminado de dígitos, lo que se denomina "desbordamiento de división".
Una vez que se produce el "desbordamiento de división", aparecerá Divide? desbordamiento y el sistema fallará.
Por supuesto, usar una CPU de alta gama y aumentar la longitud de las palabras puede compensar parte de esta deficiencia.
Por lo tanto, muchas personas no quieren trabajar duro en la programación, sino que simplemente ponen sus esperanzas en nuevas CPU.
Sin embargo, en aplicaciones prácticas, el dividendo puede seguir siendo muy grande.
No podemos esperar a que salga una CPU grande para esto, ¿verdad?
------------------------------------------- -------------------------------------------------
De hecho, utilizando instrucciones de división de bajo nivel y operaciones múltiples, también se puede implementar una división de números grandes.
Mientras el "número de dígitos del cociente" y el "número de dígitos del dividendo" sean iguales, no habrá desbordamiento. (Excepto cuando el divisor es cero)
La idea de dividir números grandes se puede explicar mediante la expresión vertical de división aprendida en la escuela primaria de la siguiente manera:
La imagen en el A la izquierda se muestran las instrucciones de operación de instrucción de división más simples (¿DIV? BL).
La imagen de la derecha utiliza esta instrucción para calcular: (1A 2B 3C 4D)/BL.
El dividendo tiene cuatro bytes, lo que requiere utilizar DIV?BL cuatro veces.
Así: el cociente de cuatro bytes y el resto de cuatro bytes.
Los restos de las tres primeras veces deben usarse como el "byte alto del dividendo" durante la siguiente división.
El último resto es el resto total.
El byte alto de la primera división debe ser 00H.
------------------------------------------- -------------------------------------------------- -------------------------------------------------- -----
En la figura, solo se extrae el dividendo de cuatro bytes.
De hecho, al utilizar este método, no hay límite en el número de bytes.
Entonces, no importa cuán grande sea el dividendo, se puede encontrar el cociente de igual número de bytes.
Echa un vistazo, es fácil de entender.
Una vez que lo entiendas, podrás escribir tu propio programa.
Si no sabes cómo programar "suma, resta, multiplicación y división de varios bytes", aprende el lenguaje C.