Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

kompilator (albo linker) zle oblicza?

Awatar użytkownika
gruszek
-
-
Posty:178
Rejestracja:20 lis 2003, o 13:31
Lokalizacja:bytom
kompilator (albo linker) zle oblicza?

Postautor: gruszek » 11 maja 2004, o 14:51

witam
mam avrstudio 3.56, mam zdefiniowane 2 ciagi o nazwach: NAPIS i CZEKAM,
na poczatku programu jert "org 100"
i kiedy chce (za pomoca 16bit rejestru Z) wczytac ten ciag to nie wystarczy ze dam:
ldi r30, low(NAPIS)
ldi r31, high(NAPIS)
musze dac:
ldi r30, low(NAPIS+100)
ldi r31, high(NAPIS+100)
a to nie wszystko! drugi ciag znajduje sie zaraz po pierwszym w pamieci i musze dac cos takiego:
ldi r30, low(CZEKAM+100+12)
ldi r31, high(CZEKAM+100+12)
"12" to polowa dlugosci ciagu NAPIS, wiem ze w pamieci sa przechowywane po 2 bajty naraz ale kompilator powinien chyba to przewidziec i powinien sam dodac to 100 skoro napisalem ze ORG 100 i powinien dodac te 12....
:|

Awatar użytkownika
gawel
-
-
Posty:683
Rejestracja:24 lis 2003, o 11:19
Lokalizacja:Białystok

Postautor: gawel » 11 maja 2004, o 15:28

Mniemam, że parą rejestrów r31 i r30 wskazujesz na jakiś przykładowo napis w pamięci programu, który chcesz przykładowo pobrać do rejestru instrukcją LPM. Jeżeli tak, to problem polega na tym, że:
instrukcja LPM adresuje bajt do pobrania, natomiast w ciągu instrukcji
ldi r30, low(NAPIS)
ldi r31, high(NAPIS)
adres liczony jest w słowach dwubajtowych. Aby trafić w obszar instrukcją lpm należy do pary rejestrów r31, r30 pobrać adres dwa razy większy, to jest:
ldi r30, low(NAPIS<<1)
ldi r31, high(NAPIS<<1)
Zapis <<1 oznacza, że należy wziąść agument przesunięty o 1 bit w lewo.

Awatar użytkownika
gruszek
-
-
Posty:178
Rejestracja:20 lis 2003, o 13:31
Lokalizacja:bytom

Postautor: gruszek » 12 maja 2004, o 12:42

achaaaaaaaaaaa :) dzieki
niedoczytalem sobie o tej instrukcji lpm ale w sumie tam jest po angielsku i sie nie wglebialem w szczegoly

Awatar użytkownika
gawel
-
-
Posty:683
Rejestracja:24 lis 2003, o 11:19
Lokalizacja:Białystok

Postautor: gawel » 12 maja 2004, o 12:59

Cieszę się, że pomogło.

Wróć do „AVR/AVR32”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 4 gości