BPC-MIC04 - Adresovací módy, podprogramy
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
z podprogramu.
Makra
• Makro je šablona pro sekvenci instrukcí.
• Je-li makro jednou definováno, následný odkaz
na jméno makra je nahrazen sekvencí instrukcí
makra.
Definování a použití makra
Definice makra
copyWord: macro
lda \1
sta \2
lda \1+1
sta \2+1
endm
Použití makra
zdroj: ds.w 1
cil: ds.w 1
copyWord zdroj, cil
Porovnání podprogramů a maker
• Podprogramy zkracují délku kódu, ale
zpomalují rychlost programu o režii spojenou s
předáváním parametrů, návratové hodnoty,
ukládáním a vyzvedáváním návratové adresy.
• Makra prodlužují délku výsledného kódu, ale
nezpomalují provádění programu.
• Obojí zpřehledňují zápis programu a usnadňují
jeho modifikaci.
inline funkce
• Od C99 lze používat inline funkce.
• Specifikátor inline je doporučením pro
překladač, aby generoval co nejrychlejší volání
funkce.
• Překladač toto doporučení může ignorovat.
inline funkce
• Častou implementací je vložení kódu funkce
na místo, kde je funkce volána obdobně jako
při rozvoji makra.
– Protože není použito JSR, CALL odpadá zdlouhavé
ukládání parametrů do zásobníku.
– Oproti makrům jsou však kontrolovány datové
typy parametrů a případně se provedou jejich
implicitní konverze na typy požadované funkcí.
inline funkce
// a definition using static inline
static inline int max(int a, int b)
{
return a > b ? a : b;
}