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 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)

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