你的位置:首页 > 知识课堂 > 正文

什么是段寄存器?

发布时间:2013-08-30

段寄存器的简介

段寄存器
段寄存器

目前,段寄存器原理在当代的应用可谓是越来越广泛,段寄存器知识是值得我们好好学习的,现在我们就深入了解段寄存器组成及分类等相关知识,希望大家好好阅览一下相关的内容,充实自己的知识宝库。

段寄存器是因为对内存的分段管理而设置的。16位CPU有四个段寄存器,所以,其程序可同时访问四个不同含义的段。

段寄存器CS指向存放程序的内存段,IP是用来存放下条待执行的指令在该段的偏移量,把它们合在一起可在该内存段内取到下次要执行的指令。

段寄存器SS指向用于堆栈的内存段,SP是用来指向该堆栈的栈顶,把它们合在一起可访问栈顶单元。另外,当偏移量用到了指针寄存器BP,则其缺省的段寄存器也是SS,并且用BP可访问整个堆栈,不仅仅是只访问栈顶。

段寄存器DS指向数据段,ES指向附加段,在存取操作数时,二者之一和一个偏移量合并就可得到存储单元的物理地址。该偏移量可以是具体数值、符号地址和指针寄存器的值等之一,具体情况将由指令的寻址方式来决定。

通常,缺省的数据段寄存器是DS,只有一个例外,即:在进行串操作时,其目的地址的段寄存器规定为ES。当然,在一般指令中,我们还可以用强置前缀的方法来改变操作数的段寄存器。

段寄存器
段寄存器

一般情况下,段寄存器及其指针寄存器的引用关系如下表所示。“可选用的段寄存器”即是可以用强置说明这些段寄存器的值来作为其操作数地址的段地址。

段寄存器的组成

段寄存器:在8086系统中,访问存储器的地址码由段地址和段内偏移地址两部分组成。段寄存器用来存放各分段的逻辑基值,并指示当前正在使用的4个逻辑段,包括代码段寄存器CS、堆栈段寄存器SS、数据段寄存器DS和附加段数据寄存器ES。

段寄存器的分类

1、代码段寄存器CS(Code Segment):存放当前正在运行的程序代码所在段的段基址,表示当前使用的指令代码可以从该段寄存器指定的存储器段中取得,相应的偏移量则由IP提供。

2、数据段寄存器DS(Data Segment):指出当前程序使用的数据所存放段的最低地址,即存放数据段的段基址。

3、堆栈段寄存器SS(Stack Segment):指出当前堆栈的底部地址,即存放堆栈段的段基址。

4、 附加段寄存器ES(Extra Segment):指出当前程序使用附加数据段的段基址,该段是串操作指令中目的串所在的段。

综上所述,段寄存器的组成主要是两部分组成,并且段寄存器的分类很多,因此我们在学习段寄存器的知识时,要详细的收集好段寄存器的资料才行,要是大家对于段寄存器的知识还有什么疑问,请继续关注本网站的内容。

浏览过本文<什么是段寄存器?>的人也浏览了:

什么是8086寄存器?
http://baike.cntronics.com/abc/4834

微处理器的基本内容
http://baike.cntronics.com/abc/5778

寄存器变量
http://baike.cntronics.com/abc/2933
要采购微处理器么,点这里了解一下价格!
特别推荐
技术文章更多>>
技术白皮书下载更多>>
热门搜索
 

关闭

 

关闭