Instrukcje dostępu do procesora [zamknięte]

-5

Nie rozumiem, jak CPU wie, kiedy musi wskazać lub spojrzeć na określone miejsce, w którym przechowywany jest jakiś format instrukcji maszyny? Dokładnie, nie wiem, w jaki sposób CPU wie, które miejsce w pamięci musi umieścić w liczniku programów (zestaw instrukcji), zanim faktycznie zacznie wykonywać tę konkretną instrukcję. Mam nadzieję, że to pytanie nie jest zbyt mylące, ponieważ przegrałem: D

Newbie
źródło
Myślę, że to pytanie jest zbyt szerokie. To dość długi i złożony temat do opisania. Chciałbym zbadać licznik programu i trochę go przeczytać. Jeśli znajdziesz coś bardziej szczegółowego, możesz zadać nowe pytanie.
DrZoo
Obawiałem się, że jest zbyt szeroki, spróbuję zbadać, jak mówisz.
Newbie
To sprawia, że ​​jest to bardzo interesująca lektura, ale może być myląca w oparciu o wiedzę, którą ktoś ma. Z mojego osobistego doświadczenia dowiedziałem się, jak to działa, biorąc zajęcia z architektury komputera, programowania zespołów i systemów operacyjnych. Architektura komputera to miejsce, w którym uczono mnie, jak to działa, posiadanie zespołu i systemu operacyjnego było dla mnie tylko premią. Oto materiał na temat PC (licznik programów) i IR (rejestr instrukcji) . To krótkie, ale myślę wystarczająco dużo, aby pomóc Ci wiedzieć, od czego zacząć.
DrZoo
CPU wie z powodu instrukcji procesora, które aktualnie przetwarza. Powinieneś zrobić więcej badań i edytować to pytanie.
Ramhound
Tak, to interesujące, a twój materiał jest poprawny Licznik programów to słaba nazwa tego, co licznik programów robi xD
Newbie

Odpowiedzi:

0

Nie wiem, w jaki sposób jednostka centralna wie, która lokalizacja pamięci musi zostać umieszczona w liczniku programu (zestaw instrukcji), zanim faktycznie rozpocznie wykonywanie tej konkretnej instrukcji.

Właściwie to nie jest takie skomplikowane.
Rejestr licznika programów (aka PC) zawiera adres pamięci (następnej) instrukcji do wykonania (pobrania i).
(Zakładając, że używamy procesora z architekturą stosu).

  • W przypadku resetowania procesora (np. Po włączeniu zasilania) komputer PC jest automatycznie ładowany z predefiniowanym adresem, który ma być lokalizacją pierwszej instrukcji programu ładującego.

  • Gdy wykonywana instrukcja jest dowolnym rodzajem operacji rozgałęzienia, skoku lub wywołania, adres docelowy jest obliczany i ładowany do rejestru PC. Następna instrukcja jest (pobierana i) wykonywana z tego adresu docelowego.

  • Gdy wykonywana instrukcja jest operacją powrotu, adres zwrotny jest wyskakiwany ze stosu i ładowany do rejestru PC. Następna instrukcja jest (pobierana i) wykonywana z tego adresu zwrotnego.

  • Dla wszystkich innych instrukcji rejestr PC jest po prostu zwiększany (tzn. liczy się „), aby przejść do następnej instrukcji w pamięci. Oznacza to, że instrukcje są (pobierane i) wykonywane sekwencyjnie (dopóki nie zostanie wykonana instrukcja rozgałęzienia lub wystąpi przerwanie).

  • Jeśli wystąpi przerwanie, to po zakończeniu bieżącej instrukcji zawartość zaktualizowanego rejestru komputera jest wypychana na stos (do późniejszego wykorzystania jako adres zwrotny). Rejestr PC jest załadowany adresem programu obsługi przerwań, który jest następnie wykonywany.

sawdust
źródło
0

Po kilku badaniach znalazłem odpowiedź. Na samym początku procesor otrzymuje adres inicjalizacji naszej aplikacji, gdy nasza aplikacja jest uruchomiona, na przykład adres ten jest zwykle 0x00000000 dla infrastruktury 32-bitowej, po tym jak początkowy mikroprogram zaczyna się i na podstawie adresu inicjalizacji dostarcza licznik programu z pamięcią, gdzie instrukcja jest przechowywany. Powiem tylko, że przepraszam, ponieważ tutaj postawiłem skomplikowane pytanie, zanim skończyłem badania. Mam nadzieję, że ktoś uzna to za przydatne.

Newbie
źródło