电脑硬件

请问什么是段寄存器、指针变址寄存器?
它们的功能是什么?是怎样联系的?

寄存器(Register)是CPU内部的元件,所以在寄存器之间的数据传送非常快。用途:1.可将寄存器内的数据执行算术及逻辑运算。2.存于寄存器内的地址可用来指向内存的某个位置,即寻址。3.可以用来读写数据到电脑的周边设备。8086 有8个8位数据寄存器,这些8位寄存器可分别组成16位寄存器:AH&AL=AX:累加寄存器,常用于运算;BH&BL=BX:基址寄存器,常用于地址索引;CH&CL=CX:计数寄存器,常用于计数;DH&DL=DX:数据寄存器,常用于数据传递。为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:CS(Code Segment):代码段寄存器;DS(Data Segment):数据段寄存器;SS(Stack Segment):堆栈段寄存器;ES(Extra Segment):附加段寄存器。当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器 CS,DS,SS 来指向这些起始位置。通常是将DS固定,而根据需要修改CS。所以,程序可以在可寻址空间小于64K的情况下被写成任意大小。 所以,程序和其数据组合起来的大小,限制在DS 所指的64K内,这就是COM文件不得大于64K的原因。8086以内存做为战场,用寄存器做为军事基地,以加速工作。除了前面所提的寄存器外,还有一些特殊功能的寄存器:IP(Intruction Pointer):指令指针寄存器,与CS配合使用,可跟踪程序的执行过程;SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置。BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置;SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;DI(Destination Index):目的变址寄存器,可用来存放相对于 ES 段之目的变址指针。还有一个标志寄存器FR(Flag Register),有九个有意义的标志(
  
  OF: 溢出标志位OF用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0.
  
  DF: 方向标志DF位用来决定在串操作指令执行时有关指针寄存器发生调整的方向。
  
  IF: 中断允许标志IF位用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求。但不管该标志为何值,CPU都必须响应CPU外部的不可屏蔽中断所发出的中断请求,以及CPU内部产生的中断请求。具体规定如下:
  
  (1)、当IF=1时,CPU可以响应CPU外部的可屏蔽中断发出的中断请求;
  
  (2)、当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。
  
  TF: 状态控制标志位是用来控制CPU操作的,它们要通过专门的指令才能使之发生改变
  
  SF: 符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用补码表示法,所以,SF也就反映运算结果的正负号。运算结果为正数时,SF的值为0,否则其值为1。
  
  ZF: 零标志ZF用来反映运算结果是否为0。如果运算结果为0,则其值为1,否则其值为0。在判断运算结果是否为0时,可使用此标志位。
  
  AF: 下列情况下,辅助进位标志AF的值被置为1,否则其值为0:
  
  (1)、在字操作时,发生低字节向高字节进位或借位时;
  (2)、在字节操作时,发生低4位向高4位进位或借位时。
  
  PF: 奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。
  
  CF: 进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。)
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-03-04
寄存器(Register)是CPU内部的元件,所以在寄存器之间的数据传送非常快。用途:1.可将寄存器内的数据执行算术及逻辑运算。2.存于寄存器内的地址可用来指向内存的某个位置,即寻址。3.可以用来读写数据到电脑的周边设备。8086 有8个8位数据寄存器,这些8位寄存器可分别组成16位寄存器:AH&AL=AX:累加寄存器,常用于运算;BH&BL=BX:基址寄存器,常用于地址索引;CH&CL=CX:计数寄存器,常用于计数;DH&DL=DX:数据寄存器,常用于数据传递。为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:CS(Code Segment):代码段寄存器;DS(Data Segment):数据段寄存器;SS(Stack Segment):堆栈段寄存器;ES(Extra Segment):附加段寄存器。当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器 CS,DS,SS 来指向这些起始位置。通常是将DS固定,而根据需要修改CS。所以,程序可以在可寻址空间小于64K的情况下被写成任意大小。 所以,程序和其数据组合起来的大小,限制在DS 所指的64K内,这就是COM文件不得大于64K的原因。8086以内存做为战场,用寄存器做为军事基地,以加速工作。除了前面所提的寄存器外,还有一些特殊功能的寄存器:IP(Intruction Pointer):指令指针寄存器,与CS配合使用,可跟踪程序的执行过程;SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置。BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置;SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;DI(Destination Index):目的变址寄存器,可用来存放相对于 ES 段之目的变址指针。还有一个标志寄存器FR(Flag Register),有九个有意义的标志(

OF: 溢出标志位OF用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0.

DF: 方向标志DF位用来决定在串操作指令执行时有关指针寄存器发生调整的方向。

IF: 中断允许标志IF位用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求。但不管该标志为何值,CPU都必须响应CPU外部的不可屏蔽中断所发出的中断请求,以及CPU内部产生的中断请求。具体规定如下:

(1)、当IF=1时,CPU可以响应CPU外部的可屏蔽中断发出的中断请求;

(2)、当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。

TF: 状态控制标志位是用来控制CPU操作的,它们要通过专门的指令才能使之发生改变

SF: 符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用补码表示法,所以,SF也就反映运算结果的正负号。运算结果为正数时,SF的值为0,否则其值为1。

ZF: 零标志ZF用来反映运算结果是否为0。如果运算结果为0,则其值为1,否则其值为0。在判断运算结果是否为0时,可使用此标志位。

AF: 下列情况下,辅助进位标志AF的值被置为1,否则其值为0:

(1)、在字操作时,发生低字节向高字节进位或借位时;
(2)、在字节操作时,发生低4位向高4位进位或借位时。

PF: 奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。

CF: 进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。)

