40 likes | 159 Views
Instrukce procesoru 2. Instrukce a příznakové registry. Záměrným vedlejším efektem provedení instrukce obvykle bývá určité nastavení příznakových bitů v procesoru, který za tímto účelem obsahuje takzvaný registr příznaků.
E N D
Instrukce a příznakové registry • Záměrným vedlejším efektem provedení instrukce obvykle bývá určité nastavení příznakových bitů v procesoru, který za tímto účelem obsahuje takzvaný registr příznaků. • Registr příznaků využívají především podmíněné skoky a instrukce pro přičítání nebo odečítání s přenosem. • Způsob nastavování příznaků bývá obvykle pro určitou skupinu instrukcí stejný. Zvláštní funkci z tohoto hlediska zastávají instrukce pro porovnávání, protože nemění hodnotu svých operandů, ale pouze nastavují příznakové bity (anglicky flags). • Téměř vždy jsou přítomny příznakové bity : • N - negative - nastavuje se, když je výsledkem operace záporné číslo • Z - zero - nastavuje se, když je výsledkem operace nula • C nebo CY - carry - nastavuje se, když došlo při sčítání k přenosu. Při odčítání nebo porovnávání se nastavuje jako výpůjčka, nebo jako negace výpůjčky, to závisí na architektuře CPU. • V nebo OV - overflow - nastavuje se, pokud došlo při operaci k přetečení • Různé procesory mohou implementovat více, ale jen výjimečně méně příznakových bitů.
Řídící instrukce • Tyto instrukce mění buď tok programu, nebo způsob, jakým procesor funguje. • Základní řídící instrukcí je instrukce skoku (typicky má mnemoniku JMP), která říká, že vykonávání programu nepokračuje následující instrukcí, ale instrukcí která je uložena na adrese definované operandem instrukce JMP. • Podobnou funkci má instrukce podmíněného skoku, která se používá v kombinaci s instrukcemi nastavujícími příznakové bity k větvení programu. Ke skoku dojde pouze za předpokladu, že jsou určitým způsobem nastaveny příznakové bity procesoru. Následující instrukce podmíněného skoku (např. JMPR CC_NZ, 1234h - skoč, když není nastaven příznak Z - zero) může například "přehodit výhybku programu", pokud výsledkem kontrolního součtu nebyla nula. • Opakovaně využívané sekvence kódu je možné vyvolat pomocí instrukce volání podprogramu (typicky "CALL"), konec podprogramu označuje instrukce návratu z podprogramu (typicky "RET" nebo "RETURN"). • Kromě toho mohou některé instrukce měnit způsob chodu procesoru, který může být přepínán mezi dvěma různými soubory instrukcí - mezi "ARM" módem a "thumb" módem. Přičemž instrukční soubor ARM je optimalizovaný na rychlost, zatímco instrukční soubor "thumb" je optimalizovaný na velikost kódu.
Kódování instrukcí • Aby mohly být instrukce vykonávány procesorem, je nutno je uložit do polovodičové paměti, jako sekvence několikaciferných dvojkových čísel. Tato sekvence se nazývá strojový kód. • Výrobce procesoru proto pro každou instrukci definuje, jakým způsobem má být zakódována do paměti počítače. • Výrobce procesoru může například stanovit, že každá instrukce je zakódována pomocí 16 bitů (neboli dvojkových cifer). • do prvních šesti bitů se zakóduje mnemonika instrukce (šestibitové číslo dovolí implementovat 64 typů instrukcí - mnemonik), • do druhých pěti bitů se zakóduje první operand, • do posledních pěti bitů se zakóduje druhý operand. • Ve skutečnosti bývá kódování instrukcí mnohem složitější, avšak princip je stejný.