Cim zacit ?

Michal tacud.pilot
Středa Březen 17 12:07:48 CET 2004


Samozrejme vsetko co nasleduje je moj osobny nazor na zaklade mojich osobnych skusenosti a nikomu ho nechcem vnucovat atd.

>Co konkretne povazujete na intelovske koncepci pojmenovani za nevhodne ?
Uz aj to, ze intel NEMA v tomto koncepciu. Robil som/robim s 8080, '51 a '196, a rozdiely su prinajmensom znervoznujuce. Jasne, ze s
u to aj rozdielne procesory, ale aj podobne instrukcie su pomenovane rozdielne. Priklad: odcitanie s prenosom je u Z80 SBC (a ak sa
dobre pamatam, tak aj u i8080), u '51 SUBB (zrazu bolo treba nazvat prenos Borrow miesto Carry) a u '196 SUBC (pricom SUBB tu znamen
a odcitanie byte bez prenosu). Rozdiel je naoko nepatrny, ale ak je clovek nuteny robit v 2 a viac procesoroch (co som), minimalne t
o matie.
... no a jedna vec mi na inteli STRASNE vadi (a v tom su vytrvalo systematicki, tak ako aj anglicania v davani veci na opacnu stran
u), a tou je postfix h pre hexa (vratane nutnosti davat 0 pred A0-FF, co pri prefixe je samozrejme zbytocne).

>? Z Vami uvedeno vyplyva, ze treba Z80 mela podle Vas excelentni pojmenovani instrukci ?
No to som sice nenapisal, ale pamatam si, ze ked som prechadzal z i8080 na Z80, bol som velmi prijemne prekvapeny systematickostou u
sporiadania Z80 instrukcii (aj ked som bol ovela prijemnejsie prekvapeny daleko lepsou instrukcnou sadou). Na i8080 som velmi rychle
zabudol, takze konkretne priklady z tohoto porovnania uz asi nikdy nebudu...

> dokonce nepotrebujete ani psat vlastni assembler, staci neco jako makra
Suhlasim, lenze originalny intelovsky asm nemal vlastnosti, ktore sme potrebovali (moznost include suborov a dalsie, uz si presne ne
pamatam) a naopak, mal vlastnosti, ktore sme nechceli (linker dost lahkovazne relokoval kod ci data, ani toto si uz presne nempamata
m). Navyse sme ho tusim ani nemali kupeny. Teraz, ked ma napadne nejaka dalsia zhovadilost (napr. preklad do strankovanej pamate, ko
lko asm take nieco podporuje?) tak mi to kolega do asm za hodinku dopise.
... no a makrami asi nevyriesite problem prefix/postfix...

Upozornujem, ze nasledovne tvrdenia su ciste moj uhol pohladu a neznamenaju, ze taky styl prace je univerzalne vhodny:
> kod zapsany v originalni syntaxi ...
Zatial som nic pouzitelne dlhsie ako 20 riadkov nevidel, a kratsie si "preprocesnem rucne". Navyse nas asm ma implementovane aj nati
ve nazvy instrukcii, zial, ostatne "features" intelu nie (napr. spominany postfix pre hexa).
>bude nucen cist kod v me syntaxi
Nuz, som vlastne rad, ze to tak je, ak mi niekto ukradne zdrojak, bude mu dost nanic. A je malo pravdepodobne, ze zamestnam cloveka,
ktory tento procesor uz detailne pozna tak, ze mu bude robit problem sa preorientovat na inu syntax.
>Jak moc se zvysi moje produktivita, kdyz budu pouzivat svou upravenou syntaxi
Toto vlastne bola najvyraznejsia motivacia pre tvorbu vlastneho asm. U i196 maju bytove operacie explicitne pismenko B na konci inst
rukcie (napr. ADDB = add byte), kym wordove nemaju nic (ADD = add word). Kedze sme dvaja nezavisle na sebe robili pravidelne tu istu
chybu (mylili sme si wordove a bytove instrukcie), novy asm ma explicitne ADDB pre byte a ADDW pre word. Okrem toho su implementovan
e uz velakrat spomenute prefixy, kratke skoky su Bxx (ako Branch) resp. BRA pre nepodmienecny; kym dlhe JMP vratane nepriameho (podo
bne volania podprogramov BSR/JSR)  - toto vyplynulo z potreby portnut rozsiahlejsi projekt zo 65C02 na '196.
Ked uz sme pritom, prave 65C02 je dobry priklad pomerne minimalistickej architektury s velmi prehladnym instrukcnym suborom (a k cit
atelnosti a estetickosti kodu prispieva aj taka malickost, ze su vsetky skratky 3pismenove).

Vsetkym citatelom konferencie sa ospravedlnujem za rozsiahly mierne OT, len som chcel vysvetlit/obhajit nas netradicny pristup.

Jano Waclawek





Další informace o konferenci Hw-list