Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 16 kwi 2026, o 07:15


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 26 kwi 2018, o 09:21 
Offline
Użytkownik

Dołączył(a): 18 sty 2015
Posty: 170
Pomógł: 0

Witam.

Chciałbym sobie poniższy kod z Bascom-a przełożyć 1 do 1 na C.

Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Natrafiłem jednak na trudność w przypadku ładowania rejestru R31 wartością zmiennej.

O ile załadowanie do rejestru konkrednej wartości można wykonać (tak mi się zdaje) wstawką assemblerową:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


o tyle użycie zmiennej, np:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


zupełnie odpada.

Efekt będzie mniej więcej taki:

Obrazek

Potrzebuję pomysłu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2018, o 10:12 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27456
Lokalizacja: Szczecin
Pomógł: 1045

Obejrzyj sobie jeden z moich poradników o wstawkach ASM do C

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2018, o 12:44 
Offline
Użytkownik

Dołączył(a): 18 sty 2015
Posty: 170
Pomógł: 0

Dzięki.

W odcinku drugim sporo się działo:



w wolnej chwili obejrzę raz jeszcze na spokojnie.

Z tego, co w locie udało mi się wyłapać, to przede wszystkim:

1). wskaźniki
2). ładowanie zmiennej (już fajnie, ciepło) ale (niestety nie na rejestr) na port za pomocą wstawki asm.

Było też o dokumencie http://globalspecialties.com/images/robots/RP6V2_20140814_CD/Documentation/avr-libc-user-manual-1.6.7.pdf a w szczególności o tabeli 7.3 Input and Output Operands (str. 42).

Jeśli dobrze zapamiętałem, za pomocą liter (kolumna Constraint) można wskazać (zasugerować) kompilatorowi z jakiego typu rejestru ma on skorzystać, za pomocą małego d można nawet wskazać konkretny rejestr r0), natomiast wygląda na to, że nie da się wskazać w sposób bezpośredni rejestru R30 czy też R31. Co prawda z tych rejestrów zbudowany jest rejestr Z, więc może istnieje jakaś możliwość wskazania zh i zl (za pomocą litery z właśnie z l-ką lub v-ką) ale to tylko jakieś tam moje zgadywanie. W każdym razie po pierwsze nie przerabiałem tego jeszcze, po drugie nie wiem, czy moje myśli idą w dobrą sronę.

W każdym razie do filmu wrócę w pierwszej wolnej chwili.

Dziękuję za podpowiedź i pozdrawiam.
Mariusz



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 kwi 2018, o 09:27 
Offline
Użytkownik

Dołączył(a): 18 sty 2015
Posty: 170
Pomógł: 0

Wracam po kilku dniach, zastanawiając się nad jedną kwestią.

Procesor co prawda inny ATmega644P (zamiast ATmega32), niemniej kod jak w poradniku:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Tymczasem w pliku .lss widzę kilka dodatkowych instrukcji, których na filmie nie było:

Obrazek

Zastanawiam się, co (w kodzie?) je wygenerowało.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 6 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO