/* 본 포스팅은 최호성 저자의 '독하게 시작하는 C프로그래밍' 교재를 참조로 작성되었음을 먼저 알려드립니다. */ 함수 호출 규칙(calling convention)은 호출자 함수가 피호출자 함수를 호출하는 과정에서 매개변수를 전달하는 순서 및 매개변수가 사용한 메모리 관리방법 등에 관한 규칙이다. 대표적으로 __cdecl, __stdcall, __fastcall 등 세 가지 정도가 있는데 이 세 가지가 C 언어의 표준에서 정의하는 것은 아니다. 모두 약간씩 차이가 있는데 C/C++ 컴파일러의 기본 함수 호출 규칙은 __cdecl이다. 우리가 자동변수를 선언할 때 auto를 생략해도 되는 것처럼 __cdecl도 생략할 수 있다. 따라서 아무것도 기술하지 않으면 함수 호출 규칙은 __cdecl이다. 제대..
* CHAPTER 4 - C언어와 화면 표시의 연습 #1 C언어로 메모리에 쓰기 (harib01a) 3일차 까지는 화면을 새카맣게 만드는 것까지 성공했다. 이번엔 화면에 뭔가를 그려보는 실습을 해보자. 뭔가를 그리기 위해선 VRAM에 뭔가를 쓰면 된다. 하지만 C언어에는 그런 기능이 존재하지 않는다. 그래서 그런 기능을 가진 함수를 만들어봤다. /************************************************* ** 3일차까지 완성되었던 naskfunc.nas 파일에 몇 줄을 추가함 *************************************************/ ; naskfunc ; TAB = 4 [FORMAT "WCOFF"]; 오브젝트 파일을 만드는 모드 [BITS ..
* CHAPETER 2 - 어셈블러 학습과 Makefile 입문 #1 레지스터 내용 정리 *16비트 레지스터 (= 기억회로) CPU에는 레지스터라는 기억회로가 있는데, 이것은 기계어의 변수이다. 변수라는 건 데이터를 담는 공간, 그릇이라는 의미로 이해하면 된다. 대표적인 레지스터로는 다음의 8개가 있는데, 이들은 고유의 이름과 기능을 가지고 있다. AX - 어큐물레이터(accumulator: 누적 연산기라는 의미) // X의 의미는 확장(extend)의 의미다. CX - 카운터(counter: 수를 세는 기계라는 의미)DX - 데이터(data: 데이터라는 의미)BX - 베이스(base: 기초, 기점이라는 의미)SP - 스택 포인터(stack pointer: 스택용 포인터)BP - 베이스 포인터(base ..
- Total
- Today
- Yesterday