5
#include <stdio.h>
int main(){
__asm__ (
"result: \n\t"
".long 0 \n\t"
"rdtsc \n\t"
"movl %eax, %ecx\n\t"
"rdtsc \n\t"
"subl %ecx, %eax\n\t"
"movl %eax, result\n\t"
);
extern int result;
printf("%d\n", result);
}
assembler değişkeni geçen. Mümkün mü? Assembler kodum Segmentation fault (core dumped)
neden olur. Ubuntu 15.10 x86_64, gcc 5.2.1 kullanıyorum.I <code>result</code> değişkeni ile <code>main</code> assembler bazı veri geçmek istiyorum Cı
GCC size başvurmak için izin (https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html) Bunun için, [Genişletilmiş ASM] vardır __asm__' parçasındaki bir çıkış değişkenine. –
Buna eklemek için: kod, programın kod segmentinde 'result' için yer ayırır ve' .long 0', iki 'add% al, (% rax)' talimatlarını üretir. –
Saati okumak istiyorsanız, sadece neden imzasız uzun uzun değil a = __builtin_ia32_rdtsc() '? O zaman bir asm yazman gerekmez. –