2017-07-29 34 views
2

我看到在我的objdump的一个奇怪的指令:我的objdump中这行是什么?

64 2e 65 78 65 fs cs gs js,pn 0x4010cb 

当我尝试使用this手动拆卸操作码,我得到:

fs cs gs js 0x6a 

是什么指令是什么意思?它的意义是什么?

信息:使用win64格式的NASM在Windows 7 64位上编译汇编。

+6

这不是一条指令。它只是文本'd.exe'。你不能拆解它,并期望一个明智的输出。 – Jester

回答

5

这是一个前面带有一串前缀的跳转指令。它解码是这样的:

  • 64fs段覆盖前缀。它在这里什么也没做。
  • 2ecs段覆盖前缀。在条件跳转指令之前,它暗示不跳转。
  • 65gs段覆盖前缀。它在这里什么也没做。
  • 78是指令js“跳如果符号标志设置”
  • 65是该指令的操作数。

这条指令没有多大意义。由于编码对应于字符串d.exe,它可能是它实际上是数据而不是代码。也可能是汇编程序生成无用的前缀来进行某种对齐,但没有看到该指令所处的地址,则无法测试此假设。