简体   繁体   English

mov 机器代码仅在一台机器上崩溃,两者都是 x86,可能不同的解释?

[英]mov machine code crashes on only one machine, both x86, possibly different interpretation?

Running the machine code运行机器代码

66 50 //push ax
b0 20 //mov al,0x20
a2 20 00 04 11 //mov ds:0x11040020,al // this seems to read 0xffffffffffffffff on one machine
66 58 //pop ax
c3 //ret

works on one machine but fails with an access violation trying to read 0xffffffffffffffff when executing the second move on the other.在一台机器上工作,但在另一台机器上执行第二次移动时尝试读取 0xffffffffffffffff 导致访问冲突失败。

both machines report report using the amd64 instruction set (checked via win10 environment variable)两台机器都使用 amd64 指令集报告报告(通过 win10 环境变量检查)

none of these instructions seem to be from a new addition to the used instruction set but maybe they still get interpreted differently?这些指令似乎都不是来自已使用指令集的新添加,但也许它们仍然得到不同的解释?

thanks in advance for the help在此先感谢您的帮助

It seems like one machine interprets the machine code as x86-64 and the other as x86 leading to a crash on the x86-64 machine似乎一台机器将机器代码解释为 x86-64 而另一台机器解释为 x86 导致 x86-64 机器崩溃

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM