FoxPirate337
FoxPirate337

Reputation: 1

Stack doesn't load correctly any address

I'm trying to prepare for a university exam which involves assembly programming for the Motorola 6800, in which there is the mandatory use of subroutines via stack, in my code, the addresses of vectors A and B are not passed correctly

ORG $8000
A   DC.W    2,2,1,0,4,4,2,11,1,2
X   DC.W    2
N   DC.W    2
R   DS.W    1
B   DS.W    10
T   DS.W    1
'OFFSETS FOR THE STACK' 
BOFF    EQU 4
AOFF    EQU 8
XOFF    EQU 12
TOFF    EQU 14
NOFF    EQU 16
ROFF    EQU 18

    ORG $8100
MAIN    SUBA        #2,SP       *SPAZIO PER R
    MOVE.W  N,-(SP)
    SUBA        #2,SP       *SPAZIO PER T
    MOVE.W  X,-(SP)
    MOVE.L  #A,-(SP)
    MOVE.L  #B,-(SP)
    JSR     SUBR
    ADD     #16,(SP)
    MOVE.W  (SP)+,R
FINITO  JMP FINITO

    ORG $8200
SUBR    MOVEA.W BOFF(SP),A0
    MOVEA.W AOFF(SP),A1
    MOVE.W  XOFF(SP),D0
    MOVE.W  ROFF(SP),D1
    MOVE.W  TOFF(SP),D2
    MOVE.W  NOFF(SP),D3
    CLR     D4  *VARIABILE CICLICA
    CLR     D5  *CONTA QUANTE VOLTE X APPARE
LOOP    CMPI        #10,D4
    BEQ     ESCI
    CMP     (A1)+,D0
    BNE     NON
    ADDI        #1,D5
    ADDI        #1,D4
    BRA     LOOP
NON MOVE        (A1),(A2)+
    ADDI        #1,D2
    ADDI        #1,D4
    BRA     LOOP
ESCI    CMP     D5,D3
    BNE     NON2
    ADDI        #1,D1
NON2    MOVE        #0,D1
    RTS 
    END     MAIN

Upvotes: 0

Views: 30

Answers (0)

Related Questions