Hüvelykujj

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2020. március 6-án felülvizsgált verziótól ; az ellenőrzéshez 1 szerkesztés szükséges .

A Thumb  egy ARM processzormód, amely csökkentett utasításkészletet használ . 36 utasításból áll, amelyek a szabványos ARM architektúra 32 bites utasításkészletéből származnak, és 16 bites kódokká konvertálták.

A Thumb utasítások hossza fele a szabványos 32 bites utasítások hosszának, ami jelentősen csökkentheti a szükséges programmemória mennyiségét (kb. 30%-kal), ráadásul olcsóbb 16 bites memória használatát is lehetővé teszi.

Végrehajtáskor ezeket az utasításokat a processzor dekódolja azonos számú ciklusban végrehajtott egyenértékű ARM műveletekké. Az ARM <-> THUMB átkapcsolása BX paranccsal vagy az üzemmód megszakítással / kivétellel történő váltásával lehetséges.

A THUMB utasításkészlet nem ortogonális és nem túl elegáns. A csapatok lehetővé teszik, hogy csak 8 junior RON-nal dolgozzon közvetlenül; csak néhány művelet alkalmazható 8 vezető RON-ra (beleértve az SP-t, LR-t, PC-t). A következő ARM funkciók nem érhetők el a készletben: szorzás akkumulációval/bővítéssel, társprocesszoros műveletek, hozzáférés a PSR-hez és más kontextusok regisztereihez, SWAP atomcsere. Feltételes végrehajtás, a 2. operandus eltolása az általános célú utasításokban, a háromcímes műveletek (kivéve az ADD és SUB), az automatikus növelés és automatikus csökkentés címzési módok nem elérhetők. Minden adatfeldolgozási parancs feltételkódot állít be. A BL parancsot két szóra kell kódolni, az eltolás 23 bitre korlátozódik. A veremhez való hozzáférést (többregiszteres PUSH és POP parancsok) a 13. regiszter kényszeríti, a verem lefelé nő.

Lásd még