Студии и GCC не нравится двоеточие.
Студия (MSVS) вроде и не понимает такой формат.
А моему gcc всё нравится, и код получается правильный:
$ cat rdtsc.c
void f(unsigned long *low, unsigned long *high)
{
asm("rdtsc\n":"=a"(*low), "=d"(*high));
}
$ gcc -O2 -S -W -Wall rdtsc.c
$ cat rdtsc.s
.file "rdtsc.c"
.text
.p2align 4,,15
.globl f
.type f, @function
f:
.LFB0:
.cfi_startproc
#APP
# 3 "rdtsc.c" 1
rdtsc
# 0 "" 2
#NO_APP
movq %rax, (%rdi)
movq %rdx, (%rsi)
ret
.cfi_endproc
.LFE0:
.size f, .-f
.ident "GCC: (GNU) 4.7.2 20121109 (Red Hat 4.7.2-8)"
.section .note.GNU-stack,"",@progbits
В чем я ошиблась?
В том, что не привела компилируемый код и сообщение об ошибке.