IA-32 and Intel 64 (x86 & x86_64) EFLAGS Register
我们首先介绍16/32位的EFLAGS标志寄存器,然后再简要的概述Intel 64架构下的64位标志寄存器。
16位标志寄存器FLAGS
由于Intel处理器在指令集架构层面上始终保持了向前兼容性,所以标志寄存器中的各个标志位的位置与功用在各代处理器之间都保持不变,所以对这些16位的标志寄存器的各个标志位的详细解释可以参考32位标志寄存器章节。处于历史信息完成的目的,我们列出各代处理器上标志寄存器发生的变化。
8086/80186标志寄存器FLAGS
8086/80816的标志寄存器包含了CF/PF/AF/ZF/SF以及TF/IF/DF/OV标志位。
从上图中可以看到CF/PF/AF/ZF标志位并不是连续的排布,其实这个布局是为了兼容Intel早期的8080 8位微处理器的标志寄存器的标志位布局(下图来自于/wiki/Intel_8080#Flags),那时候叫做状态寄存器(黄色标出),所以这些标志也被称为状态标志。
80286/286/Intel286标志寄存器FLAGS
80286增加了IOPL/NT标志位,主要服务于保护模式和多任务机制。
如果觉得《Intel 64/x86_64/x86/IA-32处理器标志寄存器详解(1) - 16位FLAGS(8086/80186/80286)》对你有帮助,请点赞、收藏,并留下你的观点哦!