( bucko | 2013. 12. 18., sze – 22:52 )

Válasz saxus üzenetére

Régen az ember gondosan kiválasztotta a platformot. (Ami a fiókban volt:)
Olyan szempontok játszottak, hogy a 12 centtel olcsóbb maszkprogramozott processzorban pontosan 3872B programterület és 96B RAM van. Sűrűn számolni kell egy bazinagy képletet, amire egyrészt nincs idő, másrészt van két 8 bites regisztered az A meg az X. (akkumulátor és index) Egy 16 bites összeadás néhány szubrutin hívásból meg is van ...

A kolléga tervezte a bipoláris videoprocesszort. 16 bit 8MHz órajel. Egy karakter alatt 8 videociklust tudok futtatni ...... 22 bites utasításkészlet kell. 300 db IC, 500 szó program, és két hétig rajzolgatott. A műszerésznő összerakta 2 nap alatt, a 2 elkötés kimérése komótosan 1 nap. Aztán működött. Utána csinálod?

Régen a C kódot asm lista alapján optimalizálták. A pipeline megjelenése után súlyosabb lett a helyzet. A Motorola meg G5(?) platformon, tán 128-ból 96 rename regiszter, olyan fordítót készitett, hogy megháromszorozta a futási sebességet. (Ez olyan nem Intel, hanem Motorola-IBM platform:)

Egy biztos: Ilyen módon megszerzett tudással jobban meg lehet érteni, hogy a 2x akkora kód miért fut 2x annyi ideig! Ezt a szoftveresek túlnyomó többsége nem látja.

Ime egy gyönyörű hardvertámogatott interrupt rutin fénykoromból, elég gyorsan futott:
org 18h
lda ncdcd ;reset decoder
ret