/ 4在FF/4中的含义是什么?

Qix*_*Qix 5 x86 assembly

通常在x86文档中引用的一个站点有一些带有斜杠和数字的指令代码.例如,jmp接近绝对间接给出FF /4,而jmp远绝对间接给出FF /5.

什么的/4/5是什么意思?

为了运行一个快速的小测试,我附加了一个32位进程,分配了一点内存并插入了汇编程序jmp dword ptr[0x12345678]; 生成的字节码是FF 25 78563412.我理解地址的结尾,但是如何25/4/5

我的猜测是我生成了一个jmp远,并且/5意味着有五个字节作为参数(地址为4个字节+ 1个字节25).我仍然对它的来源感到困惑25.

Igo*_*sky 10

在英特尔参考手册的"3.1.1.1指令汇总表中的操作码列"部分中:

  • / digit - 0到7之间的数字表示指令的ModR/M字节仅使用r/m(寄存器或存储器)操作数.reg字段包含提供指令操作码扩展的数字.
  • / r - 表示指令的ModR/M字节包含寄存器操作数和r/m操作数.

这种表示法通常也在ModR/M字节的各种描述中提及,例如

  • 多年后,终于深入了解:PM64 指的是“处理器模式 64”,或“长模式”。应该足够作为一个起点。 (3认同)