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

Różnice w programowaniu assemblera dla AVR i 8051 - jakie są?

Mess-gd 17 Lis 2004 15:43 1229 6
REKLAMA
  • #1 992475
    Mess-gd
    Poziom 14  
    Posty: 152
    Jest rożnica w pisaniu w assemblerze do AVR a 51' ?

    Pozdrawiam.
  • REKLAMA
  • REKLAMA
  • #3 992500
    achilles
    Poziom 15  
    Posty: 212
    Ocena: 6
    Taka, że jest kilkakrotnie więcej rozkazów o trudnych do spamiętania mnemonikach i kupa rejestrów, których ilość zależy od typu procka.
  • REKLAMA
  • #4 992777
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    achilles napisał:
    Taka, że jest kilkakrotnie więcej rozkazów o trudnych do spamiętania mnemonikach i kupa rejestrów, których ilość zależy od typu procka.

    Nie ma co płakać, trudność zależy najbardziej od chęci, a nie od ilości. Np. w przypadku ATmega8 wystarczy wydrukować 2 i 1/10 strony (s. 284, 285, kawałek 286) z noty katalogowej, aby mieć wszystkie potrzebne mnemoniki przed oczami. W miarę pisania programu sam się zdziwisz, że pamiętasz, tym bardziej, że znajdziesz dużo odpowiedników rozkazów z '51, dla czysto komercyjnych (prawa autorskie itp.) powodów nazwanych inaczej... :) Co do rejestrów, to każdy procesor może być specyficzny, ale do każdego jest odpowiedni plik nagłówkowy (np. "m8def.inc" dla ATmega8 w AVRStudio), w którym są one zdefiniowane i już w samym programie posługujesz się ich nazwami z not katalogowych. Czyli warunek konieczny to znajomość dokumentacji, jak w przypadku każdej części elektronicznej, abstrachując już nawet od magicznego zaklęcia "mikroprocesor AVR" :)
  • REKLAMA
  • #5 993034
    Dexter77
    Poziom 28  
    Posty: 889
    Pomógł: 134
    Ocena: 19
    Inna architektura procesorow wymaga tez troche innego podejscia do rozwiazywania problemow. Tu jest az 32 rejestry ogolnego przeznaczenia a nie jeden akumulator. Niektore rozkazy dzialaja tylko z polowa tych rejestrow niektore ze wszystkimi, 6 rejestrow zostalo tez wykorzystane jako wskazniki. Programowanie AVR zdecydowanie sie rozni i jest trudniejsze na samym poczatku ale jak juz sie opanuje te "dziwne" mnemoniki rozkazow to praca staje sie przyjemnoscia.
    Pozdro
    Dexter
  • #6 993092
    verin
    Poziom 11  
    Posty: 8
    Tzw "dziwne mnemoniki" nabierają głębszego znaczenia i łatwiej wchodzą w pamięć, jeżeli rozwinąć skróty, z których są utworzone. Są to po prostu akronimy angielskich oznaczeń na działanie danego rozkazu.
  • #7 994028
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    Dla dokładniejszych informacji warto przejrzeć helpa np. od asemblera w AVRStudio.
    Załączniki:
    • AVRasm.chm.zip (353.27 KB) Musisz być zalogowany, aby pobrać ten załącznik.

Podsumowanie tematu

LABEL_AI_GENERATED
Programowanie assemblera dla mikrokontrolerów AVR różni się od programowania dla 8051 przede wszystkim architekturą i zestawem instrukcji. AVR posiada znacznie więcej rozkazów o specyficznych, często trudnych do zapamiętania mnemonikach, które są akronimami angielskich nazw operacji. W przeciwieństwie do 8051, AVR dysponuje 32 rejestrami ogólnego przeznaczenia zamiast pojedynczego akumulatora, co wymaga innego podejścia do rozwiązywania problemów programistycznych. Część rejestrów pełni funkcję wskaźników. Pomimo początkowej trudności, znajomość dokumentacji i korzystanie z plików nagłówkowych (np. m8def.inc dla ATmega8) ułatwia pracę z assemblerem AVR. Dla szczegółowych informacji zaleca się korzystanie z pomocy asemblera w środowisku AVRStudio oraz not katalogowych, które zawierają pełne zestawy mnemoników i definicje rejestrów.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA