- 참치군
- ?
- stalk.io
- :: 2013년, 스리는 여섯살
- 웹 강좌
- 점프 투 파이썬
- 요니나의 대학생 재테크
- This is CS50
- 애자일 이야기
- isao의 IT,게임번역소
- 소프트웨어 이야기
- Color Scripter
- 어디를 가든지 마음을 다해 가라
- VisuAlgo
- 서울대 평생교육원
- 몽환
- RegExr: Learn, Build, & Test R…
- Hello, Stranger :D
- I Like Exploit
- Z3alous Security Story
- Project Euler
- Blog
- pieces of code
- window 쪼물딱 거리기
- IT - Informatics Alphabet
- rop
- 국제 정보교육센터 I2sec 대구 1기
- This is the moment. :)
- blackmoon
- z3alous는 세상에 소리 z3alous~
- Acord
- FORENSIC-PROOF
- 어셈블리
- Outsider's Dev Story
- Open Tutorials
- 코드라이언
- 컴퓨터 그래픽스와 3D 프린팅
- HACKABILITY
- Lee, Jae-Hong
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 창의공학설계
- 탈색
- 컴파일러
- Wireshark
- 시간복잡도
- 공간복잡도
- 오지총
- Hello World
- 디버깅
- Packet
- 레지스터
- 추상데이터타입
- 펌
- 동대구
- 알고리즘
- BOF
- 베이스
- ubuntu
- 버퍼오버플로우
- 피보나치
- 소켓
- 발표
- Debug
- Calling Convention
- 블루블랙
- C언어
- 호출규약
- 염색
- 파이썬
- Visual Studio
- Today
- Total
목록2015/11/04 (2)
c0smicb0y
컴퓨터에서 수행되는 대부분의 연산은 레지스터를 이용하여 이루어지게 된다. 하지만 이 레지스터의 개수는 극히 제한적이기 때문에 함수 내에서 또 다른 함수 호출 시에는 레지스터간의 충돌을 고려해야한다. 우리가 사용하는 Windows의 컴파일러들은 이러한 문제를 피하기 위해 아래와 같은 규칙을 사용하여 함수들간의 레지스터 사용의 충돌을 피하고 있다. Platform Caller-save 레지스터 Callee-save 레지스터 x86 Windows EAX, ECX, EDX, ST(0)~ST(7), XMM0~XMM7 EBX, ESI, EDI, EBP x64 Windows RAX, RCX, RDX, R8~R11, ST(0)~ST(7), XMM0~XMM5, High half of XMM6~XMM15 RBX, RSI,..
스택을 이용하여 파라미터를 전달할 때 스택에 파라미터를 어떠한 순서로 넣을 것이며 또한 전달되어진 파라미터를 어느 곳에서 해제할 것인가에 따라 여러 가지 방식이 잇으며, 이를 Calling Convention(호출규약)이라고 부른다. __cdecl이 Calling Convention은 C, C++ 프로그램에서 파라미터 전달 시 기본적으로 사용되는 방식으로, 파라미터 전달은 오른쪽에서 왼쪽으로 이루어지며, 프로시저를 호출한 쪽(Caller)에서 파라미터에 대한 해제까지 책임져주게 된다. 12345678main(){ sum(1, 2);} int sum(int a, int b){ return a + b;}cs 123456789101112main: push 2 push 1 call sum add esp, 8su..