Peukalo

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 6. maaliskuuta 2020 tarkistetusta versiosta . vahvistus vaatii 1 muokkauksen .

Thumb  on ARM-prosessoritila, joka käyttää rajoitettua käskysarjaa . Se koostuu 36 käskystä, jotka on otettu standardin ARM -arkkitehtuurin 32-bittisestä käskyjoukosta ja muutettu 16-bittisiksi koodeiksi.

Thumb-käskyjen pituus on puolet tavallisten 32-bittisten käskyjen pituudesta, mikä voi merkittävästi vähentää tarvittavaa ohjelmamuistia (noin 30 %) ja lisäksi mahdollistaa halvemman 16-bittisen muistin käytön.

Suoritettuna prosessori dekoodaa nämä käskyt vastaaviksi ARM-operaatioiksi, jotka suoritetaan samassa määrässä jaksoja. ARM <-> THUMB vaihto on mahdollista BX-komennolla tai vaihtamalla toimintatilaa keskeytyksellä/poikkeuksella.

THUMB-käskysarja ei ole ortogonaalinen eikä kovin tyylikäs. Tiimien avulla voit työskennellä suoraan vain 8 junior RON:n kanssa; vain muutamat toiminnot ovat sovellettavissa 8 vanhempiin RON:iin (mukaan lukien SP, LR, PC). Seuraavat ARM-ominaisuudet eivät ole käytettävissä sarjassa: kertominen keräämisellä/laajennuksella, rinnakkaisprosessoritoiminnot, pääsy PSR:ään ja muiden kontekstien rekistereihin, SWAP-atomivaihto. Ehdollinen suoritus, 2. operandin siirto yleiskäskyissä, kolmen osoitteen toiminnot (paitsi ADD ja SUB), automaattinen lisäys ja automaattinen vähentäminen eivät ole käytettävissä. Kaikki tietojenkäsittelykomennot asettavat ehtokoodit. BL-komento pakotetaan koodaamaan kahdeksi sanaksi, jolloin offset on rajoitettu 23 bittiin. Pääsy pinoon (monen rekisterin komennot PUSH ja POP) on pakotettu 13. rekisterin toimesta, pino kasvaa alaspäin.

Katso myös