logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATMega32][C]Wstawki w asemblerze i tablice

Aro_ 06 Lut 2009 12:28 1361 6
REKLAMA
  • #1 6110833
    Aro_
    Poziom 15  
    Witam,
    Mam problem z zapisywaniem zmiennych w tablicy we wstawce asemblerowej. Próbowałem już różnych sposobów, aby "przemycić" adres początku tablicy do wstawki, ale bezskutecznie:( Jakiego operandu mam użyć, a może jest inny sposób? W asm mam pętle, w której dane są zapisywane poleceniem st Y+, Rx. Czyli potrzebuję zapisać do rejestrów R28,R29 adres początku tablicy.
  • REKLAMA
  • #2 6111397
    MarcinKawka
    Poziom 12  
    spróbuj tak:
    
    register char adres_l asm("r28");
    register char adres_h asm("r29");
    char tablica[WIELKOSC];
    adres_l = tablica & 0x00ff;
    adres_h  = tablica>>8;
    
  • REKLAMA
  • #3 6111529
    Aro_
    Poziom 15  
    main.c:97: error: invalid operands to binary &
    main.c:98: error: invalid operands to binary >>

    tyle mi wypluło...
    Widocznie na adresach nie można wykonać tych operacji:(
  • REKLAMA
  • #5 6111601
    Aro_
    Poziom 15  
    Jak zwykle najprostsze rozwiązania przychodzą najpóźniej... przecież wystarczy dac "ldi 28, lo8(tab)"... i śmiga aż miło:) W każdym razie dzięki za pomoc.
  • REKLAMA
  • #7 6114687
    Aro_
    Poziom 15  
    Dzięki, może przyda się w przyszłości.
REKLAMA