3
내 컴퓨터에서 메모리 액세스 시간을 측정하기 위해 연구 과제를 수행하고 있습니다. 가 우리의 기계에 클럭 사이클을 결정하기 위해, 우리는 다음과 같은 C 조각 주어졌다 :이 ("애플 LLVM 컴파일러 2.1"을 사용하여 엑스 코드 4) 컴파일 할 때LLVM이 어셈블러 오류에 대해 불평합니다. "메모리 피연산자에 예기치 않은 토큰이 있습니다."
static inline void getcyclecount(uint64_t* cycles)
{
__asm __volatile(
"cpuid # force all previous instruction to complete\n\t"
"rdtsc # TSC -> edx:eax \n\t"
"movl %%edx, 4(0) # store edx\n\t"
"movl %%eax, 0(0) # store eax\n\t"
: : "r"(cycles) : "eax", "ebx", "ecx", "edx");
}
를,이 두 번 발생 rdtsc resp의 "\ t"에있는 "메모리 피연산자의 예기치 않은 토큰"오류가 발생했습니다. 첫 번째 movl 명령 줄.
기본 어셈블러를 알고 있지만 C 인라인 어셈블러 형식에 대한 단서가 없습니다.
누구든지이 코드의 문제점을 알고 있습니까?
감사합니다.
슈퍼 멋진을! 고쳐 주셔서 고마워요! – Patrick