eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaksiążka o programowniu AVR w CRe: ksišżka o programowniu AVR w C
  • Data: 2011-01-31 17:27:43
    Temat: Re: ksišżka o programowniu AVR w C
    Od: J.F. <j...@p...onet.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On Mon, 31 Jan 2011 18:00:48 +0100, Michoo wrote:
    >W dniu 31.01.2011 16:38, J.F. pisze:
    >>>> a) co jest zrzucane na stos i dlaczego w takiej kolejności,
    >>> Jakie to ma znaczenie w kodzie C?
    >> Mozna sie zastanowic nad glebokoscia wywolan,
    >W tym celu trzeba sprawdzić w dokumentacji kompilatora co ląduje na
    >stosie przy danej konwencji wywołań.

    I w dokumentacji procesora jaki ten stos moze byc.

    >> adresowaniem parametrow
    >Jakie to ma znaczenie w kodzie C?

    Na przyklad okresla co jest niemozliwe czy tez bardzo pracochlonne.
    Pamietasz 51 z jej pamieciami ?

    >> Albo ze np nie ma posredniego adresowania I/O.
    >Ale to wynika z dokumentacji a nie ze znajomości asm. Można napisać w

    Jak juz znasz dokumentacje na takim poziomie to znasz i asma

    >assemblerze adresujący IO pośrednio i tak samo się zastanawiać dlaczego
    >nie działa.

    albo nie mozna, bo nie ma takiego rozkazu. Przy czym latwiej da sie
    przeczytac w opisie konkretnej instrukcji niz sie zastanawiac o co
    temu glupiemu kompilatorowi chodzi przy banalnej instrukcji
    out(p,v).


    >>> Tak samo jak o uporządkowany zapis do rejestrów 16b.
    >> No i tu moze byc problem, bo rejestry specjalne moga wymagac
    >> specjalnie, a dla zwyklej pamiec rzadko jest potrzeba zawsze blokowac
    >> przerwania - ale czasem jest.
    >To jest w dokumentacji przy opisie rejestru. To czy blokować, czy nie
    >jest niezależne od tego czy asm czy c.

    C moze to kompilowac inaczej niz myslisz.

    >>> Dzielenie przez stałą sensowny kompilator zamienia na
    >>> mnożenie.
    >> To mozliwe tylko dla zmiennego przecinka.
    >Hasło:
    >Division by invariant integers using multiplication

    O ile pamietam wyniki nie zawsze sa calkowicie zgodne.

    >P.S.
    >Pisanie na początku w asm potrafi zostawić brzydkie nawyki jak
    >przesunięcia binarne zamiast dzielenia,

    No, polemizowalbym nieco czy to brzydki nawyk.
    Za to brak w C operacji "obrotu" bitow, i to juz jest czasem problem.

    >czy "optymalizację" liczników w
    >pętlach, które nie mają praktycznego znaczenia a zaciemniają kod. Imo
    >optymalizować należy jeżeli są problemy z wydajnością a nie "na zapas".

    Od procka zalezy, bo jak sie ma 16 rejestrow po 32 bit to sie pisze
    fajnie, a jak trzy po 8 to kompilator musi sie bardzo mocno wykazac, a
    i programista, zeby sie nie okazalo ze zapasu nie ma :-)

    J.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: