ASM Problema Assembly Motorola 68000

Giaguaro

Utente Bronze
25 Maggio 2018
47
23
2
45
Siano dati due byte agli indirizzi di memoria A e B. Si valuti il numero di bit omologhi uguali di A e B e si ponga tale numero alla locazione di memoria RES, Questa versione utilizza l'istruzione assembly EOR.

Salve a tutti questo è il mio problema l'ho già risolto con un programma non modulare e volevo provare ad esercitarmi con uno modulare ma mi da degli errori questo è il mio programma consigli?

Codice:
        ORG        $8000
A        DC.B        %11001010
B        DC.B        %11101101
RIS        DS.B        1
        
        ORG        $8400
MAIN        ADDA        #-2,SP
        MOVE        #A,-(SP)
        MOVE        #B,-(SP)
        JSR        BITCOUNT
        ADDA        #4,SP
        MOVE        (SP)+,RIS
        JMP        $8008

        ORG        $8800
OLD_FP    EQU        0
RET_ADDR    EQU        4
A_OFF        EQU        8
B_OFF        EQU        12
RIS_OFF    EQU        16
BITCOUNT    LINK        A6,#0
        MOVEM.L    D0-D3,-(SP)
        MOVE        A(A6),D0
        MOVE        B(A6),D1
        EOR        D0,D1
        MOVE.B    #7,D2
        CLR        D3   
LOOP        BTST        D2,D1
        BNE        DEC
        ADDQ        #1,D3
DEC        DBRA        D2,LOOP
        MOVE.B    D3,RIS_OFF(A6)
        MOVEM.L    (SP)+,D0-D2
        UNLK        A6
        RTS
        END        MAIN

Mi da questi problemi:

ERROR in line 23: Displacement out of range
ERROR in line 24: Displacement out of range
2 errors detected
No warnings generated

cioè le linee:

00008808 302E 8000 23 MOVE A(A6),D0
ERROR: Displacement out of range
0000880C 322E 8001 24 MOVE B(A6),D1
ERROR: Displacement out of range