- 멀티코어 원리 책 읽고 추가 내용 정리한 것. (3장 내용)
- 원래 리얼모드나 32비트 모드에서 32비트, 그리고 64비트 레지스터나 값에 접근하는 것은 불가능함. 16비트 프로세서가 32비트 값을 메모리에서 읽어와서 레지스터에 저장할 수는 없음.
- 하지만 64비트 프로세서는 이론적으로는 이런 명령어 실행이 가능하긴 함. 그래서 64비트 모드의 경우, 설령 리얼모드 혹은 보호모드에서 동작하는 코드라고 하더라도 접두사를 통해 다양한 크기의 레지스터에 접근할 수 있도록 허락함.
- 이게 86페이지의 표에 나타나 있음.
- 내가 어셈블리어로 코딩한 값을 어떤 크기로 읽어야 하는지 알려주는 개념.. 접두사를 사용하면 리얼모드와 보호모드에서 확장된 크기의 값을 사용할 수 있음. 즉, 16비트 모드에서 mov eax, 0x11223344 뭐 이렇게 사용할 수 있다는 뜻..
- 주의해야 할 점은, 모드 개념이 존재하는 IA-32e 프로세서에만 적용되는 개념이라는 것.. 즉, 접두사가 붙은 명령어를 실제 16비트 프로세서에서는 사용할 수가 없다.
- 저 접두사들은 종류별로 명령어 이진코드 앞에 1바이트 씩 앞에 붙는 식으로 동작한다.
- 대충 위와 같이... 저렇게 어셈블러가 번역해준다.
'IT 공부 > 운영체제' 카테고리의 다른 글
[OS] - 프로세스와 스레드의 차이 (매우 중요) (0) | 2023.12.28 |
---|---|
[OS] - 운영체제의 멀티 쓰레드 스케쥴링 및 개수 제약 (0) | 2023.12.27 |
[리눅스] - 인터프리터, 가상머신, 그리고 실행 파일의 명령어 구조 차이 (0) | 2023.12.18 |
[리눅스] - 심볼릭 링크와 하드 링크 정리 및 사용 용례 (0) | 2023.12.18 |