일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- E - Hanging Hearts
- expand item
- Div. 2
- 앳코더
- dart
- Round 866
- 카카오 로그인
- vue-google-login
- 인하대 프로그래밍 경진대회
- iupc
- 밑바닥부터 시작하는 딥러닝 1
- Good Bye 2022: 2023 is NEAR
- 기본키 변경
- 2022
- 1557
- Graph Cost
- 카카오 API
- Hello 2023
- 알고리즘 대회
- list_display
- vue3
- 코드포스
- django
- shake!
- Flutter
- 리버싱
- idpiframe_initialization_failed
- 레지스터
- 넥토리얼
- Codeforces Round 831 (Div. 1 + Div. 2)
- Today
- Total
목록레지스터 (2)
pseong

32비트 컴퓨터 기준으로 설명합니다. 함수 호출 시 실행되는 어셈블리어 코드는 다음과 같다. push 세 번째 인자 push 두 번째 인자 push 첫 번째 인자 call 함수 주소 push ebp mov ebp, esp sub esp, 100h (100h는 지역변수 할당 크기, 상황에 따라 달라진다. 함수 종료 시 mov esp, ebp pop ebp 아래 그림을 보면 ebp+8이 첫 번째 인자고, ebp+12가 두 번째 인자, ebp+16이 세 번째 인자이다. 이렇게 증가시키면서 인자 순서를 사용하기 위해 메모리가 감소하는 방향으로 자라나는 스택 메모리 특징 상 세 번째 인자, 두 번째 인자, 첫 번째 인자 이렇게 반대 순서로 스택에 푸시하게 된다. 인자 푸시가 전부 끝나면 함수를 콜 하고 이때 리턴..

같은 레지스터라 해도 사용하는 공간마다 명칭이 다르다. 8 비트 : AH, AL (Higt, Low) 16 비트 : AX 32 비트 : EAX 64 비트 : RAX 레지스터의 역할 레지스터에는 8가지 종류가 있다. 각 각 주로 쓰이는 용도가 존재하고 다른 용도로 사용해도 된다. EAX 산술 계산, 리턴 값 전달 (Accumulator) EDX 산술 계산 (Data) ECX 반복문 카운팅, 주로 몇 번 반복할지 숫자를 저장하고 다운 카운트한다. (Count) EBX 아무 용도로 쓰임 ESI 메모리 복사 시작 인덱스 (Source) EDI 메모리 복사 목적지 인덱스 (Destination) EBP 현재 스택 프레임의 시작 주소(Base) ESP 현재 스택 프레임의 마지막 주소(Stack)