Assembly 汇编指令和操作码前的额外2E前缀?

Assembly 汇编指令和操作码前的额外2E前缀?,assembly,x86,Assembly,X86,当我跟踪一个汇编程序时,遇到一条指令“CALL DWORD PTR CS:[],操作码为2E:FF15 84244100!现在我想知道: 尽管与Call指令相关的操作码是EA,但为什么要使用上面提到的操作码呢 FF15前面的2E:指的是什么 2e是CS段覆盖 。调用的目标在内存操作数中。(即,它从内存加载新的EIP)。如果没有CS前缀,它将使用DS段的基/限制进行该寻址模式 (所以我想你指的是E8,它是通常调用rel32的操作码。)2E是cs段寄存器前缀。FF15…操作码是调用DWORD PTR

当我跟踪一个汇编程序时,遇到一条指令“CALL DWORD PTR CS:[],操作码为2E:FF15 84244100!现在我想知道:

  • 尽管与Call指令相关的操作码是EA,但为什么要使用上面提到的操作码呢

  • FF15前面的2E:指的是什么


  • 2e是CS段覆盖

    。调用的目标在内存操作数中。(即,它从内存加载新的EIP)。如果没有CS前缀,它将使用DS段的基/限制进行该寻址模式


    (所以我想你指的是E8,它是通常调用rel32的操作码。)
    2E
    cs
    段寄存器前缀。
    FF15…
    操作码是
    调用DWORD PTR ds:0x412484
    ,因为
    ds
    是此指令的默认段寄存器,当未指定时,
    2E
    cs
    前缀将其修改为
    调用DWORD PTR cs:0x412484
    >…你为什么不阅读指导手册而不是在这里提问?你会问你将遇到的每一条新指令吗?谢谢。但我猜你的意思是“DS覆盖”?据我所知,这条指令默认使用DS。DS是默认段。CS段覆盖说使用CS代替。