c ++(Visual Studio 2010)でasm挿入を使用する場合、short型の16ビット変数を32ビットEAXレジスタに移動しようとすると、「互換性のない型」エラーが発生します。ただし、16ビットAXレジスタを使用すると、すべて正常に動作します。このエラーの背後にあるロジックは何ですか?ありがとうございました!
#include <iostream>
int main()
{
short sVar;
std::cout << "sVar=";
std::cin >> sVar;
__asm
{
MOV AX, sVar;
SHL AX, 1;
MOV sVar, AX;
}
std::cout << sVar << "\n";
return 0;
}