CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): guest (guest) <210.118.82.100>
날 짜 (Date): 2002년 11월 21일 목요일 오전 09시 53분 55초
제 목(Title): Re: [질문] 다음 어셈블리 설명 부탁..


#define gethrtime(x)      {asm volatile (".byte 0x0f, 0x31" : "=A" (x));}

을 다음과 같이 써도 똑 같습니다.

#define gethrtime(x) { asm volatile ("rdtsc" : "=A" (x)); }

rdtsc가 64bit value를 가져와서 eax와 edx에 넣어주는데,

=A는 이 두 register를 통합한 register이고요. 이 값을 x에 넣어주는
macro이군요.

옛날엔 =a, =d로 두번에 걸쳐서 옮겼는데 지금은 이렇게 한번에 옮기는 걸로
쓸 수 있게 된 것 같습니다. 실제 생성되는 code는 똑 같고요.

[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.