电工技术基础_电工基础知识_电工之家-电工学习网

欢迎来到电工学习网!

寄存器的效果

2017-04-07 10:28分类:电工基础知识 阅读:

 

1、数据寄存器
数据寄存器首要用来保留操作数和运算效果等信息,然后节约读取操作数所需占用总线和拜访存储器的时间。32位CPU有4个32位的通用寄存器EAX、EBX、ECX和EDX。对低16位数据的存取,不会影响高16位的数据。这些低16位寄存器别离命名为:AX、BX、CX和DX,它和早年的CPU中的寄存器相一同。

4个16位寄存器又可切开成8个独立的8位寄存器(AX:AH-AL、BX:BH-BL、CX:CH-CL、DX:DH-DL),每个寄存器都有自个的称谓,可独立存取。程序员可运用数据寄存器的这种”可分可合”的特性,活络地处理字/字节的信息。
寄存器AX和AL一般称为累加器(Accumulator),用累加器进行的操作或许需求更少时间。累加器可用于乘、 除、输入/输出等操作,它们的运用频率很高; 寄存器BX称为基地址寄存器(Base Register)。它可作为存储器指针来运用; 寄存器CX称为计数寄存器(Count Register)。在循环和字符串操作时,要用它来操控循环次数;在位操作 中,当移多位时,要用CL来指明移位的位数;
寄存器DX称为数据寄存器(Data Register)。在进行乘、除运算时,它可作为默许的操作数参加运算,也 可用于寄存I/O的端口地址。在16位CPU中,AX、BX、CX和DX不能作为基址和变址寄存器来寄存存储单元的地址,但在32位CPU中,其32位寄存器EAX、EBX、ECX和EDX不只可传送数据、暂存数据保留算术逻辑运算效果,并且也可作为指针寄存器,所以,这些32位寄存器更具有通用性。
2、变址寄存器
32位CPU有2个32位通用寄存器ESI和EDI。其低16位对应早年CPU中的SI和DI,对低16位数据的存取,不影响高16位的数据。
寄存器ESI、EDI、SI和DI称为变址寄存器(Index Register),它们首要用于寄存存储单元在段内的偏移量,用它们可完毕多种存储器操作数的寻址方法,为以纷歧样的地址方法拜访存储单元供应便当。变址寄存器不行切开成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算效果。它们可作一般的存储器指针运用。在字符串操作指令的施跋涉程中,对它们有特定的恳求,并且还具有分外的功用。
3、指针寄存器
32位CPU有2个32位通用寄存器EBP和ESP。其低16位对应早年CPU中的SBP和SP,对低16位数据的存取,不影响高16位的数据。
寄存器EBP、ESP、BP和SP称为指针寄存器(Pointer Register),首要用于寄存仓库内存储单元的偏移量,用它们可完毕多种存储器操作数的寻址方法,为以纷歧样的地址方法拜访存储单元供应便当。指针寄存器不行切开成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算效果。
它们首要用于拜访仓库内的存储单元,并且规矩:
BP为基指针(Base Pointer)寄存器,经过它减去必定的偏移值,来拜访栈中的元素;

SP为仓库指针(Stack Pointer)寄存器,它一贯指向栈顶。

阐明:因栈的成长方向是从高地址向低地址成长,所以,进栈时,sp自减;出栈时,sp自增;
4、段寄存器
段寄存器是依据内存分段的处理方法而设置的。内存单元的物理地址由段寄存器的值和一个偏移量组合而成
的,这么可用两个较少位数的值组构成一个可拜访较大物理空间的内存地址。
CPU内部的段寄存器:
CS——代码段寄存器(Code Segment Register),其值为代码段的段值;
DS——数据段寄存器(Data Segment Register),其值为数据段的段值;
ES——附加段寄存器(Extra Segment Register),其值为附加数据段的段值;
SS——仓库段寄存器(Stack Segment Register),其值为仓库段的段值;
FS——附加段寄存器(Extra Segment Register),其值为附加数据段的段值;
GS——附加段寄存器(Extra Segment Register),其值为附加数据段的段值。

