Инструкция BSWAP в расширенном ASM - PullRequest
0 голосов
/ 31 марта 2020

Я написал простую программу, предназначенную для изменения значений с порядкового номера на обратный. Я пытался использовать инструкцию по сборке bswap, но она никогда не возвращает правильное значение. Вот мой код в расширенном ASM:

unsigned int func(unsigned int a)
{
unsigned int b;
asm volatile (
    "bswap %1\n\t" 
    "movl %1, %0"
    :"=r"(b) 
    :"r"(b), "r"(a)
);
return b;}

Например, когда я передаю значение 0x00110011 функции, возвращаемое значение равно 00d0f5f7. Каждый раз, когда я выполняю программу, возвращается другое значение независимо от параметра. Я не уверен, почему это происходит, любое объяснение будет оценено. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...