hwechtla-tl:
Teos: 80x86-konekieli
Kirjoituskone, jossa on apumoottoreita ja
lisäosia. Näppäimistökin on jäljellä, mutta lisäksi chordausnäppäimiä
ja hienosti suunniteltu järjestelmä joka yrittää ennustaa mitä näppäintä
kirjoittaja seuraavaksi painaa. Tai sitten risteilevät polut metsässä,
ja karttana pitää käyttää taulukkoa. Polkuja ajetaan turbo-segwaylla.
Miksi?
- 80x86-konekieli, kuten jokainen konekieli, on tietyn
mikroprosessorin sellaisenaan ymmärtämä kieli ja siksi hyvin matalan
tason kieli. Tällaisella kielellä voi parantaa ohjelmiensa
suoritusnopeutta, mutta ohjelman kirjoittamisen vaiva on suurempi ja
sen suorittaminen on sidottu tiettyyn mikroprosessoriarkkitehtuuriin.
- Konekielillä kirjoittaminen muistuttaa vähemmän leikkimistä
varsinaisten sisältöasioiden parissa ja edellyttää sen sijaan
taulukkomaista tietoutta mikroprosessorin eri rekistereiden
erityiskäytöistä, eri komentojen suoritusnopeuksista ja niin
edelleen. Kirjoituskone kuvaa tätä taulukkomaisuutta ja edellä
mainittua alkukantaisuutta.
- 80x86-konekieli yleistyi valtavasti Intel-prosessorien menestyksen
myötä. Niinpä sitä kehitettiin ajan mittaan kaikenlaisiin suuntiin
ja siihen lisättiin ominaisuuksia. Lopputulos oli merkillinen
sekasotku toinen toistaan kätevämpiä "yhdistelmäkomentoja".
- 80x86-suorittimet ovat suoritusnopeudessaan erityisen riippuvaisia
siitä, että yhtäaikaistavat peräkkäisten komentojen suoritusta. Tämä
on vaikeaa "haaroissa", joissa ohjelman suoritus voi jatkua kahteen
eri suuntaan. Jos suoritin ennustaa väärin, se saattaa joutua
perumaan tilaansa jopa 20 nanosekunnin ajan (!!!).
Kuvia netistä:
IncrementCount:
mov cx,cntDigits ;
mov di,counter+cntDigits-1
std ; go from LSB to MSB
stc ; this is our increment
pushf ; save carry flag
.top
mov ax,000fh ; convert from ASCII BCD to BCD
and al,[di] ; get next digit of counter in al
popf ; recall carry flag
adc al,ah ; add these digits
aaa ; convert to BCD
pushf ;
add al,'0' ; convert back to ASCII BCD digit
stosb ; save and increment counter
loop .top ;
popf ; recall carry flag
ret ;
näyttely: ohjelmointikielten kuvat
kommentoi
(viimeksi muutettu 15.01.2012 09:00)