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 11004a5

Browse files
committed
➕ eflags에 대한 설명 추가
1 parent 4582f2f commit 11004a5

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

‎8-functions/README.md

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ int main()
5757
2. 사용자의 입력을 받아 d가 차지하고 있는 공간에 정수를 넣습니다.
5858
3. 레지스터 ebx에 0을 집어넣습니다.
5959
4. 레지스터 ecx에 d의 값을 집어넣습니다.
60-
5. ebx < ecx의 결과가 1이면 6로 이동하고, 아니면 for문을 종료합니다.
60+
5. ebx < ecx의 결과가 1이면 7로 이동하고, 아니면 for문을 종료합니다.
6161
6. ebx에 들어있는 값을 출력합니다.
6262
7. ebx에 들어있는 값을 1 증가시킵니다.
6363
8. 5로 이동합니다.
@@ -67,6 +67,8 @@ int main()
6767

6868
> 인텔과 AMD에서 생산하는 CPU는 x86 CPU라고 불리는데요, eax, ebx, ecx 등은 x86 CPU의 범용 레지스터들입니다.
6969
70+
> CPU의 비교 연산은 본질적으로 빼기 연산입니다. x86 CPU에는 eflags라고 하는 레지스터가 있는데요, 이 레지스터는 마지막으로 실행된 연산의 결과에 따라 값이 변합니다. 위 예제에서 `ebx < ecx의 결과가 1`이라고 표현한 것은 사실 eflags가 특정한 값을 가질 때를 말합니다.
71+
7072
## 프로그램 카운터(program counter)
7173

7274
지금까지 배운 컴퓨터의 구조를 정리해보겠습니다. RAM과 레지스터, 연산장치가 있습니다. 연산장치는 주어진 프로그램에 따라 RAM이나 레지스터에서 값을 넣고 빼고 연산합니다. 근데 그럼 프로그램은 어디에 있을까요? 프로그램도 일종의 정보인만큼 프로그램을 저장할 메모리가 필요해보입니다.
@@ -311,4 +313,13 @@ int main()
311313

312314
이렇게 복잡하게 적어야합니다. `if (!valid) break;`가 없으면 `2 2`에서 음수를 입력했어도 `3 1`로 이동합니다.
313315

314-
> C++에선 RAII라는 것 때문에, goto를 쓰고 싶어도 쓰면 컴파일 오류가 발생하는 경우가 많습니다. RAII에 대해선 나중에 다루도록 하겠습니다.
316+
> C++에선 RAII라는 것 때문에, goto를 쓰고 싶어도 쓰면 컴파일 오류가 발생하는 경우가 많습니다. RAII에 대해선 나중에 다루도록 하겠습니다.
317+
318+
## switch문(switch statement)
319+
320+
switch문은 C의 조건문 중 하나입니다. 사용 방법은 다음과 같습니다.
321+
322+
```
323+
switch (<결과가 정수 자료형인 식>) <문장>
324+
```
325+

0 commit comments

Comments
(0)

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