Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit ec1c03a

Browse files
committed
✨ 레지스터 예제 추가
1 parent c4cb77e commit ec1c03a

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

‎8-functions/README.md

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
프로그램을 여러 단위로 쪼갤 수 있는 방법인 함수에 대해 다루고, 함수를 사용하기 위한 개념들을 배웁니다.
44

5-
# 레지스터(register)
5+
## 레지스터(register)
66

77
지금까지는 컴퓨터가 단순히 메모리와 연산장치가 있다고만 생각했었는데요, 사실 연산장치에도 계산하고 있는 값을 임시로 저장하기 위한 메모리가 하나 더 있습니다. 지금까지 우리가 다룬 주소값이 있는 메모리는 흔히 램이라고 부르는 `임의 접근 메모리(Random-access memory; RAM)`이고, 연산장치에 있는 계산 중인 값을 저장하기 위한 메모리는 `레지스터(register)`입니다.
88

@@ -13,7 +13,27 @@
1313
for문을 사용할 때, 다음 예제처럼 변수를 하나 선언한 후 반복식에서 변수의 값을 1 증가시키는 경우가 많습니다.
1414

1515
```c
16-
for (int i = 0; i < 5; ++i) ;
16+
#include <stdio.h>
17+
18+
int main()
19+
{
20+
int d; scanf("%d", &d);
21+
22+
for (int i = 0; i < d; ++i)
23+
printf("%d ", i);
24+
}
25+
```
26+
27+
여기서 `i` 같은 변수를 `루프 카운터(loop counter)`라고 부르는데요, 레지스터에 고정되는 예시 중 하나입니다. `i``ebx`라는 레지스터에 고정되고, `d`가 800\~804를 차지한다고 가정했을 때, 위 코드를 해석해보면,
28+
29+
```
30+
1. 800번을 d라고 이름짓습니다.
31+
2. 사용자의 입력을 받아 d가 차지하고 있는 공간에 정수를 넣습니다.
32+
3. ebx에 0을 집어넣습니다.
33+
4. ebx가 d에 들어있는 값보다 작으면 5로 이동하고, 아니면 for문을 종료합니다.
34+
5. ebx에 들어있는 값을 출력합니다.
35+
6. ebx에 들어있는 값을 1 증가시킵니다.
36+
7. 4로 이동합니다.
1737
```
1838

19-
여기서 `i` 같은 변수를 `루프 카운터(loop counter)`라고 부르는데요, 레지스터에 고정되는 예시 중 하나입니다.
39+
이렇게 해석될 수 있습니다.

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /