Re: c pøižezení adresy do ukazatele

Jan Waclawek konfera na efton.sk
Čtvrtek Duben 10 09:00:44 CEST 2014


>Pokud má procesor cache, pipeline a odhad pro výkon skokù a podobné vymoženosti, tak jste bezradný i u smyèek v asm :-). 

Nejde len o slucky, ale vo vseobecnosti o kontrolu nad presnym casovanim
udalosti. To je ten zasadny rozdiel medzi mikrokontrolerom a SoC, ktory sa
vsak vyrobcovia v ramci marketingu snazia zotriet a nahradit mavanim rukou
a recami o vysokom vykone spolu s farebnymi obrazkami na lesklom
papieri... ;-)

Na presne casovanie je potom potrebne pouzit hardware, ten vsak musi clovek
k dispozicii mat...

Inak samozrejme ide mat casovanie pod kontrolou aj ked ma procesor cache,
pipeline, predpoved skokov a podobne vymozenosti, len sa to zbytocne
komplikuje. Naviac silne zalezi aj na definicii toho "mat casovanie pod
kontrolou".

Este inaksie povedane, aj tie smiesne 8-bity maju svoje velmi dobre
definovane miesto pod slnkom, aj ked su nemoderne a neda sa na nich
poriadne zarobit.


>Na i51 to ještì jde

Kolega pouziva PIC, predpokladam 8- prip. 16-bitovy, kde to tiez ide, bo su
to mikrokontrolery.


>Bez ukazatelù se neobejdete ani asm, Jak jinak zapíšete do registru v adresovém prostoru?

Plnokrvne riadiace aplikacie su z algoritmickeho hladiska typicky velmi
jednoduche, typicky pouzivaju velmi malo dat a obvykle sa zaobidu bez
nepriameho pristupu k pamati (t.j. bez pointrov), prip. sa nepriamy
pristup obmedzuje na polia. V 8-bitovych mcu a ich asm je drviva vacsina
instrukcii s priamym resp. implicitnym pristupom k datam, a nepriamy
pristup byva velmi chudobny, niekedy obmedzeny len na presuny (v tomto su
castokrat "load-store" podobne ako RISCy, lenze RISCy typicky nemaju vobec
priamo adresovane instrukcie, ktore v 8-bit mcu dominuju). Napr. v PIC sa
nepriamo pristupuje cez registre, t.j. sa v priamo adresovanom priestore
zapise do adresnych registrov, a potom sa pise/cita z konkretneho
registra, ktory predstavuje jednobytove "okno" do nepriamo adresovanej
pamati. Alebo v '51, ak odhliadneme od nepriameho pristupu do internych
256 byte (instrukcie s @R0 a @R1), tak jediny nepriamy pristup su dve
konkretne instrukcie na zapis/citanie jedineho bytu implicitne
adresovaneho obsahom specialneho registroveho paru DPTR. Toto je velmi
konkretny, priamociary a lahko uchopitelny princip, ktory je velmi odlisny
od myslenia, ktore vyustilo do flexibility a variability pouzitia
smernikov vo vyssich jazykoch, nehovoriac este o benevolencii prace s nimi
v C.

wek




Další informace o konferenci Hw-list