C nebo ASM?
Karel Minarčík
karel.minarcik@seznam.cz
Pátek Květen 22 09:12:46 CEST 2009
Kdyz je pan Gregor vlastni vinou nespokojeny s C,proc to vse tedy nepise v asembleru?
Nebo by mohl take rovnou psat primo ve strojovem kodu kdyby se mu chtelo...
Jejich firma vyrabi zabezpecovaci systemy, zakaznik nepozna v jakem jazyce
byl puvodne vyvijen zakoupeny produkt, ale jsem si jist, ze zakaznik se bude hoodne
zlobit, az mu nekdo ukradne 3 slepice z JZD i presto, ze tam ma nainstalovano
zabezpecovaci zarizeni napojene na ostrahu. A to se muze stat treba diky tomu, ze pan programator
nerozumi pointerum.
KM
Michal Gregor wrote:
>/ Mne se jednalo o kod v asembleru:
/>/ PIC ma specielni registry pro neprimou obsluhu pameti. Finta je v tom ze se
/>/ ty registry po precteni automaticky navysuji, snizuji a podobne. Takze na
/>/ rozdil od C pracuji primo s nimi a vysledny kod je kratky a rychly:
/>/ Pocitej
/>/ addwf POSTINC0,W ; Pricti obsah Pole a prejdi na dalsi bunku
/>/ decfsz Rx1_Pocet_B ; Vse secteno?
/>/ bra Pocitej
/>/
/>/ Kdezto v Cecku:
/>/ Pom=0;
/>/ for (Ukazatel=8;Ukazatel<32+8;++Ukazatel) {
/>/ Pom=Pom+Bufer[Ukazatel];
/>/ }
/>/
/>/ vysledkem je docela dlouhy kod, protoze index na pole se pokazde pocita.
/>/ Jak sem jiz psal jde to optimalizovat, ale vysledny kod je nepronosny na
/>/ jine procesory nebo PC.
/
Další informace o konferenci Hw-list