我运行这段代码,它是从一个只接受整数 num1 和 num2 的输入并将它们传递给 sum.asm 的 C++ 程序调用的。我得到错误: A2022:指令操作数在 sum.asm 第 5 行 MSB3721 中的大小必须相同:命令 "mI64.exe/c/nologo /Zi/Fo "x64\Debug\sum.obj" /W3 /errorReport: prompt /Ta" ......\OneDrive\Documents\sum.asm"" exited with code 1. in masm.targets line 70
我尝试更改
mov rax, eax
为,
movq rax, [eax]
因为我看到这就像我的另一个问题的答案之一,但它给了我另一个错误,说它不是正确的语法
主.cpp:
#include <iostream>
extern "C" int sum (int num1, int num2);
int main() {
int num1, num2, answer;
std::cout << "Enter num1:" << std::endl;
std::cin >> num1;
std::cout << "Enter num2:" << std::endl;
std::cin >> num2;
answer = sum(num1, num2);
std::cout << num1 << "+" << num2 << "=" << answer << std::endl;
return 0;
}
总和.asm:
_sum PROC
mov eax, ecx
add eax, edx
mov rax, eax
ret
_sum ENDP
END
This is just supposed to add the 2 numbers passed in from the main c++ project and then return the sum.