Постоянное значение слишком большое для или, но не для перемещения на x64 [дублировать]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Постоянное значение слишком большое для или, но не для перемещения на x64 [дублировать]

Сообщение Anonymous »

Я строю функции сборки x64, компилятор Microsoft ML64, который поставляется с VisualStudio. Получается, что я не могу выполнять бить на 64 -битных регистрах, когда я указываю значение, превышающее 32 бит, или для математических операций. Но это нормально, если я использую 64 -битные константы для MOV. Есть ли какая-то альтернатива для или /добавления, которая разрешает 64-битные константы?

Вот извлечение кода: < /p>
text segment
public DoSomething
text ends

.code mycode
DoSomething:
mov rax, 300000000h; ok
or rax, 300000000h; compile error
add rax, 300000000h; compile error
or rax, 30000000h; ok
add rax, 30000000h; ok
ret
mycode ends
end
< /code>
Не совсем о C ++, но он связан с следующим модулем: < /p>
extern "C" int DoSomething();

int main()
{
DoSomething();
return 0;
}


Подробнее здесь: https://stackoverflow.com/questions/795 ... mov-on-x64
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»