Red de conocimiento informático - Conocimiento sistemático - Cálculo de montaje 12

Cálculo de montaje 12

Te daré dos subrutinas para la multiplicación y división de doble byte. Simplifica tú mismo la reducción de los dos coeficientes y sustitúyelos.

BCS 1 EQU O8H; multiplicando bajo

BCS 2 EQU 09H; altura del multiplicador

cs 1 EQU 0aH; Empresa EQU; Altura del multiplicador

Ji 1 EQU 0cH; Baja acumulación

JI2 EQU 0dH; p>JI4 EQU 0fH; Acumulación Alta

bcus 1 EQU 10H; Dividendo Bajo

bcus 2 EQU 11H;

cus 2 EQU 13H; altura de separación

sa 1 EQU 14H; piso superior

SA2 EQU 15H superior

ys 1; EQU 16H; resto bajo

YS2 EQU 17H; altura del resto

;************************ ***************************

;Dividir bytes dobles

;Nombre de función: Divi

; Descripción de la función: División de doble byte sin signo

; Parámetros entrantes: BCUS2 BCUS1 dividendo CUS2 CUS1 divisor.

;Datos de retorno: SA2 SA1 cociente ys2s1 resto.

;Otras notas: por ejemplo, número de doble byte BCUS2 BCUS1, byte alto BCUS2 byte bajo BCUS1.

******************************************

Divi:

mov SA2, #0

mov SA1, # 0; el valor inicial del cociente es cero.

mov A, BCUS2

mov YS2, A

mov A, BCUS1

mov YS1, A al resto se le asigna un; valor inicial para garantizar que el resto sea normal cuando el cociente sea cero.

Divi_1:

mov A, BCUS1

clr c

subb A, cus 1; resta de bytes bajos

mov BCUS1, A

mov A, BCUS2

subb A, CUS2 resta de orden superior

mov BCUS2, A

JC Divi_3; si es necesario tomar prestados todos los bytes de orden superior, salga del ciclo.

clr c

mov A, SA1

Agregue uno, # 1; luego JNC juzgará, por lo que INC no se usa.

mov SA1, A

jnc Divi_2

SA2 empresa 1

Divi_2:

mov A , BCUS1

mov YS1, A

mov A, BCUS2

mov YS2, A; actualizar el resto

LJMP Divi_1

mov YS1, A

mov A, BCUS2

mov YS2, A; p>

Divi_3:

no proporcionado de otra manera A menos que se indique lo contrario

Remojar en agua para ablandar

;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;; ;;;;

;Multiplicación de doble byte

;El multiplicando es el dígito de las decenas AD BCS2 (alto) BCS1, el multiplicador es CS2 CS1, por lo que el resultado es JI4 JI3 JI2 JI1.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;

Mult:

MOV A, BCS 1; BCS1*CS1

MOV B, CS1

MUL AB

MOV JI1, A

MOV JI2, B

MOV A, BCS2BCS2 *CS1

MOV B , CS1

MUL AB

Añadir uno, JI2

MOV JI2, A

MOV A, B

ADDC A, #0

MOV JI3, A

MOV A, BCS 1; BCS1*CS2

Bahía MOV, CS2

MUL AB

Agregar A,JI2

MOV JI2, A

MOV A,B

ADDC A, #0

Agregar uno, JI3

MOV JI3, A

MOV A, BCS2BCS2*54

Bahía MOV, CS2

MUL AB

Agregar A,JI3

MOV JI3,A

MOV A,B

ADDC A, #0

MOV JI4, A

Remojar en agua para ablandar