为什么在执行 pushl 指令时 rA:rB 是 2:8 而不是 2:f?

Why the rA:rB is 2:8 instead of 2:f in the execution of a pushl instruction?

我正在阅读《计算机系统:程序员的视角》第 4 章并了解顺序 Y86 implementations.So 这里是汇编代码:

并且我们跟踪pushl指令的执行来分析push的每一步operation.Here就是这个过程,左边是通用的,右边是具体的:

除了rA:rB以外的步骤我都能看懂。看第一张图,指令是a02f,所以在这种情况下,icode:ifun应该是a:0,rA:rB应该是2:f。但是,根据书,rA:rB实际上是2:8而不是2:f。但是为什么呢?我真的不知道在哪里'8'来自.

这是一个勘误表,列在 errata page for the 2nd edition of the book:

第 4 章:处理器体系结构

  • 页。 370, 除了跟踪 pushl 指令: 第二个指令字节应该是 0x2f,而不是 0x28。 Fetch阶段rB的值应该是0xf而不是0x8。