循环指令的文档中是否有typo/bug?
Is there a typo/bug in the documentation of the loop instruction?
在英特尔 loop
指令的以下伪代码描述中,当操作数大小为 16 时,此描述似乎省略了在采用的情况下对 DEST
分支目标操作数的使用:
IF BranchCond = 1
THEN
IF OperandSize = 32
THEN EIP ← EIP + SignExtend(DEST);
ELSE IF OperandSize = 64
THEN RIP ← RIP + SignExtend(DEST);
FI;
ELSE IF OperandSize = 16
?---> THEN EIP ← EIP AND 0000FFFFH;
FI;
FI;
IF OperandSize = (32 or 64)
THEN IF (R/E)IP < CS.Base or (R/E)IP > CS.Limit
#GP; FI;
FI;
FI;
ELSE
Terminate loop and continue program execution at (R/E)IP;
FI;
通过我添加的箭头 (?--->
),在我看来 DEST
在 16 位 OperandSize 的情况下未被使用——它防止换行但没有添加任何内容。
来自英特尔的报道:
FelixCloutier 与 intel 的代码相同:
https://www.felixcloutier.com/x86/loop:loopcc
如果这是英特尔规范中的 typo/bug 在哪里报告它?
是的,看起来像错误。 loop
指令确实跳转,而不仅仅是截断 EIP,在 16 位模式下就像在其他模式下一样。
(R/E)IP < CS.Base
看起来也像一个错误;线性地址由CS.Base加上EIP构成。即有效的 EIP 值是从 0
到 CS.Limit
,无符号,不管 non-zero CS base.
我认为英特尔的论坛是报告手册/指南中的错误的一种方式,但在哪个部分报告并不明显。
https://community.intel.com/t5/Intel-ISA-Extensions/bd-p/isa-extensions 有一些帖子包含内在函数指南的错误报告,这引起了英特尔人员的注意,他们可以对此做些什么。
也有可能https://community.intel.com/t5/Software-Development-Topics/ct-p/software-dev-topics or some other sub-forum of the "software developer" forums。 “cpu”论坛似乎是关于使用 CPU 的人,例如主板/RAM 兼容性和其他东西。
在英特尔 loop
指令的以下伪代码描述中,当操作数大小为 16 时,此描述似乎省略了在采用的情况下对 DEST
分支目标操作数的使用:
IF BranchCond = 1
THEN
IF OperandSize = 32
THEN EIP ← EIP + SignExtend(DEST);
ELSE IF OperandSize = 64
THEN RIP ← RIP + SignExtend(DEST);
FI;
ELSE IF OperandSize = 16
?---> THEN EIP ← EIP AND 0000FFFFH;
FI;
FI;
IF OperandSize = (32 or 64)
THEN IF (R/E)IP < CS.Base or (R/E)IP > CS.Limit
#GP; FI;
FI;
FI;
ELSE
Terminate loop and continue program execution at (R/E)IP;
FI;
通过我添加的箭头 (?--->
),在我看来 DEST
在 16 位 OperandSize 的情况下未被使用——它防止换行但没有添加任何内容。
来自英特尔的报道:
FelixCloutier 与 intel 的代码相同:
https://www.felixcloutier.com/x86/loop:loopcc
如果这是英特尔规范中的 typo/bug 在哪里报告它?
是的,看起来像错误。 loop
指令确实跳转,而不仅仅是截断 EIP,在 16 位模式下就像在其他模式下一样。
(R/E)IP < CS.Base
看起来也像一个错误;线性地址由CS.Base加上EIP构成。即有效的 EIP 值是从 0
到 CS.Limit
,无符号,不管 non-zero CS base.
我认为英特尔的论坛是报告手册/指南中的错误的一种方式,但在哪个部分报告并不明显。
https://community.intel.com/t5/Intel-ISA-Extensions/bd-p/isa-extensions 有一些帖子包含内在函数指南的错误报告,这引起了英特尔人员的注意,他们可以对此做些什么。
也有可能https://community.intel.com/t5/Software-Development-Topics/ct-p/software-dev-topics or some other sub-forum of the "software developer" forums。 “cpu”论坛似乎是关于使用 CPU 的人,例如主板/RAM 兼容性和其他东西。