Odkrycie wiedza
/ Knowledge Discovery >> Odkrycie wiedza >> tech >> komputer >> oprogramowanie komputerowe >>

Jak mikroprocesorów Work

o rejestru instrukcji. Ludzie nie są szczególnie dobry w pamiętając bitowych wzorców, więc zbiór krótkich słowach są zdefiniowane do reprezentowania różnych wzorów bitowych. Ten zbiór słów nazywa się asemblera procesora. Asembler może tłumaczyć słowa w ich wzorów bitowych bardzo łatwo, a następnie wyjście asemblerze jest umieszczony w pamięci mikroprocesora do wykonania. Największa

Oto zestaw instrukcji asemblerowych że projektant może stworzyć dla Prosty mikroprocesor w naszym przykładzie:

  • Loada mem - Obciążenie zarejestrować od adresu pamięci Największa
  • LOADB mem - Obciążenie rejestr B od adresu pamięci Największa
  • CONB con - załadować stała wartość w rejestrze B Największa
  • SAVEB mem - Zapisz zarejestruj B do adresu pamięci Największa
  • SAVEC mem - Zapisz zarejestruj C do adresu pamięci
  • ADD - Dodaj A i B i przechowywać Wynik w C Największa
  • SUB - Odejmij A i B i zapisać wynik w C Największa
  • MUL - mnożenie A i B i zapisać wynik w C Największa
  • DIV - Divide A i B i zapisać wynik w C Największa
  • COM - Porównaj A i B i zapisać wynik w teście Największa
  • JUMP addr - skok do adresu Największa
  • JEQ addr - skok, jeśli równe, zająć Największa
  • JNEQ addr - skok, jeśli nie równe, zająć
  • JG addr - skok, jeśli jest większa niż, zajęcia
  • JGE addr - skok, jeśli większa lub równa, zająć Największa
  • JL addr - skok, jeśli mniej niż zająć
  • JLE addr - skok, jeśli mniejsza lub równa, zajęcia
  • STOP - wykonanie Zatrzymaj

    Jeśli przeczytałeś Jak C Programming działa, to wiesz, że ten prosty kawałek kodu C oblicza silnię 5 (gdzie silnia 5 = 5! = 5 * 4 * 3 * 2 * 1 = 120): Największa w = 1; f = 1; while (a < = 5) {f = f * a; a = a + 1;}

    Na koniec realizacji programu, zmienna f zawiera silni 5. Największa Zgromadzenie Język

    AC kompilator tłumaczy ten kod C do asemblerze. Zakładając, że RAM rozpoczyna się od adresu 128 w tym procesorze i pamięci ROM (który zawiera program asemblerze) rozpoczyna się od adresu 0, to dla naszego prostego mikroprocesora może wyglądać asemblera tak: Największa //Załóżmy, że jest pod adresem 128 //Załóżmy F jest pod adresem 1290 CONB 1 //a = 1; 1 SAVEB jeden tysięcy dwieście osiemdziesiąt dwa CONB 1 //f = 1; 3 SAVEB 1294 Loada 128 //jeśli > 5 skok do 175 CONB 56 COM7 JG 178 Loada 129 //f = f * a; 9 LOADB 12810 MUL11 SAVEC 12912 Loada 128 //a = a + 1; 13 CONB 114 ADD15 SAVEC 12816 JUMP 4 //pętla z powrotem do if17 STOP ROM

    Page [1] [2] [3] [4] [5] [6] [7] [8] [9]