在16位CPU体系中,它只需4个段寄存器,所以,程序在任何时间最多有4个正在运用的段可直接拜访;在32位微机体系中,它有6个段寄存器,所以,在此环境下开发的程序最多可一同拜访6个段。32位CPU有两个纷歧样的作业方法:实方法和维护方法。在每种方法下,段寄存器的效果是纷歧样的。有关规矩简略描写如下:
实方法: 前4个段寄存器CS、DS、ES和SS与早年CPU中的所对应的段寄存器的意义完全一同,内存单元的逻辑地址仍为”段值:偏移量”的方法。为拜访某内存段内的数据,有必要运用该段寄存器和存储单元的偏移量。
维护方法: 在此方法下,状况要凌乱得多,装入段寄存器的不再是段值,而是称为”挑选子”(Selector)的某个值。
5、指令指针寄存器
32位CPU把指令指针拓宽到32位,并记作EIP,EIP的低16位与早年CPU中的IP效果一样。
指令指针EIP、IP(Instruction Pointer)是寄存下次行将施行的指令在代码段的偏移量。在具有预取指令功用的体系中,下非有必要施行的指令一般已被预取到指令行列中,除非发作搬运状况。所以,在了解它们的功用时,不思考存在指令行列的状况。
在实方法下,由于每个段的最大计划为64K,所以,EIP中的高16位必定都为0,此刻,恰当于只用其低16位的IP来反映程序中指令的施行次第。
6、象征寄存器
一、运算效果象征位
1、进位象征CF(Carry Flag)
进位象征CF首要用来反映运算是不是发作进位或借位。假定运算效果的最高位发作了一个进位或借位,那么,其值为1,不然其值为0。运用该象征位的状况有:多字(字节)数的加减运算,无符号数的巨细比照运算,移位操作,字(字节)之间移位,专门改动CF值的指令等。
2、奇偶象征PF(Parity Flag)
奇偶象征PF用于反映运算效果中”1″的个数的奇偶性。假定”1″的个数为偶数,则PF的值为1,不然其值为0。
运用PF可进行奇偶校验查看,或发作奇偶校验位。在数据传送进程中,为了供应传送的牢靠性,假定选用奇偶校验的方法,就可运用该象征位。
3、辅佐进位象征AF(Auxiliary Carry Flag)
在发作下列状况时,辅佐进位象征AF的值被置为1,不然其值为0:
(1)、在字操作时,发作低字节向高字节进位或借位时;
(2)、在字节操作时,发作低4位向高4位进位或借位时。
对以上6个运算效果象征位,在一般编程状况下,象征位CF、ZF、SF和OF的运用频率较高,而象征位PF和AF的运用频率较低。
4、零象征ZF(Zero Flag)
零象征ZF用来反映运算效果是不是为0。假定运算效果为0,则其值为1,不然其值为0。在区别运算效果是不是为0时,可运用此象征位。
5、符号象征SF(Sign Flag)
符号象征SF用来反映运算效果的符号位,它与运算效果的最高位一样。在微机体系中,有符号数选用补码标明法,所以,SF也就反映运算效果的正负号。运算效果为正数时,SF的值为0,不然其值为1。
6、溢出象征OF(Overflow Flag)
溢出象征OF用于反映有符号数加减运算所得效果是不是溢出。假定运算效果逾越其时运算位数所能标明的计划,则称为溢出,OF的值被置为1,不然,OF的值被清为0。”溢出”和”进位”是两个不相附和义的概念,不要稠浊。假定不太了解的话,请查阅《核算组织成原理》课程中的有关章节。
二、状况操控象征位
状况操控象征位是用来操控CPU操作的,它们要经过专门的指令才干使之发作改动。
1、追寻象征TF(Trap Flag)
当追寻象征TF被置为1时,CPU进入单步施行方法,即每施行一条指令,发作一个单步接连恳求。这种方法首要用于程序的调试。指令体系中没有专门的指令来改动象征位TF的值,但程序员可用其它方法来改动其值。
2、接连容许象征IF(Interrupt-enable Flag)
接连容许象征IF是用来决议CPU是不是照应CPU外部的可屏蔽接连宣告的接连恳求。但不管该象征为何值,CPU都有必要照应CPU外部的不行屏蔽接连所宣告的接连恳求,以及CPU内部发作的接连恳求。具体规矩如下:
(1)、当IF=1时,CPU能够照应CPU外部的可屏蔽接连宣告的接连恳求;
(2)、当IF=0时,CPU不照应CPU外部的可屏蔽接连宣告的接连恳求。
CPU的指令体系中也有专门的指令来改动象征位IF的值。
3、方向象征DF(Direction Flag)
方向象征DF用来决议在串操作指令施行时有关指针寄存器发作调整的方向。具体规矩在第5.2.11节——字符串操作指令——中给出。在微机的指令体系中,还供应了专门的指令来改动象征位DF的值。
三、32位象征寄存器添加的象征位
1、I/O特权象征IOPL(I/O Privilege Level)
I/O特权象征用两位二进制位来标明,也称为I/O特权级字段。该字段指定了恳求施行I/O指令的特权级。假定其时的特权等级在数值上小于等于IOPL的值,那么,该I/O指令可施行,不然将发作一个维护反常。
2、嵌套使命象征NT(Nested Task)
嵌套使命象征NT用来操控接连回来指令IRET的施行。具体规矩如下:
(1)、当NT=0,用仓库中保留的值康复EFLAGS、CS和EIP,施行惯例的接连回来操作;
(2)、当NT=1,经过使命改换完毕接连回来。
3、重主张象征RF(Restart Flag)
重主张象征RF用来操控是不是承受调试缺点。规矩:RF=0时,标明”承受”调试缺点,不然回绝之。在成功施行完一条指令后,处理机把RF置为0,当接遭到一个非调试缺点时,处理机就把它置为1。
4、虚拟8086方法象征VM(Virtual 8086 Mode)
假定该象征的值为1,则标明处理机处于虚拟的8086方法下的作业状况,不然,处理机处于一般维护方法下的作业状况。

上一篇:无功赔偿常遇到的疑问和处理办法剖析

下一篇:啥是一次回路和二次回路?啥是一次设备和二次设备?

相关推荐

电工推荐

    电工技术基础_电工基础知识_电工之家-电工学习网
返回顶部