Страница 1 из 1

Как пользоваться командой RDRAND?

Добавлено: 22 дек 2015, 13:54
Сионист
Куда она помещает случайное число? Какую разрядность имеет это число?

Re: Как пользоваться командой RDRAND?

Добавлено: 22 дек 2015, 15:08
somewhere
RDRAND Reg16
RDRAND Reg32
RDRAND Reg64

Помещает в заданный регистр случайное целое число, в зависимости от размера регистра. Диапазон выбираемого числа: 0 - (2^N-1), где N - разрядность регистра.

Re: Как пользоваться командой RDRAND?

Добавлено: 22 дек 2015, 16:15
Сионист

Код: Выделить всё

unsigned long int Result;
 asm
 (
  RDRAND EAX
  MOV Result, EAX;
 )
 return Result;
error: expected string-literal before 'RDRAND'
.

Re: Как пользоваться командой RDRAND?

Добавлено: 22 дек 2015, 16:16
somewhere
Очевидно, компилятор ничего не знает об этой инструкции.

Re: Как пользоваться командой RDRAND?

Добавлено: 22 дек 2015, 16:31
Сионист
Он походу и о MOV не подозревает:

Код: Выделить всё

asm
 (
   MOV AX, BX
  )
,
error: expected string-literal before 'MOV'|
. Или я что то делаю не так? Как вообще под кодоблоками юзать интеловский генератор?

Re: Как пользоваться командой RDRAND?

Добавлено: 22 дек 2015, 16:40
somewhere
Что-то с синтаксисом, наверное. Тут уже к знатокам С/С++.

Re: Как пользоваться командой RDRAND?

Добавлено: 22 дек 2015, 18:12
Сионист
Синтаксис AT&T.