전체 글 337

[게임 프로그래머 입문 올인원] 산술 연산, 비교 연산, 논리 연산

* 지금 테스트 코드는 전부 전역변수 > Data 영역에서 메모리 할당 * Alt + 커서 : 세로로 블록 설정 * 대입 연산자   = * 산술 연산자   +, -, *, /, %   +=, -=, *=, /=, %=#include using namespace std;int a, b, result;int main(void){00DC1000 push ebp 00DC1001 mov ebp,esp // 대입 연산 a = 10;00DC1003 mov dword ptr [a (0DC33D0h)],0Ah b = 3;00DC100D mov dword ptr [b (0DC33C8h)],3 // + - * / % result = a + b;00D..

[ETC] 커널 전역 데이터 구조, 전역 or 프로세스별 커널 오브젝트

* 커널   컴퓨터를 운영하는데 있어서 중심이 되는 운영체제 핵심 부분 * 프로세스별 커널 오브젝트   프로세스 생성시, 각 프로세스마다 독립적인 커널 오브젝트가 생성된다   ㄴ 커널 오브젝트?         커널이 프로세스를 관리하기 위해 필요한 데이터를 저장   ㄴ 프로세스별 커널 오브젝트에 포함된 정보          1. 프로세스 ID(PID)          2. 프로세스 상태 (실행 중, 대기 중, 종료 등)          3. 스케줄링 우선순위          4. 메모리 관련 정보 (페이지 테이블, 메모리 매핑 등)          5. 열려 있는 핸들(파일, 소켓 등) 정보          6. 부모 및 자식 프로세스 정보          7. CPU 레지스터 값(컨텍스트 스..

IT공부 2024.12.14

[ETC] 지수와 로그 역관계

* 역관계   두 연산이나 함수가 서로 반대 역할을 수행하는 관계를 뜻한다   하나의 연산을 적용한 결과를 다시 다른 연산으로 처리하면 원래의 값으로 되돌아가는 관계를 의미한다 * 지수와 로그는 역관계 * 정리하자면   역관계는 두 연산이 서로 완벽히 상쇄되는 관계를 의미한다   로그와 지수는 값을 만들고, 그 값을 통해 원래의 지수를 찾는 방식으로 항상 짝을 이룬다 * 거틉제곱   같은 수를 여러 번 곱할 때,   곱하는 수(밑)과 곱하는 횟수(지수)를 이용하여 간단히 나타낸 것 * 제곱근   제곱하여 실수 a가 되는 수   즉, 어떤 수를 제곱해서 다른 수를 만든다 * 제곱한다   어떤 수를 두 번 곱한다는 뜻

IT공부 2024.12.14

[게임 프로그래머 입문 올인원] 변수, 정수의 원리, 변수의 마무리

* 프로그램을 구성하는 가장 핵심 요소는 데이터와 로직 * 전역변수와 static 변수 차이(1) 전역변수(단, 다른 파일에서 접근하려면 extern 선언 필요)   프로그램 전체에서 공유(가게의 금고), 어디서나 접근 가능(2) static 변수   특정 함수에서 값을 유지(직원 통장), 함수 외부에서는 볼 수 없음(3) 전역 static 변수   특정 파일 내에서만 사용 가능한 값을 유지(지점의 비밀 금고), 다른 파일에서 접근 불가 * 공식문서_데이터 형식 범위   https://learn.microsoft.com/ko-kr/cpp/cpp/data-type-ranges?view=msvc-170 데이터 형식 범위데이터 형식 범위에 대한 자세한 정보learn.microsoft.com * 0b 2진수, ..

[게임 프로그래머 입문 올인원] 컴퓨터 구조

* CPU, RAM, SSD (1) CPU : 컴퓨터의 중앙에서 모든 데이터를 처리하는 장치 * CPU가 이해할 수 있는 명령어들의 모음을  명령어의 집합(Instruction Set) 또는 명령어 집합 구조(Instruction Set Architecture), opcode라고 한다 * CPU 명령어 체계는 CISC, RISC가 있다 (2) RAM은  4가지 영역으로 나눌 수 있다 : Code(Text) 영역, Data 영역, Heap 영역, Stack 영역 ① 코드(Code) 영역(=Text)   프로세스가 실행할 코드와 매크로 상수가 기계어 형태로 저장된 공간   CPU는 코드 영역에 저장된 명령어를 하나씩 가져와서 실행   컴파일 타임에 결정되고 중간에 코드를 바꿀 수 없게 Read-Only로 지..

[게임 프로그래머 입문 올인원] OT

강의에서 다루는 내용1. C++2. 자료구조/알고리즘3. STL4. 게임 수학5. Windows API6. 게임 서버 입문 최종 목표 : Windows API 기반으로 간단한 게임 만들기   ① 포트리스    ② 2D 로그라이크 온라인 게임 공부 환경Visual Studio 2022 커뮤니티(1) C++를 사용한 데스크톱 개발과 (2) C++를 사용한 게임 개발을 선택 후 다운로드  강의_바로가기 [게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버Rookiss | 어디부터 시작할지 막막한 게임 프로그래밍 입문자를 위한 All-In-One 커리큘럼입니다. C++, 자료구조/알고리즘, STL, 게임 수학, Windows API, 게임 ..

[ETC] 꼭 알아야 하는 어셈블리 명령어

1. 데이터 이동 명령어mov데이터를 한 레지스터에서 다른 레지스터, 혹은 메모리 간에 복사MOV EAX, EBX ; EBX 값을 EAX로 복사MOV EAX, [ADDR] ; 메모리 주소 ADDR의 값을 EAX로 복사MOV [ADDR], EAX ; EAX 값을 메모리 주소 ADDR에 저장 xchg두 레지스터(또는 레지스터와 메모리) 값 교환XCHG EAX, EBX ; EAX와 EBX 값 교환 2. 산술 연산 명령어add / sub더하기, 빼기ADD EAX, EBX ; EAX = EAX + EBXSUB EAX, 5 ; EAX = EAX - 5 mul / imul곱셈(부호 없는 곱셈 : mul, 부호 있는 곱셈 : imul)MUL ECX ..

IT공부 2024.12.05