2012-11-09 51 views
2

在16位标志寄存器的英特尔8086处理器的有9个标志(各1比特,比特数0,2,4,6,7,我们知道它们是ZF,OF,...)的8,9,10,11位数1,3,5被标记为“U”(未定义),位号12,13,14,15被标记作为“R”(保留)。差8086处理器的标志寄存器

我的问题是,什么是保留位,在英特尔8086处理器的未定义位之间的区别?

谢谢

回答

2

保留位可能被定义。未定义的位永远不会。如果某位是“保留”,则保留用于某种特定用途。如果它是“未定义的”,那么在那个时候没有决定目的。

例如,如果一个位设置用户从不应该能够实现特定的测试模式,该位将被保留,但它不会是不确定的。

+0

感谢您的回答。在这个特定的主题中,保留位12,13,14和15的目的是什么?例如它们在组装转换命令(例如SAR和SHR)中是否有用,或者它们保留用于测试目的? –

+1

我不认为它是公开的。我们知道的是,12和13成为I/O特权级别,14成为大型处理器上的嵌套任务标志。但就我所知,没有人公开说明英特尔在最初保留这些标志时所考虑的内容。 –

3

保留几乎总是意味着“留作将来使用”,允许英特尔在以后的CPU添加扩展。

标志中没有一个是“未定义” - 它们都是定义或保留。你可能看到的是一张描述每个指令如何影响不同标志的表格,其中特定指令对特定标志的影响可能是未定义的(即使该特定标志不是未定义标志)。一个例子是IDIV指令,它将大多数定义的标志(溢出,进位等)保留在未定义的状态。

+1

1未定义用于IDIV等意味着使用30-100个时钟周期来遍历格指令电流的微架构,可以修改一些标志 - 这是确定性的,当然,但它为未定义最好的描述。 –