以上是8086寄存器的整体概况, 自80386开始,PC进入
32bit时代,其寻址方式,寄存器大小, 功能等都发生了变化, 要想学习这方面知识请参考相应资料.

关于寄存器就写这么多了,学习汇编和学习别的语言一样
要多想,多练,多看, 这样才会有提高.

下面是一些汇编书籍和网站, 对你学习会有帮助的.

网站:
http://www.x86asm.com/ x86汇编小站
http://www.aogosoft.com/ Aogo汇编小站
http://211.90.225.98:22366/ 罗云彬的编程乐园
http://cn.codeof.com/articles/programming/masm/
里面有汇编学习资料.

书籍:

1. IBM-PC 汇编语言程序设计(2th)
2. <<80x86 IBM PC及兼容计算机(卷I和II) — 汇编语言、设计与接口技术>>; 这本书很牛, 建议入手;

中文的汇编好书比较少,如果你英语不错的话,可以看看
下面这些(都很经典!!!):

01. <<Mastering Turbo Assembler>>

02. <<Using Assembly Language>>

04. <<Assembly Language Primer for the IBM PC/XT>>

05. <<Assembly Language from Square One>>

06. <<Assembly Language for the IBM PC>>

07. <<Assembly Language and Systems Programming for the IBM PC and Compatables>>

08. <<Assembler Inside & Out>>

09. <<The Zen of Assembly>>

10. <<IBM Microcomputers: A Programmer's Handbook>>

11. <<Programmer's Problem Solver for the IBM PC, XT, and AT>>

12. <<IBM PC ASSEMBLER LANGUAGE AND PROGRAMMING>>

13. <<80386: A Programming and Design Handbook>>, 2nd Ed

14. <<80486 Programming>>

15. <<Master Class Assembly Language>>

16. <<Programmer's Guide to PC & PS/2 Video Systems>>

17. <<Power Graphics Programming>>

18. <<Programmers Guide to the EGA and VGA cards>>, 3rd Ed.

19. <<AdvancEd Programmers Guide to the EGA/VGA>>

20. <<UndocumentEd DOS>>

21. <<DOS Programmer's Reference>>

22. <<386SX Microprocessor Programmer's Reference Manual>>

23. <<i486 Microprocessor Programmer's Reference Manual>>

24. <<The Programmer's PC Sourcebook>>

25. <<System BIOS for IBM PCs, Compatables, and EISA Computers>>, 2nd Ed.

26. <<PC Magazine Programmers Technical Reference: The Processor and Coprocessor>>

27. <<Mastering Serial Communications>>

28. <<DOS Programmer's Reference>>, 2nd Ed.

29. <<MS-DOS Programmer's Reference>>

