在介绍X86浮点栈结构之前,先说明一下X87,X87是IA_32体系结构中为提高浮点数据处理能力而增加的X87芯片系列数学协处理器,使用X87指令,X86指令集和X87指令集统称为X86指令集。可以简单的理解X87是一个浮点协处理器,是X86的浮点处理单元。
X86的浮点单元(X87 FPU)用作浮点数据处理,必然要使用寄存器,而且这个寄存器必然要同整点的不同。那么,在FPU中是怎么设计这些浮点寄存器呢?
实际上,X86的FPU中包含一个浮点寄存器栈,它包含了8个80位的可以直接进行浮点运算的寄存器,浮点数以双精度格式存储在这些寄存器中,无论是单精度、双精度还是整数等,被load到这些个寄存器中后,都会转化为双精度。FPU指令在使用这些寄存器的时候,是以一种“栈”的方式来使用,叫做“浮点寄存器栈”,其结构如下图所示:
最新回复评论