You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

x86汇编指令“Intel group”分类的起源是哪里?

x86「Intel group」指令分类的起源说明
  • 首先可以明确:不存在对应的英特尔官方公开定义,该分类是FreeDOS Debug项目的内部约定命名,从未出现在任何英特尔官方发布的处理器编程手册中。
  • 该分类的最早可追溯记录为1997年发布的FreeDOS Debug 0.95版本源码,开发者设计这套分类的目的是规整x86指令集里共享1-2字节相同操作码、通过ModR/M字节的/r字段区分具体指令的集合,前缀加「Intel」仅表示该分类的底层规则基于英特尔x86的指令编码规范,不代表是英特尔官方推出的分类。
  • 这套命名仅在FreeDOS Debug衍生项目生态内流传:lDebug等工具都是基于FreeDOS Debug的代码分支迭代开发,所以沿用了这套内部命名。检索相关关键词仅能找到同系列项目的内容,也证明该分类从未被官方或其他第三方广泛采纳。

你提到的分组定义就是该项目当年的内部表实现,代码如下:

/*
 *  Here are the tables for the main processor groups.
 */

struct {
    int seq;    /* sequence number of the group */
    int info;   /* which group number it is */
}
    grouptab[]  = {
        {0x80, GROUP(1)},   /* Intel group 1 */
        {0x81, GROUP(1)},
        {0x83, GROUP(2)},
        {0xd0, GROUP(3)},   /* Intel group 2 */
        {0xd1, GROUP(3)},
        {0xd2, GROUP(4)},
        {0xd3, GROUP(4)},
        {0xc0, GROUP(5)},   /* Intel group 2a */
        {0xc1, GROUP(5)},
        {0xf6, GROUP(6)},   /* Intel group 3 */
        {0xf7, GROUP(6)},
        {0xff, GROUP(7)},   /* Intel group 5 */
        {SPARSE_BASE + 0x00, GROUP(8)},     /* Intel group 6 */
        {SPARSE_BASE + 0x01, GROUP(9)}};    /* Intel group 7 */

/* #define  NGROUPS 9 (this was done above) */

struct {    /* sparse groups */
    int seq;    /* sequence number of the group */
    int info;   /* which group number it is */
}
    sp_grouptab[]   = {
        {0xfe, SGROUP(1)},      /* Intel group 4 */
        {SPARSE_BASE+0xba, SGROUP(2)},  /* Intel group 8 */
        {SPARSE_BASE+0xc7, SGROUP(3)},  /* Intel group 9 */
        {0x8f, SGROUP(4)},      /* Not an Intel group */
        {0xc6, SGROUP(5)},      /* Not an Intel group */
        {0xc7, SGROUP(5)}};

/* #define  NSGROUPS    5 (this was done above) */

内容的提问来源于stack exchange,提问作者ecm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 03:24:01