Ugrađeni asembler za Thumb2 arhitekture

Ovaj dokument pretpostavlja određeno poznavanje programiranja u asemblerskom jeziku. Za sažeti opis skupa instrukcija proučite ARM Thumb-2 Instruction Set Quick Reference Card pod References u nastavku. Ugrađeni asembler podržava podskup skupa instrukcija ARM Thumb-2 opisanog ovdje. Sintaksa nastoji biti što bliža onoj koju definira ARM, prevedenoj u pozive Python funkcija.

Instrukcije rade na 32-bitnim predznačenim cjelobrojnim podacima osim gdje je drugačije navedeno. Većina podržanih instrukcija radi samo na registrima R0-R7: gdje su podržani R8-R15 to je navedeno. Registri R8-R12 moraju se obnoviti na svoju početnu vrijednost prije povratka iz funkcije. Registri R13-R15 čine poveznički registar (Link Register), pokazivač stoga (Stack Pointer) odnosno programski brojač (Program Counter).

Konvencije dokumenta

Gdje je moguće, ponašanje svake instrukcije opisano je u Pythonu, na primjer

  • add(Rd, Rn, Rm) Rd = Rn + Rm

To omogućuje demonstriranje učinka instrukcija u Pythonu. U određenim slučajevima to je nemoguće jer Python ne podržava koncepte poput indirekcije. Pseudokod korišten u takvim slučajevima opisan je na odgovarajućoj stranici.

Kategorije instrukcija

Sljedeći odjeljci detaljno opisuju podskup skupa instrukcija ARM Thumb-2 koji podržava MicroPython.

Primjeri uporabe

Ovi odjeljci pružaju daljnje primjere koda i savjete o uporabi asemblera.

Reference