<html><body>Ahoj,<br><br>ked si zvladol asembler a robil v nom 20 rokov, ako si pisal v prvom emaily, ktory som uz vymazal, tak to bude pre teba velmi jednoduche. Predpokladam, ze macroasembler poznas a mas zvladnuty. C je vo vseobecnosti nadstavba asembleru, taky inteligentnejsi generator kodu s implicitne impementovanimi funkciami pre matematicke operacie a doplneny o kniznice. Hlavna vec je suvislost medzi asemblerom a C. Z instrukcnej sady si treba napisat ekvivalenty medzi asemblerovskymi a c prikazmi. Typicky priklad je napr. djnz reg,navestie, co sa da napisat v c ako if(reg--) then goto navestie. Dalsim prikladom su jednoduche presuny medzi operandami a reg. mov a,(R0) sa da zapisat ako A = *R0, kde v r0 je navestie adresy premennej, v cecku je to pointer R0. Takych prikladov je viac. Dalej rozdiel medzi ASM a C je ten, ze C automaticky rozoznava typ premennej, kym v asembleri sa musite o to starat sam. Priklad unsigned int tmp, je premenna tmp so 16bitmi. Potom tmp++
 , pripocita k tmp 1, v asembleri si musite napisat pricitanie 1 k 16 bitovemu operandu, teda increment nizsej slabiky, skontrolovat pretecenie, increment vyssej slabiky. C to generuje samo. Tychto prikladov je ovela viac a temer kazda konstrukcia v C ma svoj asm ekvivalent. Su konstrukcie kodu, ktore generuje c same, prikladom su cykly a podmienene skoky. Dalsia vec je predavanie parametrov a to je uz trochu implementacne zavisle od architektury cpu. Takze ked ste pochopil asm, C zvladnete bez najmensich problemov. Strukturovane programovanie v C pochopite tiez bez problemov. Takze potom pridu na rad periferie, to sa uz nenaucite hned ale problem moze byt v tom, ako su napisane include subory toho ktoreho prekladaca. Ci Vam bude stacit napisat napr. bit_flag = 1 alebo budete musiet pisat register.bit_flag = 1 a tak dalej. Ale to uz zvladnete sam, opat nie je to ziadna veda, akurat pri niektorych mcu (AVR, ARM) moze zapis nastavenia bitu v riadiacich registroch vyzerat dost, 
 ale teda dost neprehladne... Co sa budete musiet naucit su HW pragmy pre jednotlive architektury, teda napr. small, large - pamatove modely x51.<br><br>Co sa tyka prekladaca C asi budete robit s GNU C pre microchip, potom je HiTech, podla mna lepsi kompilator, ale nazory su rozne. Dolezite je, ze oba sa daju pustit v mode, kde su zakazane len niektore optimalizacie ale casove alebo obmedzenia velkosti kodu nie su.<br><br><br>A. <br><br><br>On&nbsp;Fri, 3 Dec 2010 19:29:49 +0100 (St?edn? Evropa (b?n? ?as))<br> "lm317" <lm317@centrum.cz> wrote:<br>&gt; Zdravim podruhe, popravde receno jako cloveku, ktery se dosud o C <br>&gt;ani C++<br>&gt; vubec ale vubec nezajimal, mi unika rozdil, a doposud jsem zil v <br>&gt;mylne<br>&gt; predstave, ze je to jedno a to same :-) Bylo mi proste receno, at se <br>&gt;co<br>&gt; nejrychleji naucim "cecko pro Majkrocipy", takze predpokladam po <br>&gt;vasich<br>&gt; upozornenich, ze pujde o proste C.<br>&gt; <br>&gt; Dobre co s tim?<br>&gt; <br
 >&gt; Uvazuji uz, ze bych se nejprve vrhnul jen na to C pres moji <br>&gt;oblibenou (ac<br>&gt; zastaralou) architekturu x51 a az po zvladnuti bych se zacal <br>&gt;zaobirat<br>&gt; PICkama. Nebo je to spatne a je lepsi obe mouchy zaplacnout naraz?<br>&gt; <br>&gt; Petr<br></lm317@centrum.cz></body></html>