Por si no lo as conseguido espero que este programa te sirba on saludo, y suerte, Carlos.
; Divicion de 32 bit x 32 bit
; Son necesarios un maximo de 3202 ciclos de reloj
; Ocupa una capacidad total de memoria de 229 pocisiones
; con la resta
MAYOR1 EQU .32 ;
MAYOR2 EQU .33 ;
MAYOR3 EQU .34 ;
MAYOR4 EQU .35 ;
MANOR1 EQU .36 ;
MENOR2 EQU .37 ;
MENOR3 EQU .38 ;
MENOR4 EQU .39 ;
RES1 EQU .40 ; RESULTADO
RES2 EQU .41 ; RESULTADO
RES3 EQU .42 ; RESULTADO
RES4 EQU .43 ; RESULTADO
DI1 EQU .44 ; NUMERO A DIVIDIR MAS SIGNIFICATIVO
DI2 EQU .45 ; NUMERO A DIVIDIR
DI3 EQU .46 ; NUMERO A DIVIDIR
DI4 EQU .47 ; NUMERO A DIVIDIR MENOS SIGNIFICATIVO
DIV1 EQU .48 ; NUMERO DIVISOR MAS SIGNIFICATIVO
DIV2 EQU .49 ; NUMERO DIVISOR
DIV3 EQU .50 ; NUMERO DIVISOR
DIV4 EQU .51 ; NUMERO DIVISOR MENOS SIGNIFICATIVO
MULT1 EQU .56 ;
MULT2 EQU .57 ;
MULT3 EQU .58 ;
MULT4 EQU .59 ;
DATO EQU .52 ;
CONTA1 EQU .53 ;
CONTA2 EQU .54 ;
CONTA EQU .55 ;
ACARREO EQU .92 ;
;................................................................................................
DIVIDE ;32 X 32
clrf CONTA
clrf CONTA1
clrf CONTA2
clrf DATO
clrf MAYOR1
clrf MAYOR2
clrf MAYOR3
clrf MAYOR4
clrf MULT1
clrf MULT2
clrf MULT3
clrf MULT4
movlw .0
subwf DI1,W
btfss STATUS,Z
goto GFD
movlw .0
subwf DI2,W
btfss STATUS,Z
goto GFD
movlw .0
subwf DI3,W
btfss STATUS,Z
goto GFD
movlw .0
subwf DI4,W
btfss STATUS,Z
goto GFD
goto DIV_SAL
GFD
movf DIV1,W
movwf DATO
call VER1
btfsc CONTA2,0
goto DIVFIN
movf DIV2,W
movwf DATO
call VER1
btfsc CONTA2,0
goto DIVFIN
movf DIV3,W
movwf DATO
call VER1
btfsc CONTA2,0
goto DIVFIN
movf DIV4,W
movwf DATO
call VER1
DIVFIN
clrf CONTA2
movf DI1,W
movwf DATO
call VER
btfsc CONTA2,0
goto DIFIN
movf DI2,W
movwf DATO
call VER
btfsc CONTA2,0
goto DIFIN
movf DI3,W
movwf DATO
call VER
btfsc CONTA2,0
goto DIFIN
movf DI4,W
movwf DATO
call VER
DIFIN
incf CONTA1,F
movf CONTA1,W
movwf CONTA2
decfsz CONTA1,F
goto SAL1
goto SAL2
SAL1
bcf STATUS,C
rlf DIV4,F
rlf DIV3,F
rlf DIV2,F
rlf DIV1,F
decfsz CONTA1,F
goto SAL1
SAL2
movf DI1,W
movwf MAYOR1
movf DI2,W
movwf MAYOR2
movf DI3,W
movwf MAYOR3
movf DI4,W
movwf MAYOR4
RE
movf DIV1,W
subwf MAYOR1,W
btfss STATUS,C
goto ARRASTRE
btfss STATUS,Z
goto BIEN
movf DIV2,W
subwf MAYOR2,W
btfss STATUS,C
goto ARRASTRE
btfss STATUS,Z
goto BIEN
movf DIV3,W
subwf MAYOR3,W
btfss STATUS,C
goto ARRASTRE
btfss STATUS,Z
goto BIEN
movf DIV4,W
subwf MAYOR4,W
btfss STATUS,C
goto ARRASTRE
goto BIEN
ARRASTRE
bcf STATUS,C
rrf DIV1,F
rrf DIV2,F
rrf DIV3,F
rrf DIV4,F
bcf STATUS,C
rlf MULT4,F
rlf MULT3,F
rlf MULT2,F
rlf MULT1,F
bcf MULT4,0
decfsz CONTA2,F
goto RE
goto DIV_SAL
BIEN
movf DIV1,W
movwf MENOR1
movf DIV2,W
movwf MENOR2
movf DIV3,W
movwf MENOR3
movf DIV4,W
movwf MENOR4
call RESTA
movf RES1,W
movwf MAYOR1
movf RES2,W
movwf MAYOR2
movf RES3,W
movwf MAYOR3
movf RES4,W
movwf MAYOR4
bcf STATUS,C
rrf DIV1,F
rrf DIV2,F
rrf DIV3,F
rrf DIV4,F
bcf STATUS,C
rlf MULT4,F
rlf MULT3,F
rlf MULT2,F
rlf MULT1,F
bsf MULT4,0
decfsz CONTA2,F
goto RE
goto DIV_SAL
VER
bcf STATUS,C
movlw .8
movwf CONTA
QWE
btfsc DATO,7
goto ZXC
decf CONTA1,F
rlf DATO,F
decfsz CONTA,F
goto QWE
return
VER1
bcf STATUS,C
movlw .8
movwf CONTA
ASD
btfsc DATO,7
goto ZXC
incf CONTA1,F
rlf DATO,F
decfsz CONTA,F
goto ASD
return
ZXC
movlw .1
movwf CONTA2
return
DIV_SAL
movf MULT1,W
movwf RES1
movf MULT2,W
movwf RES2
movf MULT3,W
movwf RES3
movf MULT4,W
movwf RES4
return
RESTA ;32 x 32
clrf ACARREO
comf MAYOR4,W
addwf MENOR4,W
movwf RES4
btfsc STATUS,C
incfsz MENOR3,F
goto IOP1
incfsz MENOR2,F
goto IOP1
incfsz MENOR1,F
goto IOP1
bsf ACARREO,0
IOP1
comf MAYOR3,W
addwf MENOR3,W
movwf RES3
btfsc STATUS,C
incfsz MENOR2,F
goto IOP2
incfsz MENOR1,F
goto IOP2
bsf ACARREO,0
IOP2
comf MAYOR2,W
addwf MENOR2,W
movwf RES2
btfsc STATUS,C
incfsz MENOR1,F
goto IOP3
bsf ACARREO,0
IOP3
comf MAYOR1,W
addwf MENOR1,W
movwf RES1
btfsc STATUS,C
bsf ACARREO,0
btfsc ACARREO,0
bcf STATUS,C
btfss ACARREO,0
bsf STATUS,C
comf RES4,F
comf RES3,F
comf RES2,F
comf RES1,F
return