10. Asembler
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 DOCX.
Assembler
nízkoúrovňový jazyk, který má přímý odraz ve strojovém kodu
překladač - stejnosměrný
v dnešní době jeho význam klesá
využití: vytvoření optimálního kodu, programy s nějnižší pamětí (velikostně)
Logický součin - maskování
and
Logický součet
or
Exkluzivní součin - hledá se stejný bit
xor
Logická negace
neg
Porovnání
cmp, rd, rs - nastavuje příznaky, arit-log. operace (defaultně)
Příklad naplnění 16 bitového registru hodnotou
mov r1, #0x55 horní oktet
lsl r1, #8
orr r1, #0x55 spodní oktet
Symbolické adresy
zvolení nápovědného řetězce
smí obsahovat anglickou abecedu, 0-9 a _, nerozlišuje malá a velká písmena
překladač v průběhu překládá symboly na čísla (většinou ve 2. oběhu)
Definice: místo v paměti označuje návěstí - label
misto_1 mov r1,r5
Použití symbol. adresy v instrukci skoku
bra misto_1 -výkon programu se přenese (nepodmíněný skok)
beg misto_1 -nepodmíněný skok
jms podprog_3 -volání podprogramu
Direktivy
Direktivy slouží pro vyhrazení paměťového prostoru, uložení konstant do paměti, výběr paměťového prostoru, nastavení lokačního čítače, výběr instrukční sady, vložení zdrojového textu z externího souboru, určení konce zdrojového textu.
jsou to příkazy (pokyny) pro překladač
Přímé a nepřímé adresování
adresování - určení místa kam chceme uložit nebo z kterého chceme číst
ldr - load register -načte do registru obsah paměť slova
str - -uloží obsah registru do paměti
Př. ldr r3, promena_1 (přímé adresování)
promena_1 dat
-Risc procesor nevyužívá
nepřímé adresování: adresa operandu je uložena v registru
ldr r0, [r5]
r5 je adresa
-celý registr je využit, lze modifikovat registr
str r0, [r7]
nepřímé adresování s posunem
ldr r1, 3[r0]
3 je posun