XCHG RAX,RAX

Jan 05, 2021 16:42


Коварный 1master подарил мне прикольную весч - https://www.amazon.com/xchg-rax-xorpd/dp/1502958082/ref=sr_1_1?dchild=1&keywords=xchg+rax&qid=1609893229&sr=8-1 - книжку ассемблерных пазлов под названием XCHG RAX,RAX.

Название, кстати, сам по себе пазл. Ответ я знаю со времен изучения ассемблера 30 лет назад (что? бля.... 1991 год).

Дело в том, что у меня не было своего компьютера. Поэтому я писал программки на бумажке и ассмеблировал вручную и писал руками шестнадцеричные дампы. А потом в лабе вбивал уже прямо дамп руками и поучал исполняемый COM-файл. Поэтому я эксперементировал с битами в инструкциях и случйно узнал что XCHG AX,AX это 90h - то есть NOP. В 32- и 64-битных режимах по умолчанию кодирование сделано так, что регистры имеют "натуральную" ширину - так что NOP это XCHG RAX,RAX.

Previous post Next post
Up