Мне нужно добавить содержимое CH
в EAX
в сборку x86, но нет режима адреса, который, как представляется, поддерживает это. В идеале я хотел бы в режим адресации, как:Как вы добавляете CH в EAX в сборку x86?
ADD EAX,r8
или
ADD r32,r8
или
ADD r/m32,r8
Но ADD
не имеет какой-либо из этих режимов. Я не могу замаскировать ECX
, потому что в нем есть другой нежелательный контент, который я использую в другом месте, и я использовал все мои другие регистры, поэтому мой единственный вариант заключается в использовании доступа к памяти. Любые идеи, как я могу решить эту проблему?
Примечание. Я не могу использовать такой режим, как r/m8,r8
, потому что тогда не будет переноса.
Пора идти на x64 и получить эти дополнительные регистры. :) –
[Опуская указатель кадра] (http://gcc.gnu.org/onlinedocs/gcc-3.4.4/gcc/Optimize-Options.html) помогает освободить еще один регистр, ускоряет выполнение функций и создает меньший код с торговлей для более сложной отладки. Но в любом случае лучше перейти на 64-битный –