Cálculo de montaje 12
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.
****************************************** p >
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 p>
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 p>
MOV JI4, A
Remojar en agua para ablandar