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