|
|
1
1
综上所述: 调试输出显示代码是为64位编译的,并且(正如Hans所指出的)所使用的异常处理样式仅对32位有效。确保代码编译为32位可以解决问题。 如果这回答了您的问题,请单击左侧的复选标记,以便获得业力。 |
|
|
2
0
除了64位的问题之外,你还无缘无故地大吃一惊
我很惊讶它竟然能和你的原始消息源一起工作。你很幸运,编译器正在重写
你也很幸运,编译器没有在两个asm语句之间插入任何指令
除此之外,
使用以下内容
当被询问时,编译器将负责将变量保存在寄存器中。如果它想存储
由于(根据Hans的说法),此代码仅在32位时有用,所以我在
除此之外,此源代码可以编译为正确的64位代码,因为它没有显式命名任何寄存器。
您可以删除
要使它在32位和64位之间可移植地使用立即数操作数,您需要让它输出64位的“movq”。我认为您必须使用预处理器来测试i386和amd64。
|