x86 보호 모드에서 Local APIC 타이머를 활용한 고정밀 타이머 구현

x86-64 보호 모드 환경에서 Local APIC(Advanced Programmable Interrupt Controller) 타이머는 PIT나 HPET 없이도 CPU 내부 타이머를 활용해 고정밀 주기적 인터럽트를 생성한다. 운영체제 커널에서 스케줄러 틱, 시간 측정, 프로파일링 등에 활용할 수 있으며, TSC(Time Stamp Counter)와 결합하면 더 정밀한 타이밍을 얻을 수 있다. 전체 구현 코드 아래 코드는 ...

9월 22일 08:46에 게시됨

어셈블리어 기초: 소스 프로그램부터 실행까지

이 문서는 어셈블리어 기초 개념을 설명하며, 소스 코드 작성부터 실행 가능한 프로그램으로 변환되는 과정을 다룹니다. 소스에서 실행 파일까지의 과정 어셈블리 프로그램 개발 과정은 다음 단계로 구성됩니다: 어셈블리 소스 코드 작성 컴파일러를 사용한 컴파일 및 링크 생성된 실행 파일 실행 실행 파일은 프로그램 코드와 데이터, 그리고 관련 설명 정보(프로그램 ...

9월 3일 21:05에 게시됨

C++ 증감 연산자(i++ vs ++i)의 동작 원리와 어셈블리 분석

C++ 개발자들 사이에서 전위 증감(++i)과 후위 증감(i++)의 차이에 대해 흔히 알려진 몇 가지 통념이 있습니다. 가장 대표적인 것은 다음과 같습니다. ++i가 i++보다 성능상 우위에 있다. i++는 내부적으로 임시 객체를 생성한 뒤 증가시키고 기존 값을 반환하는 반면, ++i는 참조를 반환하므로 효율적이다. sizeof 연산자의 처리 방식에 대한 오해. 이러 ...

7월 8일 05:06에 게시됨