You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 8-functions/README.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,7 +34,7 @@ int main()
34
34
35
35
연산장치 입장에서 레지스터는 RAM보다 가까운 곳에 있기 때문에 더 쉽고 빠르게 접근할 수 있습니다. 그래서 자주 변하는 값은 레지스터에 저장하는 것이 좋습니다. 프로그래머가 C 코드를 통해 변수를 생성하게 되면, 컴파일러는 자체적인 판단에 따라 그 변수를 RAM 또는 레지스터에 고정시킵니다. 그 변수에 주소 연산자를 사용한 경우가 있으면 RAM에 고정시켜야겠지만, 그런 경우가 없으면 레지스터에 고정시켜도 괜찮을 것입니다.
36
36
37
-
레지스터들은 계산 중인 값을 저장하는 것 말고도 여러가지 목적을 위해 사용됩니다. 그래서 연산장치를 만드는 회사들은 레지스터들을 목적에 맞게 분류하고, 그 분류에 따라 연산장치의 알맞은 곳에 레지스터를 배치해놓습니다. 컴파일러를 만드는 회사들은 이런 분류에 맞추어 변수가 알맞은 레지스터에 고정되도록 합니다.
37
+
레지스터들은 계산 중인 값을 저장하는 것 말고도 여러가지 목적을 위해 사용됩니다. 그래서 연산장치를 만드는 회사들은 레지스터들을 목적에 맞게 분류하고, 그 분류에 따라 연산장치의 알맞은 곳에 레지스터를 배치해놓습니다. 컴파일러를 만드는 회사들은 이런 분류에 맞추어 변수가 알맞은 레지스터에 고정되도록 합니다. 이 계산 중인 값을 저장하는 레지스터를 `범용 레지스터(general register)`라고 부릅니다.
38
38
39
39
for문을 사용할 때, 다음 예제처럼 변수를 하나 선언한 후 반복식에서 변수의 값을 1 증가시키는 경우가 많습니다.
40
40
@@ -65,6 +65,8 @@ int main()
65
65
66
66
이렇게 해석될 수 있습니다.
67
67
68
+
> 인텔과 AMD에서 생산하는 CPU는 x86 CPU라고 불리는데요, eax, ebx, ecx 등은 x86 CPU의 밤용 레지스터들입니다.
69
+
68
70
## 프로그램 카운터(program counter)
69
71
70
72
지금까지 배운 컴퓨터의 구조를 정리해보겠습니다. RAM과 레지스터, 연산장치가 있습니다. 연산장치는 주어진 프로그램에 따라 RAM이나 레지스터에서 값을 넣고 빼고 연산합니다. 근데 그럼 프로그램은 어디에 있을까요? 프로그램도 일종의 정보인만큼 프로그램을 저장할 메모리가 필요해보입니다.
0 commit comments