16비트 어셈에서 메모리 주소를 Segment:Offset 이렇게 표현하는데,
여기서 : 은 장식이 아니라 하나의 16진수 값으로 보라는 의미다.
1234:5678 이면 16진수 12345678 의 값 하나로 표현되지.
그래서 far pointer를 메모리에 표현하면 오프셋이 먼저 오고, 그 다음 2바이트가 세그먼트가 된다. 인텔은 리틀 엔디안이니까 낮은 자리가 앞 바이트로 오거든.
이것이 또 쓰이는 곳은 IPv6 주소.
AAAA:BBBB:CCCC:DDDD:EEEE:FFFF:1234:5678 이라는 아이피 주소는,
하나의 값으로 취급할 때 AAAABBBBCCCCDDDDEEEEFFFF12345678 이라는 16진수가 된다.
메모리 상에도 AA AA BB BB CC ... 순으로 오지. 왜냐하면 네트워크 바이트 오더 표준은 빅 엔디안이니깐.
:은 엔디안에 상관 없이 값 그 자체를 이어서 보라는 의미라는 걸, 혹 몰랐던 프갤럼은 알고 가라.
여기서 : 은 장식이 아니라 하나의 16진수 값으로 보라는 의미다.
1234:5678 이면 16진수 12345678 의 값 하나로 표현되지.
그래서 far pointer를 메모리에 표현하면 오프셋이 먼저 오고, 그 다음 2바이트가 세그먼트가 된다. 인텔은 리틀 엔디안이니까 낮은 자리가 앞 바이트로 오거든.
이것이 또 쓰이는 곳은 IPv6 주소.
AAAA:BBBB:CCCC:DDDD:EEEE:FFFF:1234:5678 이라는 아이피 주소는,
하나의 값으로 취급할 때 AAAABBBBCCCCDDDDEEEEFFFF12345678 이라는 16진수가 된다.
메모리 상에도 AA AA BB BB CC ... 순으로 오지. 왜냐하면 네트워크 바이트 오더 표준은 빅 엔디안이니깐.
:은 엔디안에 상관 없이 값 그 자체를 이어서 보라는 의미라는 걸, 혹 몰랐던 프갤럼은 알고 가라.
댓글 0