본문 바로가기

[OS개발] 2. 64비트 프로세서 OS를 개발하는 과정에서 큰 비중을 차지하는 레지스터는 범용 레지스터, 세그먼트 레지스터, 컨트롤 레지스터 3가지. 레지스터 정리 범용 레지스터 - 계산, 메모리 어드레스 지정, 임시 저장 공간 등의 목적으로 사용. - 16, 32비트 모드를 지원하는 x86계열은 8개, x86-64는 16개이다. x86-64에는 R8~R15로 이름 붙여진 8개의 레지스터가 더 있다. 특수한 용도가 정의되지 않음. - 범용 레지스터가 늘어나면 수행 속도가 개선된다. 범용 레지스터 이름 용도 AX 산순 연산 수행 시 누산기 BX 데이터의 어드레스를 지정할 때 데이터 포인터로 사용 CX 루프 또는 문자열의 카운터로 사용 DX I/O 어드레스를 지정할 때 사용. 산술 연산 시 보조 레지스터로 사용 SI 문자열에 관련된 작업 수.. 더보기
[OS개발] 1. 프롤로그 64비트 멀티코어 OS 원리와 구조 따라하기라는 책을 보고 OS를 만들어 보기로 했다. 내 블로그 보는 분들은 알겠지만 항상 뭐 시작하다가 나중에 흐지부지되고 이런것이 많아서.. 이런게 얼마나 갈지는 모르지만 시작해본다. 1. gcc 파일 생성 테스트 - 성공. 잘 컴파일 된다 2. NASM 설치 - https://www.nasm.us/ NASM Latest version Stable 2.15.05 History Builds List Snapshots Latest, List For users of RPM-based Linux distributions (e.g. Fedora, Red Hat, SUSE, ...), you can download the official NASM builds using dnf .. 더보기
[LeetCode] 61. Rotate List https://leetcode.com/problems/rotate-list/ Rotate List - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 이렇게 풀면 안된다.. 다시 풀어보자. /** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null :.. 더보기