Что делает этот x86 встроенный ассемблерный код?

Можно считать этот ddj статья

В основном, наследоваться станд.:: итератор для получения большей части работы, сделанной для Вас.

8
задан Deduplicator 18 February 2015 в 15:18
поделиться

3 ответа

Это генерирует два байта (0F 31) непосредственно в поток кода. Это инструкция RDTSC, которая считывает счетчик отметок времени в EDX: EAX, который затем копируется в переменную 'x' ограничением вывода "= A" (x)

11
ответ дан 5 December 2019 в 10:04
поделиться

Он вставляет код операции 0F 31, который согласно на этом сайте имеет вид:

0F 31   P1+   f2   RDTSC EAX EDX IA32_T...        Read Time-Stamp Counter 

Затем он сохраняет результат в переменной x

2
ответ дан 5 December 2019 в 10:04
поделиться

0F 31 - это код операции x86 для инструкции RDTSC (считывание счетчика меток времени); он помещает считанное значение в регистры EDX и EAX.

Директива _ _ asm__ не просто объявляет два байта, она помещает встроенную сборку в код C. Предположительно, у программы есть способ использовать значение в этих регистрах сразу после этого.

http://en.wikipedia.org/wiki/Time_Stamp_Counter

4
ответ дан 5 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: