首页 > 其他分享 >x86寄存器

x86寄存器

时间:2022-12-05 23:56:23浏览次数:70  
标签:标志 x86 CACHE 指令 寄存器 对齐 CPU

x86寄存器

标志寄存器

标志寄存器eflags,记录了CPU执行指令过程中的一系列状态,这些标志大都由CPU自动设置和修改。

  • CF:进位标志位。无符号数运算时,运算结果的最高有效位向前有借位或进位。
  • PF:奇偶标志位。运算结果所有的bit中1的个数为偶数则为1,为奇数则为0。
  • AF:辅助进位标志位。运算过程中看最后四位,不论长度为多少,最后四位向前有借位或者进位。
  • ZF:零标志位。执行结果是否为0。
  • SF:符号标志位。执行结果的符号位(最高位)。
  • TF:调试标志位。当TF=1时,处理器每次只执行一条指令,即单步执行。
  • IF:中断允许标志位。是否响应外部中断。可以通过sticli指令来开启和关闭。
  • DF:方向标志位。在串处理指令中,每次操作后,如果DF=0,si、di递增;如果DF=1,si、di递减。可以通过stdcld指令来设置。
  • OF:溢出标志位。记录了有符号运算的结果是否发生了溢出。
  • IOPL:是从80286开始出现的,占2个bit表示I/O特权级,如果当前特权级小于或等于IOPL,则可以执行I/O操作,否则将出现一个保护性异常。IOPL只能由特权级为0的程序或任务来修改。
  • NT:也是从80286开始出现的,表示嵌套任务,用于控制中断返回指令IRET,当NT=0时,用堆栈中保存的值恢复EFLAGS、CS和EIP,从而实现返回;若NT=1,则通过任务切换实现中断返回。
  • VM:表示虚拟8086模式,如果VM被置位且80386已出于保护模式下,则CPU切换到虚拟8086模式,此时,对段的任何操作又回到了实模式,如同在8086下运行一样。
  • RF:表示恢复标志(也叫重启标志),与调试寄存器一起用于断点和单步操作,当RF=1 时,下一条指令的任何调试故障将被忽略,不产生异常中断。当RF=0时,调试故障被接受,并产生异常中断。用于调试失败后,强迫程序恢复执行,在成功执行每条指令后,RF自动复位。
  • AC:表示对齐检查。这个标志是80486以后的CPU才有的。当AC=1且CR0中的AM=1时,允许存储器进行地址对齐检查,若发现地址未对齐,将产生异常中断。所谓地址对齐,是指当访问一个字(2字节长)时,其地址必须是偶数(2的倍数),当访问双字(4字节长)时,其地址必须是4的倍数。但是只有运行在特权级3的程序才执行地址对齐检查,特权级0、1、2忽略该标志。
  • VIF:表示虚拟中断标志。以下的三个标志是Pentium以后的CPU才有的。当VIF=1时,可以使用虚拟中断,当VIF=0时不能使用虚拟中断。该标志要和下面的VIP和CR4中的VME配合使用。
  • VIP:表示虚拟中断挂起标志。当VIP=1时,VIF有效,VIP=0时VIF无效。
  • ID:表示鉴别标志。该标志用来只是Pentium CPU是否支持CPUID的指令。

控制寄存器

  • cr0: 存储了CPU控制标记和工作状态。
  • cr1: 保留未使用。
  • cr2: 导致出现页错误的线性地址。
  • cr3: 存储了当前进程的页目录地址。
  • cr4: 存储了CPU工作相关以及当前任务的一些信息。

cr0

  • PE:开启保护模式。PE=0表示CPU工作在实模式,PE=1表示CPU工作在保护模式。
  • MP:监控协处理器。MP=1表示协处理器在工作,MP=0表示协处理器未工作。
  • EM:协处理器仿真,当MP=0,EM=1时,表示正在使用软件仿真协处理器工作。
  • TS:任务转换,每当进行任务转换时,TS=1,任务转换完毕,TS=0。TS=1时不允许协处理器工作。
  • ET:处理器扩展类型,反映了所扩展的协处理器的类型,ET=0为80287,ET=1为80387。
  • NE:数值异常中断控制,NE=1时,如果运行协处理器指令发生故障,则用异常中断处理,NE=0时,则用外部中断处理。
  • WP:写保护,当WP=1时,对只读页面进行写操作会产生页故障。
  • AM:对齐标志,AM=1时,允许对齐检查,AM=0时不允许,关于对齐,在EFLAGS的AC标志时介绍过,在80486以后的CPU中,CPU进行对齐检查需要满足三个条件,AC=1、AM=1并且当前特权级为3。
  • NW(Not Write-through)和CD(Cache Disable),这两个标志都是用来控制CPU内部的CACHE的,当NW=0且CD=0时,CACHE使能,其它的组合说起来比较复杂。
  • PG:页式管理机制使能,PG=1时页式管理机制工作,否则不工作。

cr3

  • PCD:页CACHE禁止,当PCD=0时,页目录表进行高速缓存,PCD=1时,不进行高速缓存;该位控制PCD引脚控制外部CACHE工作还是不工作。
  • PWT:CACHE的写入分为透写(Write-Through)和回写(Write-Back),80486以上的CPU内部的CACHE都是透写的,但对外部CACHE而言,允许某些页是回写的,而另一些页是透写的,当PWT=1时,外部CACHE对页目录进行透写,否则进行回写;此位驱动PWT引脚以控制外部CACHE是透写还是回写。CR4是从Pentium CPU开始出现的。

cr4

  • VME:虚拟8086方式扩展,VME=1允许使用虚拟8086扩展模式,否则只能使用80386/80486的虚拟8086模式。
  • PVI:保护模式虚拟中断,PVI=1时,在保护模式下支持虚拟中断标志VIF(EFLAGS中),PVI=0则不支持虚拟中断标志。
  • TSD:时间戳禁止,TSD=1时,允许在特权级为0的程序中执行RDTSC指令(读时间戳计数指令),TSD=0时,允许任何特权级执行RDTSC指令。
  • DE:调试扩展。
  • PSE:页大小扩展,PSE=1时,页大小可以扩展到2M或4M,PSE=0时,页大小只能是4K.
  • PAE:物理地址扩展,PAE=1时,页物理地址可以扩展到36bits以上,PAE=0时只能用32bits的物理地址。
  • MCE:硬件检查使能,Pentium以后的CPU有一种硬件检测功能,MCE=1时允许使用该功能。
  • PGE:全局页使能,PGE=1时,允许使用全局页,PGE=0时禁止使用全局页。
  • PCE:性能监视计数器使能,当PCE=1时,允许在任何保护级下执行RDPMC指令,PCE=0时,只有特权级0的程序可以执行RDPMC指令。
  • VMXE:VMX使能位,VMXE=1时,允许VMX操作。
  • SMXE:SMX使能位,SMXE=1时,允许SMX操作。

参考资料

标签:标志,x86,CACHE,指令,寄存器,对齐,CPU
From: https://www.cnblogs.com/HachikoT/p/16953947.html

相关文章

  • CPU各寄存器的作用
    CPU各寄存器的作用-[Asm]寄存器作用:ebp和esp是32位的SP,BPesp是堆栈指针ebp是基址指针ESP与SP的关系就象AX与AL,AH的关系.32位CPU所含有的寄存器有:4个数据寄存器(EAX、EB......
  • x86汇编指令分析
    #include<stdio.h>#include<stdlib.h>voidtest1(floata1,doublea2,shorta3,inta4,unsignedinta5,unsignedchara6){intb1=0;b1......
  • 学习x86汇编语言6 使用Bochs调试自己的引导程序
    一、Bochs简介Bochs是一个x86的软件模拟器,用来模拟x86CPU、一些硬件和​​BIOS​​等,可以用来运行Windows、Linux等软件。由于它是纯软件模板,所以运行速度比起​​VmWare......
  • 1530_AURIX_TriCore内核架构_通用寄存器以及系统寄存器
    全部学习汇总:​​GreyZhang/g_tricore_architecture:somelearningnoteabouttricorearchitecture.(github.com)​​继续看一下内核手册,这次了解一下通用寄存器以及系......
  • 【汇编语言】第3章 寄存器(内存访问)
    ​【汇编语言】第3章寄存器(内存访问)本文分为4个部分:书本知识点概览书本自带的小结书本习题解析个人小结文章目录​​【汇编语言】第3章寄存器(内存访问)​​​​知识点概览......
  • 【Docker】安装镜像报错warning: /var/cache/yum/x86_64/7/extras/packages/epel-rele
      这个的解决方法就是加上这个就可以了  ......
  • 单片机定时器寄存器配置方法
    单片机定时器寄存器配置方法 定时器的使用方法1.选择工作方式(设置M1,M0) 设置TMOD的值选择控制方式(设置GATE)选择定时器还是计数器模式(设置C/......
  • 03-02 KEY IMXULL 寄存器
    1原理图KEY1<--->GPIO5_1KEY2<--->GPIO4_142寄存器操作指南使能GPIO5和GPIO4的时钟(imx6ull默认使能)查询寄存器可知,GPIO5_CLK_ENABLE使用CCGR1[CG15];GPIO4......
  • 【嵌入式系统】存储器映射与寄存器映射原理
    【嵌入式系统】存储器映射与寄存器映射原理一、存储器映射图1存储器映射存储器在产家制作完成后是一片没有任何信息的物理存储器,而CPU要进行访存就涉及到内存地址的概......
  • 中断控制寄存器的说明/临界区的进出
    中断控制寄存器对中断的屏蔽与否,通过一下控制寄存器决定 简单来说就是PRIMASK只留了个NMI(不可屏蔽异常,一般是系统出错)和硬件异常;FAULTMASK只留了个硬件异常......