最后祝你学习愉快
第2个回答  2006-03-04
晕! 这是《微机原理》这本书专本论述的``` 比较复杂,要想正明白的话,还是正本书研究一下吧!
第3个回答  2006-03-04
指针寄存器

32位CPU有2个32位通用寄存器EBP和ESP。其低16位对应先前CPU中的SBP和SP,对低16位数据的存取,不影响高16位的数据。

寄存器EBP、ESP、BP和SP称为指针寄存器(Pointer Register),主要用于存放堆栈内存储单元的偏移量,用它们可实现多种存储器操作数的寻址方式(在第3章有详细介绍),为以不同的地址形式访问存储单元提供方便。

指针寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。

它们主要用于访问堆栈内的存储单元,并且规定:

BP为基指针(Base Pointer)寄存器,用它可直接存取堆栈中的数据;
SP为堆栈指针(Stack Pointer)寄存器,用它只可访问栈顶。

段寄存器

段寄存器是根据内存分段的管理模式而设置的。内存单元的物理地址由段寄存器的值和一个偏移量组合而成的,这样可用两个较少位数的值组合成一个可访问较大物理空间的内存地址。

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)的某个值。段寄存器的具体作用在此不作进一步介绍了,有兴趣的读者可参阅其它科技资料。

你参考
http://www.fusc-ba.org/wlkc/huibianyuyan/registers.htm

电脑是由哪些硬件组成的?
电脑包括机箱、电源、主板、CPU、内存、显示卡、网卡、声卡、硬盘、光盘驱动器、软盘驱动器等硬件设备。各个部件的主要功能为:1.主板:主板也就是主机板,是计算机的核心设备,其他设备都要直接或间接插在或连接到主板上,主板是整个计算机内部结构的基础。主板的速度和稳定性直接影响着计算机的速度和稳定...

一套完整的台式电脑有哪些配置
九、光驱 光驱是在台式机和笔记本便携式电脑里的一个部件。随着多媒体的应用越来越广泛,使得光驱在计算机诸多配件中已经成为标准配置。十、声卡 声卡 (Sound Card)也叫音频卡(港台称之为声效卡):声卡是多媒体技术中最基本的组成部分,是实现声波\/数字信号相互转换的一种硬件。十一、鼠标 鼠标:是计算...

计算机的硬件包括哪五个部分,分别介绍其功能
1.CPU(中央处理器),是一块超大规模的集成电路,有很多针脚,是电脑的核心,它是电脑进行运算和控制的核心,处理着各种信息的运算,就像人计算数学题要用头脑运算一样。2.主板是电脑最基本的、最重要的部件之一,它的作用就是在上面安装各部件和外设设备,组成电脑的主要电路系统,说得白一点就是很多...

电脑硬件包括哪些
电脑硬件主要包括:中央处理器(CPU)、内存(RAM)、硬盘(HDD\/SSD)、显卡(GPU)、显示器、电源、主板和其他外部设备。1. 中央处理器(CPU):这是电脑的核心部件,负责执行程序指令和处理数据。CPU 的性能直接影响电脑的运行速度和处理能力。2. 内存(RAM):RAM 是电脑临时存储数据的地方。当电脑...

电脑的硬件有哪些
电脑的硬件包括:1. 中央处理器(CPU): 负责执行计算任务和控制计算机的运行。2. 主板(Motherboard): 提供电路连接和接口,用于连接其他硬件设备。3. 内存(Random Access Memory,RAM): 用于存储正在使用的数据和程序。4. 存储器(Storage): 地方存储数据和程序的硬件设备,如硬盘驱动器和固态硬盘...

请问:电脑主机里面有些什么硬件。分别的作用是什么?详细
在电脑主机内部,主要包含七类硬件,它们各自承担着不同的任务。首先,CPU,即中央处理器,是电脑的核心部件,负责执行算术运算和逻辑判断。它如同电脑的大脑,指挥着整个电脑的运作。其次,内存,也就是我们常说的RAM,也是一项核心部件,它负责与CPU之间进行快速的数据传递。内存就像是电脑的短期记忆,能够...

电脑硬件都有哪些
电脑硬件包括以下几个主要部分:1. 中央处理器(CPU)。这是电脑的核心部件,负责执行程序指令和处理数据。解释:中央处理器是电脑的大脑,它接收软件发出的指令,解释并执行这些指令,从而完成各种运算和操作。CPU的性能直接影响到电脑的整体运行速度和处理能力。2. 内存(RAM)。RAM是电脑临时存储数据的...

电脑的八个基本硬件
电脑的八个基本硬件组成部分如下:1. 中央处理器(CPU):电脑的心脏,负责解释计算机指令和控制其他硬件设备的工作。2. 主板:电脑的基础架构,连接并支持所有其他硬件组件。3. 内存(RAM):电脑的短期存储介质,用于临时存储正在运行的程序和数据。4. 硬盘:电脑的长期存储介质,用于存储操作系统、程序...

计算机硬件有哪些
计算机硬件包括以下部分:1. 中央处理器(CPU):负责执行电脑指令和处理数据。2. 内存(RAM):用于临时存储数据和程序。3. 存储设备:包括硬盘、固态硬盘(SSD)、光盘驱动器等,用于长期存储数据和程序。4. 显卡(GPU):用于处理图形和显示图像。5. 主板:连接所有硬件组件,并提供电源和数据传输功能...

电脑硬件配置有哪些
笔记本电脑常用5400转,这主要影响功耗、散热。5、显卡。这直接影响运行超大程序软件的响应速度,比如运行CAD2007,3DStudio、3DMAX等图形软件。显卡不仅在硬件级别有区分,还有“共享显存”技术,与一般自带显存芯片有差别的就是“共享显存”技术。6、电源。这只需要功率足够、稳定性好即可。

相似回答