Wiem, że to bardzo częste pytanie. Ale mam inny punkt widzenia. Spróbuję to tutaj wyrazić.
Z tego, co wiem, każda instrukcja wykonywana przez procesor jest w języku maszynowym i wszystko, co może zrobić, to wykonywanie operacji arytmetycznych dzięki ALU i jego tranzystorom (jeśli idziemy na poziomie sprzętowym).
Jest to jednak łatwiejsze do wpisania niż do zrozumienia. Więc jeśli wszystko, co robi procesor, to dodawanie, odejmowanie itp., To w jaki sposób program, powiedzmy program JAVA z komunikatem print Hello World, wykonany za pomocą tych operacji arytmetycznych?
Mam na myśli, jak ten program jest konwertowany na coś, co jest tylko dodatkiem do procesora?
PS Jeśli to pytanie nie dotyczy tej witryny, przepraszam.
-----Część druga-----
W porządku. Dziękujemy wszystkim za szybką odpowiedź i entuzjazm. Pomyślałem, że lepiej trochę zmodyfikować moje pytanie, niż komentować wszystkie odpowiedzi i zadawać je ponownie.
Więc oto jest.
Po pierwsze, wszyscy odpowiedzieli konkretnie na przykład Hello World. To moja wina. Powinienem był zachować to ogólne. Przykład Hello world stawia pytanie o urządzenia wyjściowe i o to, jak jego przetwarzanie nie ogranicza się tylko do procesora, co słusznie pojawia się w twoich odpowiedziach.
Również wielu z was zwróciło mi uwagę, że procesor robi coś więcej niż tylko dodawanie. Zgadzam się z tym. Po prostu tego nie napisałem i przyjąłem to do końca. Z tego, co rozumiem, jest to proces:
odczytać instrukcję z pamięci (używając magistrali danych i adresów oraz liczników programów)
- przechowywać dane w rejestrze wewnątrz procesora
- Teraz ALU wykonuje operacje arytmetyczne, oczywiście po dekodowaniu instrukcji, lub wykonaj skok, jeśli jest to instrukcja podobna
- A następnie w razie potrzeby komunikowanie się z innymi zasobami, np. Z urządzeniem wyjściowym i tak dalej. Procesy poza tym są na razie trywialne.
Więc w kroku 3, w którym CPU dekoduje instrukcję i decyduje się wykonać operację arytmetyczną (tutaj zakładamy, że nie ma innej operacji do wykonania, jak przeskoczenie bieżącej instrukcji .. ponieważ operacje arytmetyczne są w większości wykonywane .. więc będziemy trzymać się tego ) Tutaj kończy się moja wizualizacja. Jak instrukcja z mojego programu jest po prostu operacją arytmetyczną dla CPU. Wykonuje tę operację arytmetyczną i ta instrukcja służy swojemu celowi.
Mam nadzieję, że tym razem wyraziłem się jasno.
PS Przyjmuję tutaj duże założenie, że ALU nie ogranicza się tylko do faktycznej operacji arytmetycznej, którą wykonujemy w naszych programach, a raczej wykonuje wszystkie instrukcje, które są teraz w formie binarnej, dodając lub odejmując je itp., Aby uzyskać wynik, że są przeznaczone poddać się. Jeśli się tutaj mylę, poniższe odpowiedzi poprawnie odpowiedzą na moje pytanie.