我正在尝试使用ICC 2018编译以下代码:
__asm {
mov ebx, xx ;xx address to registers
}
Run Code Online (Sandbox Code Playgroud)
其中xx的类型为int16.这是我函数中的第一条指令.
我使用上面的汇编代码得到以下警告:警告#13212:在需要堆栈对齐的函数中引用ebx
令人惊讶的是,当我用eax或esi替换ebx时,我看到警告消失了.我无法理解为什么我只看到ebx的问题,据我所知,ebx和eax都有相同的架构(32位寄存器).
此外,当我使用ICC 2013编译相同的代码时,我没有看到警告.
谁能帮我解决这个警告?
谢谢!