Mam taki problem, który jest prosty dla doświadczonych programistów do których niestety ja się nie zaliczam.
Mam w Bascomie zadeklarowane zmienne np.:
dim an1 as byte
dim an2 as byte
i potem chcę w proceduże obsługi przerwania użyć asemblera w ten sposób że przy wejściu do procedury przepisuję wartości z tych zmiennych do rejestrów a przed opuszczenien przerwania robię sytuację odwrotną z rejestrów przepisuję wartości do tych zmiennych. Pytanie jest jak to zrobić?
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ęBascon AVR i asembler
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
Dla przykładu:
To by było na tyle
Piotrek
Kod: Zaznacz cały
Dim An1 As Byte , An2 As Byte
An1 = 5
An2 = 10
$asm
'...
'poniżej nadanie aliasów rejestrom
.def Reg_an1 = R16
.def Reg_an2 = R17
'teraz zamiast nazw rejesrtów , możemy używać ich aliasów
push reg_an1 'zachowaj rejestr r16
push reg_an2 'zachowaj rejestr r17
lds reg_an1,{an1}
lds reg_an2,{an2}
inc reg_an1 'zwiększ R16 o 1
dec reg_an2 'zmniejsz R17 o 1
sts {an1},reg_an1 'zapamiętaj nową wartość w zmiennej
sts {an2},reg_an2 'j/w
pop reg_an2 'odtwórz rejestr
pop reg_an1 'j/w
'...
$end Asm
'teraz zmienna an1=6 , a an2 =9
Piotrek
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 18 gości