도와주세요!!
글 수 15,339
2003.02.20 00:41:52 (*.228.97.162)
6689
안녕하세여..
전에두 한번 글 올렸는데여..
답변을 보고두 확실히 이해을 못하겠네여..
몇일째 잡고 있는 부분인데..
바이트 오더링 문제 말인데여..?
전 지금 이렇게 알고 있는데.. 맞는지요?
cpu가 레지스터에 저장된 데이터 1바이트가 넘는 형들을 처리 할때..
여기선 word 니깐 2 바이트죠.. 이 패킷은 네트웍 카드를 통해서 그리고
cpu을 거쳐 램에 저장을 해야 되니깐.. 하위바이트 부터 차례대로 저장이 되
야 하기에
wOddWord = readword(dev, DATA_PORT);
*(u8*)pData++ = (u8) wOddWord & 0xFF;
*(u8*)pData++ = (u8) (wOddWord >> 8) & 0xFF;
이 부분은 이해가 되는데.. 그런데..
모듈러로 현재 socketbuffer의 data 필드 부분을 가지고 있는 포인터의
pData가 짝, 홀수는 왜 필요한건지?
단지 커널 가상메모리의 포인터 일뿐인데..
이것이 짝수 번째 번지인지 홀수 번째 번지 메모리의 짝수 홀수가 중요한가
여?
깊은 숨은 뜻이 있을것 같은데..이런 스킬들은 어디서 본적이 없어서..
너무나 생소합니다..
기초가 부족해서 그런것 같습니다.. 죄송합니다..
같은 질문 여러번 해서..
좋은 하루 되시구여.. ^^
전에두 한번 글 올렸는데여..
답변을 보고두 확실히 이해을 못하겠네여..
몇일째 잡고 있는 부분인데..
바이트 오더링 문제 말인데여..?
전 지금 이렇게 알고 있는데.. 맞는지요?
cpu가 레지스터에 저장된 데이터 1바이트가 넘는 형들을 처리 할때..
여기선 word 니깐 2 바이트죠.. 이 패킷은 네트웍 카드를 통해서 그리고
cpu을 거쳐 램에 저장을 해야 되니깐.. 하위바이트 부터 차례대로 저장이 되
야 하기에
wOddWord = readword(dev, DATA_PORT);
*(u8*)pData++ = (u8) wOddWord & 0xFF;
*(u8*)pData++ = (u8) (wOddWord >> 8) & 0xFF;
이 부분은 이해가 되는데.. 그런데..
모듈러로 현재 socketbuffer의 data 필드 부분을 가지고 있는 포인터의
pData가 짝, 홀수는 왜 필요한건지?
단지 커널 가상메모리의 포인터 일뿐인데..
이것이 짝수 번째 번지인지 홀수 번째 번지 메모리의 짝수 홀수가 중요한가
여?
깊은 숨은 뜻이 있을것 같은데..이런 스킬들은 어디서 본적이 없어서..
너무나 생소합니다..
기초가 부족해서 그런것 같습니다.. 죄송합니다..
같은 질문 여러번 해서..
좋은 하루 되시구여.. ^^