8000 ✏ 예제가 레지스터 사용하도록 수정 · paxbun/c-cpp-tutorial@bb8b9e5 · GitHub
[go: up one dir, main page]

Skip to content

Commit bb8b9e5

Browse files
committed
✏ 예제가 레지스터 사용하도록 수정
1 parent 758e9c1 commit bb8b9e5

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

8-functions/README.md

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,13 @@ int main()
9292
프로그램이 시작했을 때,
9393
1. (적당한 공간을 i라고 이름짓고) i에 5를 넣습니다.
9494
2. (적당한 공간을 j라고 이름짓고) j에 6을 넣습니다.
95-
3. (적당한 공간을 k라고 이름짓고) k에 i와 j 각각이 갖고 있는 값을 더한 결과를 넣습니다.
95+
3. ecx에 j의 값을 불러옵니다.
96+
4. eax에 i의 값을 불러옵니다.
97+
5. eax에 eax와 ecx에 들어있는 값의 합을 집어넣습니다.
98+
6. (적당한 공간을 k라고 이름짓고) k에 eax에 들어있는 값을 집어넣습니다.
9699
```
97100

98-
프로그램 카운터가 1, 2, 3(에 대응하는 메모리 주소)으로 변화해 간다는 사실을 알 수 있습니다.
101+
프로그램 카운터가 1, 2, 3, 4, 5, 6(에 대응하는 메모리 주소)으로 변화해 간다는 사실을 알 수 있습니다.
99102

100103
특정한 문장에 대응되는 주소를 프로그램 카운터에 대입할 수도 있습니다. [7장](../7-control-flow)에서 다양한 제어 흐름 문장들에 대해 배웠는데요, if문을 예로 들겠습니다.
101104

@@ -115,14 +118,16 @@ int main()
115118
```
116119
프로그램이 시작했을 때,
117120
1. (적당한 공간을 i라고 이름짓고) i라는 이름의 공간에 사용자의 입력을 넣습니다.
118-
2. i < 5의 결과가 거짓이라면 5로 이동합니다.
119-
3. i + 10을 출력합니다.
120-
4. 6으로 이동합니다.
121-
5. i를 출력합니다.
122-
6.
121+
2. ecx에 i의 값을 집어넣습니다.
122+
3. ecx < 5의 결과가 거짓이라면 7로 이동합니다.
123+
4. ecx에 ecx + 10의 결과를 집어넣습니다.
124+
5. ecx의 값을 출력합니다.
125+
6. 8로 이동합니다.
126+
7. ecx를 출력합니다.
127+
8.
123128
```
124129

125-
사용자의 입력이 `14`라고 가정해보겠습니다. 그럼 프로그램 카운터는 기본적으로 1씩 증가합니다. 그런데, 2번에서 `i < 5`가 거짓이기 때문에 프로그램 카운터가 5로 바뀝니다. 그래서 이 경우 프로그램 카운터가 가지고 있는 값은 1, 2, 5, 6(에 대응하는 메모리 주소)으로 변화해 간다는 사실을 알 수 있습니다. 반대로 사용자의 입력이 `3`이라면 프로그램 카운터 속 숫자는 1, 2, 3, 4, 6으로 변화해 간다는 사실을 알 수 있습니다.
130+
사용자의 입력이 `14`라고 가정해보겠습니다. 그럼 프로그램 카운터는 기본적으로 1씩 증가합니다. 그런데, 2번에서 `i < 5`가 거짓이기 때문에 프로그램 카운터가 7로 바뀝니다. 그래서 이 경우 프로그램 카운터가 가지고 있는 값은 1, 2, 3, 7, 8(에 대응하는 메모리 주소) 변화해 간다는 사실을 알 수 있습니다. 반대로 사용자의 입력이 `3`이라면 프로그램 카운터 속 숫자는 1, 2, 3, 4, 5, 6, 8로 변화해 간다는 사실을 알 수 있습니다.
126131

127132
for문에 대해서도 동일한 분석이 가능합니다.
128133

@@ -138,7 +143,7 @@ int main()
138143
```
139144
프로그램이 시작했을 때,
140145
1. ebx에 1을 넣습니다.
141-
2. ebx <= 5가 거짓이라면 6으로 이동합니다.
146+
2. ebx <= 5의 결과가 거짓이라면 6으로 이동합니다.
142147
3. ebx에 들어있는 값을 출력합니다.
143148
4. ebx의 값을 1 증가시킵니다.
144149
5. 2로 이동합니다.

0 commit comments

Comments
 (0)
0