Постоянное значение слишком большое для или, но не для перемещения на 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

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