Warning
This page is located in archive.

Vybraná instrukční sada pro STM32

V tabulce níže se nachází zjednodušená instrukční sada, která bude použita v rámci výuky předmětu mikrokontroléry. Kompletní dokumentaci naleznete v PDF dokumentu Instrukční sada STM32F4.

ARM Cortex-A Procedure Call Standard

Instrukce Argument(y) Popis Příklad Význam Ovlivněné příznaky (Flags)
AND {Rd}, Rn, Op2 Logický AND AND R0, R1 R0 = R0 AND R1 N,Z,C
B{cond} label Skok {conditional} B loop
BCC loop
BNE loop
Nepodmíněný skok na loop
Skok, pokud Carry flag (C) je nula
Skok, pokud Zero flag (Z) je nula
-
BL{cond} label Skok s návratem {conditional} BL podprogram Volání podprogramu,
návratová adresa se uloží do LR
-
BX Rm Nepřímý skok BX LR Návrat z podprogramu na adresu uloženou v registru Rm -
EOR {Rd}, Rn, Op2 XOR EOR R0, R1 R0 = R0 XOR R1 N,Z,C
LDR Rt, [Rn, #offset] Načti word do registru LDR R0, [R1, R2]
LDR R0, =constant
R0 = hodnota na adrese (R1+R2)
R0 = constant
-
LSR, LSL {Rd}, Rn, <Rs / #n> Logický posuv vpravo/vlevo LSR R0, R0, #1 R0 = R0 » 1 N,Z,C
ORR {Rd}, Rn, Op2 Logický OR OR R0, R1 R0 = R0 OR R1 N,Z,C
POP reglist Pop registr/s ze zásobníku POP {R0-R5} Načti 6 registrů R0-R5 ze zásobníku -
PUSH reglist Push register/s na zásobník PUSH {R0-R5} Ulož 6 registrů R0-R5 do zásobníku -
STR Rt, [Rn, #offset] Zapiš word do registru STR R0, [R1, R2] Ulož R0 na addru (R1+R2) -
SUB {Rd}, Rn, Op2 Odečti SUB R0, #1 R0 = R0 - 1 N,Z,C,V

Pro skok (B{cond}) je třeba uvést podmínku za které se má skok provést. Kompletní tabulku lze nalézt v datasheetu na str. 67

courses/b2m37mam/tutorials/asm_stm32.txt · Last modified: 2022/11/23 08:57 by krskajo1