Привет, я хочу поменять 16-битное значение. В другом вопросе кто-то предложил следующее решение. Но это работает только с Immidiate значений,Как поменять значение 16 бит на ассемблере x86?
mov eax, 0AABBCCDDh
xchg ah, al
ror eax, 16
xchg ah, al.
Но это работает только с Immidiate значений. Есть ли решение, где я могу поменять 16-битное значение, которое находится в регистре?
Edit: С свопа я имею в виду 0xAFBA -> 0xBAFA
Что вы имеете в виду swap - изменить endianness, т.е. переключить высокий и младший байт? –
Значение находится в регистре после его загрузки. Поэтому у вас на самом деле меньше работы. Я не понимаю, чего вы пытаетесь достичь. –
Существует 'bswap' за то, что вы делаете выше. –