Assembly 汇编指令和操作码前的额外2E前缀?
当我跟踪一个汇编程序时,遇到一条指令“CALL DWORD PTR CS:[],操作码为2E:FF15 84244100!现在我想知道: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
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代替。