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

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Ответить
Аватара пользователя
Сионист
Сообщения: 1077
Зарегистрирован: 31 мар 2014, 06:18

22 дек 2015, 13:54

Куда она помещает случайное число? Какую разрядность имеет это число?
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

22 дек 2015, 15:08

RDRAND Reg16
RDRAND Reg32
RDRAND Reg64

Помещает в заданный регистр случайное целое число, в зависимости от размера регистра. Диапазон выбираемого числа: 0 - (2^N-1), где N - разрядность регистра.
It's a long way to the top if you wanna rock'n'roll
Аватара пользователя
Сионист
Сообщения: 1077
Зарегистрирован: 31 мар 2014, 06:18

22 дек 2015, 16:15

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

unsigned long int Result;
 asm
 (
  RDRAND EAX
  MOV Result, EAX;
 )
 return Result;
error: expected string-literal before 'RDRAND'
.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

22 дек 2015, 16:16

Очевидно, компилятор ничего не знает об этой инструкции.
It's a long way to the top if you wanna rock'n'roll
Аватара пользователя
Сионист
Сообщения: 1077
Зарегистрирован: 31 мар 2014, 06:18

22 дек 2015, 16:31

Он походу и о MOV не подозревает:

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

asm
 (
   MOV AX, BX
  )
,
error: expected string-literal before 'MOV'|
. Или я что то делаю не так? Как вообще под кодоблоками юзать интеловский генератор?
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

22 дек 2015, 16:40

Что-то с синтаксисом, наверное. Тут уже к знатокам С/С++.
It's a long way to the top if you wanna rock'n'roll
Аватара пользователя
Сионист
Сообщения: 1077
Зарегистрирован: 31 мар 2014, 06:18

22 дек 2015, 18:12

Синтаксис AT&T.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Ответить