инструкция скопировать младшие 32 бита регистра в верхние 32 бита - PullRequest
0 голосов
/ 17 февраля 2011

Существует ли инструкция x86 для прямой репликации младших 32 битов регистра x86_64 в старшие 32 биты?

Example : rbx -> 0x0123456789ABCDEF
Resultant rbx -> 0x89ABCDEF89ABCDEF

1 Ответ

0 голосов
/ 17 февраля 2011

Если я правильно помню свой класс ассемблера, то только два младших байта в каждом регистре могут быть адресованы индивидуально (al, ah, bl, bh и т. Д.).Поэтому, если вы ищете одну инструкцию, вам, вероятно, не повезло.

Если это может быть несколько инструкций, я бы, вероятно, выбрал комбинацию сдвига влево и маскирования (простите мой псевдокод -это было какое-то время):

tmp = rbx
#Make sure you're using the version of left shift that zeroes the right bits:
tmp = tmp << 32
rbx = rbx & 0x00000000ffffffff
rbx = rbx | tmp

Надеюсь, это поможет!

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