[3] 기계어란?

2022. 3. 30. 18:32C언어

기계어란?

- 기계 장치에게 연산을 시키기 위해 하는 명령 

 

 

Assembly

- Code, Language

- CPU의 제조사 별 Assembly코드가 각각 다르다

- AMD, INTEL = X86기반 프로세서

- ARM = 설계만 한다.

 

 

 

하이레벨, 로우레벨? High Level, Low Level

- High Level Language = 인간이 사용 하는 언어 ex) C#, Java, C++... 등등을 

- Low Level Language = 컴퓨터가 사용하는 언어 

 

인간 (자연어) - High Level

------------------------------

기계 (기계어) - Low Level

- C언어는 기계어에 흡사하다고 보면된다.

 

 

 

 

프로그램의 실행 과정

1. 사용자 명령

 → 주기억 장치에서 보조기억장치로 복사

 

2. 실행 이미지 로드(기계어 포함)

 → 보조 기억창치에서 인스턴스 생성

 

3. 인스턴스 생성 

   Copy된 것을 Instance라고 함

 

4. 기계어 코드 실행

  → CPU에서 기계어 코드를 실행한다. 

 

 

 * 프로그램을 실행시켜서 생성된 인스턴스를 프로세스 라고 부른다.

 

 

<실행 순서>

1. 주 기억장치  →  Copy  →  2. 보조 기억장치  →  3. 인스턴스 생성  →  Text.exe  → 4. 기계어 코드 실행(CPU)

 

 

 

 

 

 

 

CPU의 연산

- CPU 내부에는 소량의 기억장치인 '레지스터' 가 있다.

CPU  
7
4
3

         ↑ 이 과정에서 '복사'가 일어남

RAM 3
4
 
7

 

1. 레지스터로 주기억 장치에 있는 '정보'를 가져온다.

2. 그 과정에서 복사가 일어나고 CPU에서 연산을 한다.

3. 결과적으로 7 이 나왔다면 그 값을 어떤 메모리에다가 저장해라고 CPU에서 지정해준다.

 

 

 

* 0x0012FF7C  =  0x0012FF70   +    0x0012FF74

                ②연산               ①연산

 

- 연산이 총 2번 일어났다

- 2번을 수행할 때 메모리에 변화가 발생

  → 그 전에는 저장되어 있지 않기 때문에 연산 후에 메모리 어디에 변화가 일어났는지가 중요함 '메모리 사용'

  

 

 

 

'C언어' 카테고리의 다른 글

[5] C언어 입문  (0) 2022.03.30
[2] 컴퓨터의 실행  (0) 2022.03.28
[1] 반가산기의 구조 및 컴퓨터의 연산  (0) 2022.03.28