본문 바로가기
IT 공부/운영체제

OS 배운거 정리 2024.10.29 - rex, 오퍼랜드 사이즈 접두사 개념

by exdus3156 2024. 10. 29.

- 멀티코어 원리 책 읽고 추가 내용 정리한 것. (3장 내용)

- 원래 리얼모드나 32비트 모드에서 32비트, 그리고 64비트 레지스터나 값에 접근하는 것은 불가능함. 16비트 프로세서가 32비트 값을 메모리에서 읽어와서 레지스터에 저장할 수는 없음.

- 하지만 64비트 프로세서는 이론적으로는 이런 명령어 실행이 가능하긴 함. 그래서 64비트 모드의 경우, 설령 리얼모드 혹은 보호모드에서 동작하는 코드라고 하더라도 접두사를 통해 다양한 크기의 레지스터에 접근할 수 있도록 허락함.

- 이게 86페이지의 표에 나타나 있음.

출처 - 64비트 멀티코어 운영체제 원리와 구조1 - 3장

- 내가 어셈블리어로 코딩한 값을 어떤 크기로 읽어야 하는지 알려주는 개념.. 접두사를 사용하면 리얼모드와 보호모드에서 확장된 크기의 값을 사용할 수 있음. 즉, 16비트 모드에서 mov eax, 0x11223344 뭐 이렇게 사용할 수 있다는 뜻..

- 주의해야 할 점은, 모드 개념이 존재하는 IA-32e 프로세서에만 적용되는 개념이라는 것.. 즉, 접두사가 붙은 명령어를 실제 16비트 프로세서에서는 사용할 수가 없다. 

- 저 접두사들은 종류별로 명령어 이진코드 앞에 1바이트 씩 앞에 붙는 식으로 동작한다. 

- 대충 위와 같이... 저렇게 어셈블러가 번역해준다.