x86 Segment Registers 어셈블리 코드를 보다보면 DS:[EAX], SS:DWORD PTR[EBP-4] 뭐 대강 이런식으로 DS:, CS:, SS: 이런 부분들을 자주 볼수있다. 이것들의 정체는 세그먼트 레지스터로 16비트인데 페이징이 없던시절, 메모리 영역 관리/분리 등을 위해서 사용되었다.먼저 real mode 상에서는 주소지정이 세그먼트:오프셋 방식으로 이루어진다. 이 말은, CS:0x1234 이런식으로 메모리 주소가 표현된다는 것인데 여기서 세그먼트 레지스터는 16비트이므로 65536 개의 세그먼트 영역이 존재할 수 있다. 한 세그먼트는 16바이트(4비트공간)의 크기를 갖는다. 즉 CS 가 0xAAAA 라면 선형주소에 더해지는 값은 0xAAAA0 이 된다. 뭔가 계산이 깔끔하지않고 더럽지만 아무튼 이렇다.세그먼트값을 4비.. 더보기 이전 1 ··· 408 409 410 411 412 413 414 ··· 423 다음