eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaRóżnice między mikrokontrolerami › Re: Różnice między mikrokontrolerami
  • Data: 2016-02-09 00:53:13
    Temat: Re: Różnice między mikrokontrolerami
    Od: "J.F." <j...@p...onet.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Dnia Mon, 8 Feb 2016 21:28:14 +0100, janusz_k napisał(a):
    > W dniu 2016-02-07 o 22:15, J.F. pisze:
    >>>> Intel x86 też ma oddzielnie segmenty kodu i danych. I co? I jakoś z tym
    >>>> żyjemy.
    >>> To kompilator ma a nie procek, x86 od zawsze miały wspólną przestrzeń
    >>> danych i programu.
    >>
    >> Przestrzen wspolna, adresacja jedna, ale i tu moze segmentacja
    >> namieszac. Ktos jeszcze pamieta te modele pamieci w C - tiny, small,
    >> huge .. 6 ich bylo :-(
    > Pewnie, pisałem na nie. Co nie zmienia faktu że można było wpisać
    > dowolny adres i pobrać dane czy zapisać z całej pamięci RAM,

    W modelu small byl jednak segment kodu, segment danych, a
    adres/wskaznik tylko 16 bitow liczyl.

    >>>> Intel x86 też ma oddzielne instrukcje mov i in.
    >>> Łaskawco rozrózniaj instrukcje dostępu do pamięci "mov" od instrukcji
    >>> we/wy "in", bo jak na razie to mieszasz pojęcia.
    >>
    >> Poniekad ten sam problem, tylko w jeszcze innym miejscu.
    >> taki 8080 nie mial np adresacji in/out posredniej czy przez rejestr,
    >> tylko wpisany w rozkaz, - co uniemozliwialo zadanie adresu parametrem
    >> - musial byc z gory okreslony.
    >
    > Jarku sprawdz zanim napiszesz, cytuję:
    > "Other Instructions
    >
    > IN Port Data from Port placed in A register.
    > OUT Port Data from A register placed in Port."
    >
    > http://fms.komkon.org/comp/CPUs/8080.txt

    No - dane byly w rejestrze A, a adres portu ?
    W drugim bajcie rozkazu.

    Jesli miales w systemie np dwa porty szeregowe (UART), to nie mogles w
    systemie napisac jednej procedury ich obslugi, do ktorej bys przekazal
    adres bazowy sterownika portu. Adres byl staly.

    Podobnie w C nie mogles napisac funcji, ktora by dostala adres portu
    jako parametr. Musial byc staly i znany juz w czasie kompilacji.

    Tzn mogles - jesli program byl w RAM a nie ROM, to program mogl sobie
    zmienic bajt pamieci odpowiedniego rozkazu.

    Cos mi chodzi po glowie, ze podobna zmiana kodu musiala byc stosowana
    takze w x86, ale to jeszcze jakis inny rozkaz musial byc, bo IN/OUT
    mialy mozliwosc adresowania DX.
    A jak uwzglednic kolejki i cache, to sprawa przestaje byc prosta :-)

    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: