; Subroutine di calcolo binario per 68HC908GP32 ; Scritte in origine per HC05 e tradotte per HC08 si possono usare in alternativa ; alla Application Note AN1219/D SUB1HI EQU $50 SUB1LOW EQU $51 SUB2HI EQU $52 SUB2LOW EQU $53 SUB3HI EQU $54 SUB3LOW EQU $55 MULAHI EQU $56 MULAMID EQU $57 MULALOW EQU $58 MULBHI EQU $59 MULCLOW EQU $5A MULDHI EQU $5B MULDMID EQU $5C MULDLOW EQU $5D MULFATHI EQU $5E MULFATLOW EQU $5F * SUB SOTTRAZIONE BINARIA 16 BIT ; SUB1HI SUB1LOW - ; SUB2HI SUB2LOW = ;__________________ ; SUB3HI SUB3LOW BINSUB LDA SUB1LOW SUB SUB2LOW STA SUB3LOW BCC BINSA DEC SUB1HI BINSA LDA SUB1HI SUB SUB2HI STA SUB3HI RTS * SUB DIVISIONE BINARIA 24 BIT / 8 BIT = 24 BIT ; MULDHI MULDMID MULDLOW : ; MULFATLOW = ;__________________________________ ; MULDHI MULDMID MULDLOW BINDIV8 CLRH TST MULDHI BNE BINDIV8INI TST MULDMID BNE BINDIV8INI LDA MULDLOW CMP MULFATLOW BHI BINDIV8INI MOV #$01,MULDLOW RTS BINDIV8INI LDX MULFATLOW TST MULDHI BEQ BDV8A LDA MULDHI DIV STA MULDHI BDV8A TST MULDMID BEQ BDV8B LDA MULDMID DIV STA MULDMID BDV8B LDA MULDLOW DIV STA MULDLOW RTS * SUB DIVISIONE BINARIA 24 BIT / 16 BIT = 16 BIT ; MULDHI MULDMID MULDLOW : ; MULFATHI MULFATLOW = ;__________________________________ ; MULAHI MULALOW BINDIV CLR MULALOW CLR MULAHI BINDIVINI LDA MULDLOW SUB MULFATLOW STA MULDLOW BCC BINDA LDA MULDMID SUB #$01 STA MULDMID BCC BINDA LDA MULDHI SUB #$01 STA MULDHI BCC BINDA BRA BINDEXIT BINDA LDA MULDMID SUB MULFATHI STA MULDMID BCC BINDB LDA MULDHI SUB #$01 STA MULDHI BCC BINDB BRA BINDEXIT BINDB LDA MULALOW ADD #$01 STA MULALOW BCC BINDC INC MULAHI BINDC BRA BINDIVINI BINDEXIT RTS * SUB MOLTIPLICAZIONE 16 BIT X 8 BIT = 24 BIT ; Moltiplicatore 8 bit in MULFATLOW ; Moltiplicando 16 bit in MULAHI MULALOW ; Risultato in MULDHI MULDMID MULDLOW BINMUL LDA MULALOW LDX MULFATLOW MUL STA MULDLOW STX MULBHI LDA MULAHI LDX MULFATLOW MUL STA MULCLOW STX MULDHI LDA MULBHI ADD MULCLOW STA MULDMID BCC BINMEX INC MULDHI BINMEX RTS