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)