kernel_programming (3) 썸네일형 리스트형 Assembly - 레지스터 레지스터 프로세서 내부에 존재하는 저장공간 메모리에서 데이터를 읽어 들이는 것이 프로세서의 속도에 영향을 주기 때문에 프로세서 내부에 저장소(register)를 설치하여 운영하는 것 1. 종류 General registers Data registers 32 bit registers EAX EBX ECX EDX 16 bit registers AX : Primary Acc BX : base register CX : count register DX : data register 8 bit registers AH, AL BH, BL CH, CL DH, DL Pointer registers 32 bit EIP ESP EBP 16bit IP : instruction Pointer SP : Stack Pointer B.. real mode real mode 리얼 주소 모드 또는 호환 모드라고도 한다 80286 이후의 x86 호환 CPU의 운영 방식 최대 1메가바이트의 메모리가 기록될 수 있다 리얼모드 에서는 메모리의 절대주소를 계산하여 넣어주어야 부팅시 오류를 줄여 줄 수 있다 메모리 절대주소 계산 segment register의 주소에 16을 곱한 다음 offset을 더하면 된다 예제 Segment 0, offset 0x7CF 0x7CF * 16 = 0x7CF0 0x7CF0 + 0x0F = 0x7CFF 서로 다른 instruction은 다른 segment register을 사용한다 8086 segment register CS - Code segment SS - Stack segment DS - Data segment ES - Extra .. kernel programming setup in mac os nasm 어셈블리어 컴파일러 nasm document nasm Homebrew Frmulae $ brew install nasm 설치 후 확인 $ nasm -v qemu 가상화 소프트웨어 qemu document qemu Homebrew Frmulae 커널, OS등 디버깅할때 사용 $ brew install qemu 설치 후 확인 $ qemu-system-x86_64 마우스 인터럽트 opt + cmd + g 이전 1 다음