2022年通用寄存器组[借 .pdf

上传人:H****o 文档编号:33662169 上传时间:2022-08-12 格式:PDF 页数:5 大小:82KB
返回 下载 相关 举报
2022年通用寄存器组[借 .pdf_第1页
第1页 / 共5页
2022年通用寄存器组[借 .pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《2022年通用寄存器组[借 .pdf》由会员分享,可在线阅读,更多相关《2022年通用寄存器组[借 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、寄存器是中央处理器内的组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器 (PC) 。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC) 。寄存器是内存阶层中的最顶端,也是系统获得操作资料的最快速途径。寄存器通常都是以他们可以保存的位元数量来估量,举例来说,一个“8 位元寄存器 ” 或 “32 位元寄存器 ” 。寄存器现在都以寄存器档案的方式来实作,但是他们也可能使用单独的正反器、高速的核心内存、薄膜内存以及在数种机器上的其他方式来实作出来。寄存器通常都用来意指由一个指令之输出或输入可

2、以直接索引到的暂存器群组。更适当的是称他们为 “ 架构寄存器 ” 。例如,x86 指令及定义八个32 位元寄存器的集合,但一个实作x86 指令集的CPU 可以包含比八个更多的寄存器。寄存器是 CPU 内部的元件, 寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。编辑本段 寄存器用途1.可将寄存器内的数据执行算术及逻辑运算;2.存于寄存器内的地址可用来指向内存的某个位置,即寻址;3.可以用来读写数据到电脑的周边设备。编辑本段 数据寄存器8086 有 14 个 16 位寄存器,这 14 个寄存器按其用途可分为(1)通用寄存器、 (2) 指令指针、 (3)标志寄存器和 (4)段寄存器等

3、 4 类。(1)通用寄存器有 8 个, 又可以分成 2 组,一组是数据寄存器 (4 个),另一组是指针寄存器及变址寄存器(4 个). 数据寄存器分为 : AH&AL AX(accumulator) :累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,另外,所有的 I/O 指令都使用这一寄存器与外界设备传送数据. BH&BL BX(base) :基址寄存器,常用于地址索引;CH&CL CX(count) :计数寄存器,常用于计数;常用于保存计算值,如在移位指令 ,循环 (loop) 和串处理指令中用作隐含的计数器. DH&DL DX(data) :数据寄存器,常用于数据传递。他们的特点是

4、 ,这 4 个 16 位的寄存器可以分为高8 位: AH, BH, CH, DH. 以及低八位:AL,BL,CL,DL 。这 2 组 8 位寄存器可以分别寻址,并单独使用。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 另一组是指针寄存器和变址寄存器,包括:SP(Stack Pointer ):堆栈指针,与SS 配合使用,可指向目前的堆栈位置;BP(Base Pointer ):基址指针寄存器,可用作SS 的一个相对基址位置;S

5、I(Source Index ):源变址寄存器可用来存放相对于DS 段之源变址指针;DI(Destination Index ):目的变址寄存器,可用来存放相对于ES 段之目的变址指针。这 4 个 16 位寄存器只能按16 位进行存取操作,主要用来形成操作数的地址,用于堆栈操作和变址运算中计算操作数的有效地址。(2) 指令指针 IP(Instruction Pointer) 指令指针 IP 是一个 16 位专用寄存器,它指向当前需要取出的指令字节,当BIU 从内存中取出一个指令字节后, IP 就自动加 1, 指向下一个指令字节。 注意,IP 指向的是指令地址的段内地址偏移量,又称偏移地址 (O

6、ffset Address) 或有效地址 (EA,Effective Address) 。(3)标志寄存器 FR(Flag Register) 8086 有一个 18 位的标志寄存器FR,在 FR 中有意义的有 9 位,其中 6 位是状态位, 3 位是控制位。OF: 溢出标志位 OF 用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF 的值被置为 1,否则, OF 的值被清为 0。DF:方向标志 DF 位用来决定在串操作指令执行时有关指针寄存器发生调整的方向。IF:中断允许标志IF 位用来决定 CPU 是否响应 CPU 外部的可屏蔽中断发出的

7、中断请求。但不管该标志为何值, CPU 都必须响应 CPU 外部的不可屏蔽中断所发出的中断请求,以及CPU 内部产生的中断请求。具体规定如下:(1)、当 IF=1 时,CPU 可以响应 CPU 外部的可屏蔽中断发出的中断请求;(2)、当 IF=0 时,CPU 不响应 CPU 外部的可屏蔽中断发出的中断请求。TF:跟踪标志 TF。该标志可用于程序调试。TF 标志没有专门的指令来设置或清楚。(1)如果 TF=1 ,则 CPU 处于单步执行指令的工作方式,此时每执行完一条指令,就显示CPU内各个寄存器的当前值及CPU 将要执行的下一条指令。(2)如果 TF=0 ,则处于连续工作模式。SF:符号标志

8、SF 用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用补码表示法,所以,SF 也就反映运算结果的正负号。运算结果为正数时,SF 的值为 0,否则其值为 1。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - ZF: 零标志 ZF 用来反映运算结果是否为0。如果运算结果为0,则其值为 1,否则其值为0。在判断运算结果是否为0 时,可使用此标志位。AF:下列情况下,辅助进位标志AF 的值被置为 1,否则其值

9、为 0:(1)、在字操作时,发生低字节向高字节进位或借位时;(2)、在字节操作时,发生低4 位向高 4 位进位或借位时。PF: 奇偶标志 PF 用于反映运算结果中“1”的个数的奇偶性。 如果 “1”的个数为偶数, 则 PF 的值为 1,否则其值为 0。CF:进位标志 CF 主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。) 4)段寄存器 (Segment Register) 为了运用所有的内存空间,8086 设定了四个段寄存器,专门用来保存段地址:CS(Code Segment ):代码段寄存器;DS(Data Segment ):数

10、据段寄存器;SS(Stack Segment ):堆栈段寄存器;ES(Extra Segment ):附加段寄存器。当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器 CS,DS,SS 来指向这些起始位置。通常是将DS 固定,而根据需要修改CS。所以,程序可以在可寻址空间小于64K 的情况下被写成任意大小。所以,程序和其数据组合起来的大小,限制在DS 所指的 64K 内,这就是 COM 文件不得大于 64K 的原因。 8086 以内存做为战场,用寄存器做为军事基地,以加速工作。以上是 8086 寄存器的整体概况 , 自 80386 开始, PC 进入 32

11、bit 时代,其寻址方式,寄存器大小,功能等都发生了变化。=以下是 80386 的寄存器的一些资料= 寄存器都是 32-bits 宽。A、通用寄存器下面介绍通用寄存器及其习惯用法。顾名思义, 通用寄存器是那些你可以根据自己的意愿使用的寄存器,修改他们的值通常不会对计算机的运行造成很大的影响。通用寄存器最多的用途是计算。EAX:通用寄存器。相对其他寄存器,在进行运算方面比较常用。在保护模式中,也可以作为内存偏移指针(此时, DS 作为段寄存器或选择器)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - -

12、 - - 第 3 页,共 5 页 - - - - - - - - - EBX:通用寄存器。通常作为内存偏移指针使用(相对于EAX、ECX 、EDX),DS 是默认的段寄存器或选择器。在保护模式中,同样可以起这个作用。ECX:通用寄存器。通常用于特定指令的计数。在保护模式中,也可以作为内存偏移指针(此时,DS 作为 寄存器或段选择器)。EDX:通用寄存器。在某些运算中作为EAX 的溢出寄存器(例如乘、除)。在保护模式中,也可以作为内存偏移指针(此时,DS 作为段寄存器或选择器)。同 AX 分为 AH&AL 一样,上述寄存器包括对应的16-bit 分组和 8-bit 分组。B、用作内存指针的特殊寄

13、存器ESI:通常在内存操作指令中作为“ 源地址指针 ” 使用。当然, ESI 可以被装入任意的数值,但通常没有人把它当作通用寄存器来用。DS 是默认段寄存器或选择器。EDI:通常在内存操作指令中作为“ 目的地址指针 ” 使用。当然, EDI 也可以被装入任意的数值,但通常没有人把它当作通用寄存器来用。DS 是默认段寄存器或选择器。EBP :这也是一个作为指针的寄存器。通常,它被高级语言编译器用以建造,堆栈帧 来保存函数或过程的局部变量,不过,还是那句话,你可以在其中保存你希望的任何数据。SS 是它的默认段寄存器或选择器。注意,这三个寄存器没有对应的8-bit 分组。换言之,你可以通过SI、DI

14、、BP 作为别名访问他们的低 16 位,却没有办法直接访问他们的低8 位。C、段选择器:实模式下的段寄存器到保护模式下摇身一变就成了选择器。不同的是,实模式下的“ 段寄存器 ” 是16-bit 的,而保护模式下的选择器是32-bit 的。CS 代码段,或代码选择器。同IP 寄存器 (稍后介绍 )一同指向当前正在执行的那个地址。处理器执行时从这个寄存器指向的段(实模式)或内存(保护模式)中获取指令。除了跳转或其他分支指令之外,你无法修改这个寄存器的内容。DS 数据段,或数据选择器。这个寄存器的低16 bit 连同 ESI 一同指向的指令将要处理的内存。同时,所有的内存操作指令默认情况下都用它指定

15、操作段(实模式 )或内存 (作为选择器,在保护模式。这个寄存器可以被装入任意数值,然而在这么做的时候需要小心一些。方法是, 首先把数据送给AX,然后再把它从 AX 传送给 DS( 当然,也可以通过堆栈来做). ES 附加段,或附加选择器。这个寄存器的低16 bit 连同 EDI 一同指向的指令将要处理的内存。同样的,这个寄存器可以被装入任意数值,方法和DS 类似。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - FS F 段或 F

16、 选择器 (推测 F 可能是 Free?) 。 可以用这个寄存器作为默认段寄存器或选择器的一个替代品。它可以被装入任何数值,方法和DS 类似。GS G 段或 G 选择器 (G 的意义和 F 一样,没有在Intel 的文档中解释 )。它和 FS 几乎完全一样。SS 堆栈段或堆栈选择器。 这个寄存器的低16 bit 连同 ESP 一同指向下一次堆栈操作(push 和 pop)所要使用的堆栈地址。这个寄存器也可以被装入任意数值,你可以通过入栈和出栈操作来给他赋值,不过由于堆栈对于很多操作有很重要的意义,因此,不正确的修改有可能造成对堆栈的破坏。* 注意 一定不要在初学汇编的阶段把这些寄存器弄混。他们

17、非常重要,而一旦你掌握了他们,你就可以对他们做任意的操作了。段寄存器,或选择器,在没有指定的情况下都是使用默认的那个。这句话在现在看来可能有点稀里糊涂,不过你很快就会在后面知道如何去做。指令指针寄存器:EIP 这个寄存器非常的重要。 这是一个 32 位宽的寄存器,同 CS 一同指向即将执行的那条指令的地址。不能够直接修改这个寄存器的值,修改它的唯一方法是跳转或分支指令。(CS 是默认的段或选择器) 上面是最基本的寄存器。下面是一些其他的寄存器,你甚至可能没有听说过它们(都是 32 位宽):CR0, CR2, CR3( 控制寄存器 )。举一个例子, CR0 的作用是切换实模式和保护模式。还有其他一些寄存器,D0, D1, D2, D3, D6和 D7(调试寄存器 )。他们可以作为调试器的硬件支持来设置条件断点。 TR3, TR4, TR5, TR6 和 TR? 寄存器 (测试寄存器 )用于某些条件测试。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