나는 이것이 매우 일반적인 질문이라는 것을 알고 있습니다. 그러나 나는 다른 마음을 가지고 있습니다. 나는 여기에 그것을 분명히하려고 노력할 것입니다.
내가 아는 것에서 CPU가 실행하는 모든 명령은 기계 언어이며 모든 CPU가 할 수있는 것은 ALU와 트랜지스터 (하드웨어 수준에 가면) 덕분에 산술 연산을 수행하는 것입니다.
그러나 이것은 이해하는 것보다 타이핑하기가 더 쉽습니다. 따라서 모든 CPU가 더하기, 빼기 등을 수행하는 경우 print Hello World라고하는 JAVA 프로그램과 같은 프로그램은 어떻게이 산술 연산으로 실행됩니까?
나는이 프로그램이 어떻게 CPU에 추가 된 것으로 변환됩니까?
추신 :이 질문이이 웹 사이트에 해당되지 않는다면 사과드립니다.
-----두 번째 부분-----
괜찮아. 이 열정에 열정적으로 답변 해 주셔서 감사합니다. 나는 모든 답변에 댓글을 달고 다시 질문하는 것보다 내 질문을 약간 수정하는 것이 낫다고 생각했습니다.
여기 있습니다.
먼저, 모두 Hello World의 예를 구체적으로 대답했습니다. 이건 내 잘못이야 나는 이것을 일반적으로 유지해야했다. Hello world 예제는 출력 장치와 그 처리가 CPU에만 국한되지 않는 방법에 대해 의문을 제기합니다.
또한 많은 사람들이 CPU가 단순한 추가 이상의 기능을한다는 사실을 알게되었습니다. 동의합니다. 나는 단지 그것을 쓰지 않고 그것을 완전히 가정했습니다. 내가 이해 한 바에 따르면, 이것은 프로세스입니다.
메모리에서 명령 읽기 (데이터 및 주소 버스 및 프로그램 카운터를 사용)
- CPU 내부의 레지스터에 데이터 저장
- 이제 ALU는 명령을 디코딩 한 후 산술 연산을 수행하거나 if 유사 명령 인 경우 점프를 수행합니다.
- 그런 다음 출력 장치 등과 같이 필요한 경우 다른 리소스와 통신하십시오. 이 이상의 프로세스는 현재로서는 사소합니다.
따라서 CPU가 명령을 해독하고 산술 연산을 수행하기로 결정하는 3 단계에서 (현재 명령 점프와 같이 수행 할 다른 연산이 없다고 가정합니다.) 산술 연산이 대부분 수행되므로. ) 여기에서 시각화가 끝납니다. 내 프로그램의 명령이 CPU에 대한 산술 연산 방법입니다. 그것은 산술 연산을 수행하고 그 명령은 그 목적을 제공합니다.
이번에는 내가 분명하게 해주길 바랍니다.
추신 : 나는 ALU가 우리의 프로그램에서 수행하는 실제 산술 연산에만 국한되지 않는다는 것을 큰 가정으로 삼고 있습니다. 모든 명령을 실행합니다.이 명령은 더하기 또는 빼기하여 명령을 의미합니다. 수득. 내가 틀렸다면 아래 답변보다 내 질문에 올바르게 대답하십시오.