问题描述
在开发 86-DOS 应用程序 lDebug 的分支期间,我遇到了称为“Intel 组”的指令类别。具体来说,组是指与使用相同的 1 或 2 个操作码字节的一组指令相关的内容,由 ModR/M 字节的 /r
字段区分。
“Intel group”类别可以追溯到 1997 年发布的 FreeDOS Debug 0.95,可以看到 in that revision of my fddebug repo:
/*
* 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,{0x83,GROUP(2)},{0xd0,GROUP(3)},/* Intel group 2 */
{0xd1,{0xd2,GROUP(4)},{0xd3,{0xc0,GROUP(5)},/* Intel group 2a */
{0xc1,{0xf6,GROUP(6)},/* Intel group 3 */
{0xf7,{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) */
我找不到有关“英特尔集团”分类的任何信息。像 "intel group 2a" 这样的精确网络搜索只会找到相同应用程序的存储库。更广泛的搜索不会在这些评论中找到与使用匹配的任何内容。
我也从未在我阅读过的英特尔手册中找到任何“组”类别。例如,this 486 manual 似乎没有在其指令集参考中列出组。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)