나와 내 친구는 리얼 모드에서의 실제 메모리 어드레싱에 관한 질문에 대해 브레인 스토밍을하고 있었고 우리는 그 문제를 해결할 수 없었습니다. 여기에 간다.리얼 모드 실제 메모리 어드레싱과 관련하여
리얼 모드에서는 세그먼트 선택기 레지스터에 16을 곱하고 오프셋 레지스터에 20 비트의 물리적 주소를 얻으려고 추가합니다. 결과적으로 세그먼트가 겹칠 가능성이 있습니다.
E.G. '세그먼트 선택기 -> 0040 & 오프셋 - "0010"= "- 오프셋> 0030 & - 세그먼트 선택기> 0110"
그것은 세그먼트 선택기 오프셋에 첨가되기 전에 4 비트로 시프트 것을 이해한다. 그러므로 이러한 분할을 피하기 위해 세그먼트 선택기를 오프셋에 추가하기 전에 세그먼트 선택기를 6만큼 (64를 곱하여) 이동하십시오. 우리가보기에 이것은 메모리 중복의 가능성을 제거했을 것입니다.
그 시간 동안 직면 한 하드웨어 제한 사항과 관련이 있거나 단순히 디자인 결정 일뿐입니다.
맞습니다. 그들은 16 비트 레지스터를 사용하여 1 MB의 메모리 주소 공간 (20 비트)에 도달하려고했습니다. 이를 달성하는 가장 효율적인 방법은 '세그먼트 화'를 사용하여 세그먼트 기본 부분을 왼쪽으로 4 비트 이동시키는 것입니다. 당신이 생각하는만큼 나쁘지는 않습니다. 그 구성표로 작은 세그먼트 (몇 바이트 길이)와 큰 세그먼트 (약 64kB 길이)를 정의 할 수 있다고 생각하십시오. – fante