Я строю функции сборки 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