Produkty Novinky Články Návody Kontakty

Obecné registry

Procesor má sadu šestnácti 32-bitových registrů R0 - R15 a několik speciálních registrů. Pro práci s pamětí jsou k dispozici pouze Load/Store instrukce. Všechny datové operace jsou prováděny nad polem registrů R0 až R15.
​
        .data
num1:   .word   0
num2:   .word   0
res:    .word   0
​
        .text
        LDR     R6, =num1       @ R6 = adresa num1
        LDR     R0, [R6]        @ R0 = obsah adresy num1
        LDR     R1, [R6, #4]    @ R1 = obsah adresy num2
        ADD     R0, R0, R1      @ R0 = R0 + R1
        STR     R0, [R6, #8]    @ ulož R0 na adresu res
​
Příklady v assembleru používají syntaxi GNU assembleru. Jednořádkový komentář pro platformu ARM začíná znakem @ čili zavináč.
R0
R1
R2
R3
R4 Low registers
R5
R6
R7
R8
R9
R10 High registers
R11
R12
R13 SP -Stack pointer
R14 LR - Link register
R15 PC - Program counter
Tabulka 1.1 Obecné registry
Obecné registry R0 - R15 jsou určeny pro datové operace. Všechny datové operace, tzn. aritmetické operace, logické operace, posuny a rotace, jsou prováděné nad sadou obecných registrů.
Pokud například potřebujete sečíst dvě čísla, uložená v paměti, musí se nejdříve natáhnout do registrů, provést součet a výsledek pak uložit do paměti.
Pole registrů R0 až R15 zobrazuje tabulka 1.1.
  • Registry R0 - R7 jsou označované jako Low registers (dolní registry). Tyto registry lze použít ve všech 32-bitových Thumb-2 instrukcích a také ve všech 16-bitových instrukcích Thumb.
  • Registry R8 - R12 jsou označované jako High registers (horní registry) a lze je použít ve všech 32-bitových instrukcích Thumb-2, ale ne ve všech 16-bitových instrukcích Thumb.
  • Registr R13 je ukazatel vrcholu zásobníku Stack pointer - SP. Cortex-M3 má dva ukazatele zásobníku, Main Stack Pointer - MSP a Process Stack Pointer - PSP.
  • Registr R14 je Link register - LR a je vyhrazen pro uložení návratové adresy při volání podprogramu například instrukcí BL (Branch and Link).
  • Registr R15 je čítač instrukcí Program counter - PC a obsahuje adresu následující prováděné instrukce.