unsigned char val;
asm( "pushl %edx\n\tpushl %eax\n\trdtsc" );
asm( "movb %%al, %0" : "=r" (val) );
asm( "popl %eax\n\tpopl %edx" );
почему-то виснет, я видимо чего-то недопонимаю. rdtsc изменяет edx,eax, я беру младший байт (для генератора случайных чисел), но оно виснет. В сгенерированном коде какая-то чушь (project.s):
pushl %ebp
movl %esp, %ebp
subl $16, %esp
movb $0, -1(%ebp)
#APP
pushl %edx
pushl %eax
rdtsc
movb %al, %al
#NO_APP
movb %al, -1(%ebp)
#APP
popl %eax
popl %edx
#NO_APP
movzbl -1(%ebp), %eax
leave
ret
Ответ на:
комментарий
от xnix

Ответ на:
комментарий
от xnix

Ответ на:
комментарий
от NoName
Ответ на:
комментарий
от xnix

Ответ на:
комментарий
от NoName
Ответ на:
комментарий
от xnix
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от programmer
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Оптимизатор GCC 4.4 (2009)
- Форум библиотека функций на ассемблере (2006)
- Форум inline asm and registers clobbering (2004)
- Форум [asm][c]Содержимое регистра cs (2011)
- Форум Снова type aliasing, и баг в gcc (2016)
- Форум стек. перезапись адреса возврата (2006)
- Форум RH9.0 и do_brk :) (2003)
- Форум Не получается слинковать вручную объектный файл, созданный ассемблером as (2011)
- Форум Вентилятор i8k убивается чем-то (2015)
- Форум Вызов ассемблерной функции с аргументами в стеке (2015)