Pokud jste četli Jak C Programming funguje, pak víte, že tento jednoduchý kousek kódu C spočítá faktoriál 5 (kde faktoriál 5 = 5! = 5 * 4 * 3 * 2 * 1 = 120):
= 1, f = 1, zatímco (A menší nebo rovnu 5) {f = f * a; a = a + 1;}
Na konci realizace programu, proměnná f obsahuje faktoriál 5.
Assembly Language
AC překladač překládá tento kód v C do assembleru. Za předpokladu, že RAM začíná na adrese 128 v tomto procesoru, a ROM (který obsahuje assembleru programu) začíná na adrese 0, pak pro náš jednoduchý mikroprocesor jazyk sestavení může vypadat například takto:
//Předpokládejme, že je na adrese 128 //Předpokládejme, že F je na adrese 1290 CONB 1 //a = 1, 1 SAVEB 1282 CONB 1 //f = 1; 3 SAVEB 1294 LOADA 128 //jestliže a gt; 5 skok na 175 CONB 56 COM7 JG 178 LOADA 129 //f = f * a 9 LOADB 12.810 MUL11 SAVEC 12.912 LOADA 128 //a = a + 1, 13 CONB 114 ADD15 SAVEC 12.816 JUMP 4 //smyčka zpět do if17 STOP ROM
Takže teď otázka je, " Jak se všechny tyto pokyny vypadat v ROM &Quot?; Každá z těchto jazykových Návod k montáži musí být reprezentován binární číslo. Pro jednoduchost předpokládejme, že každý jazyk Montážní návod je přiděleno jedinečné číslo, například takto:
Čísla jsou známé jako operační kódy. V ROM, náš malý program bude vypadat takto:
//Předpokládejme, že je na adrese 128 //Předpokládejme, že F je na adrese 129Addr operačního kódu /Hodnota