收藏 分享(赏)

通用寄存器的作用.doc

上传人:scg750829 文档编号:6793338 上传时间:2019-04-22 格式:DOC 页数:5 大小:92.50KB
下载 相关 举报
通用寄存器的作用.doc_第1页
第1页 / 共5页
通用寄存器的作用.doc_第2页
第2页 / 共5页
通用寄存器的作用.doc_第3页
第3页 / 共5页
通用寄存器的作用.doc_第4页
第4页 / 共5页
通用寄存器的作用.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、 通用寄存器的作用数据寄存器不讲,简单的说,段寄存器(ES,CS,SS,DS,FS,GS)和变址寄存器(SI,DI)是配合使用访问段数据的,指针寄存器(BP,SP)是用来操作堆栈的, BP 指向栈的基址,SP 则永远指向栈顶。另外指令指针 EIP 存放的是要执行的下一条指令在代码段里的偏移量,在实方式下,每个段的最大范围都是 64K,所以 EIP 的高 16 位都是 0。寄存器的分类 寄存器 主 要 用 途AX 乘、除运算,字的输入输出,中间结果的缓存AL 字节的乘、除运算,字节的输入输出,十进制算术运算AH 字节的乘、除运算,存放中断的功能号BX 存储器指针CX 串操作、循环控制的计数器CL

2、 移位操作的计数器数据 寄存器DX 字的乘、除运算,间接的输入输出SI 存储器指针、串指令中的源操作数指针变址寄存器 DI 存储器指针、串指令中的目的操作数指针BP 存储器指针、存取堆栈的指针通 用寄 存 器变址寄存器 SP 堆栈的栈顶指针指令指针 IP/EIP 标志位寄存器 Flag/EFlag ES 附加段寄存器CS 代码段寄存器SS 堆栈段寄存器16 位 CPU 的 段寄存器DS 数据段寄存器FS 附加段寄存器32 位 CPU 的段寄存器 新增加的段寄存器 GS 附加段寄存器1、数据寄存器数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。32

3、 位 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),用累加器进行的操作可能需要更少时间。累

4、加器可用于乘、除、输入/输出等操作,它们的使用频率很高;寄存器 BX 称为基地址寄存器(Base Register)。它可作为存储器指针来使用; 寄存器 CX 称为计数寄存器(Count Register)。在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移多位时,要用 CL 来指明移位的位数;寄存器 DX 称为数据寄存器(Data Register)。在进行乘、除运算时,它可作为默认的操作数参与运算,也可用于存放 I/O 的端口地址。在 16 位 CPU 中,AX、BX、CX 和 DX 不能作为基址和变址寄存器来存放存储单元的地址,但在 32 位 CPU 中,其 32 位寄存器 E

5、AX、EBX、ECX 和 EDX 不仅可传送数据、暂存数据保存算术逻辑运算结果,而且也可作为指针寄存器,所以,这些 32 位寄存器更具有通用性。详细内容请见第 3.8 节32 位地址的寻址方式。2、变址寄存器32 位 CPU 有 2 个 32 位通用寄存器 ESI 和 EDI。其低 16 位对应先前 CPU 中的 SI和 DI,对低 16 位数据的存取,不影响高 16 位的数据。寄存器 ESI、EDI、SI 和 DI 称为变址寄存器(Index Register),它们主要用于存放存储单元在段内的偏移量,用它们可实现多种存储器操作数的寻址方式(在第 3 章有详细介绍) ,为以不同的地址形式访问

6、存储单元提供方便。变址寄存器不可分割成 8 位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。它们可作一般的存储器指针使用。在字符串操作指令的执行过程中,对它们有特定的要求,而且还具有特殊的功能。具体描述请见第 5.2.11 节。3、指针寄存器32 位 CPU 有 2 个 32 位通用寄存器 EBP 和 ESP。其低 16 位对应先前 CPU 中的SBP 和 SP,对低 16 位数据的存取,不影响高 16 位的数据。寄存器 EBP、ESP、BP 和 SP 称为指针寄存器(Pointer Register),主要用于存放堆栈内存储单元的偏移量,用它们可实现多种存储器操作数的寻址方

7、式(在第 3 章有详细介绍) ,为以不同的地址形式访问存储单元提供方便。指针寄存器不可分割成 8 位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。它们主要用于访问堆栈内的存储单元,并且规定:BP 为基指针(Base Pointer)寄存器,用它可直接存取堆栈中的数据;SP 为堆栈指针(Stack Pointer)寄存器,用它只可访问栈顶。4、段寄存器段寄存器是根据内存分段的管理模式而设置的。内存单元的物理地址由段寄存器的值和一个偏移量组合而成的,这样可用两个较少位数的值组合成一个可访问较大物理空间的内存地址。CPU 内部的段寄存器:CS代码段寄存器(Code Segment

8、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

9、 位微机系统中,它有 6 个段寄存器,所以,在此环境下开发的程序最多可同时访问 6 个段。32 位 CPU 有两个不同的工作方式:实方式和保护方式。在每种方式下,段寄存器的作用是不同的。有关规定简单描述如下:实方式: 前 4 个段寄存器 CS、DS 、ES 和 SS 与先前 CPU 中的所对应的段寄存器的含义完全一致,内存单元的逻辑地址仍为“段值:偏移量”的形式。为访问某内存段内的数据,必须使用该段寄存器和存储单元的偏移量。保护方式: 在此方式下,情况要复杂得多,装入段寄存器的不再是段值,而是称为“选择子”(Selector)的某个值。段寄存器的具体作用在此不作进一步介绍了,有兴趣的读者可参阅

10、其它科技资料。5、指令指针寄存器32 位 CPU 把指令指针扩展到 32 位,并记作 EIP,EIP 的低 16 位与先前 CPU 中的IP 作用相同。指令指针 EIP、 IP(Instruction Pointer)是存放下次将要执行的指令在代码段的偏移量。在具有预取指令功能的系统中,下次要执行的指令通常已被预取到指令队列中,除非发生转移情况。所以,在理解它们的功能时,不考虑存在指令队列的情况。在实方式下,由于每个段的最大范围为 64K,所以,EIP 中的高 16 位肯定都为 0,此时,相当于只用其低 16 位的 IP 来反映程序中指令的执行次序。2.7 int 10h bois 中断说明I

11、NT 10H 是由 BIOS 对屏幕及显示器所提供的服务程序,而后倚天公司针对倚天中文提供了许多服务程序,这些服务程序也加挂在 INT 10H 内。使用 INT 10H 中断服务程序时,先指定 AH 寄存器为下表编号其中之一,该编号表示欲调用的功用,而其他寄存器的详细说明,参考表后文字,当一切设定好之后再调用 INT 10H。底下是它们的说明:AH 功 能 调用参数 返回参数 / 注释1 置光标类型 (CH)03 = 光标开始行 (CL)03 = 光标结束行2 置光标位置BH = 页号 DH = 行DL = 列 3 读光标位置 BH = 页号CH = 光标开始行CL = 光标结束行DH = 行

12、DL = 列4 置显示页 AL = 显示页号5 屏幕初始化或上卷6 屏幕初始化或上卷AL = 上卷行数 AL =0 全屏幕为空白 BH = 卷入行属性CH = 左上角行号 CL = 左上角列号 DH = 右下角行号 DL = 右下角列号7 屏幕初始化或下卷AL = 下卷行数AL = 0 全屏幕为空白 BH = 卷入行属性CH = 左上角行号 CL = 左上角列号 DH = 右下角行号 DL = 右下角列号8 读光标位置的属性和字符 BH = 显示页 AH = 属性 AL = 字符9 在光标位置显示字符及其属性BH = 显示页AL = 字符BL = 属性CX = 字符重复次数A 在光标位置只显示字符BH = 显示页AL = 字符 CX = 字符重复次数E 显示字符( 光标前移 ) AL = 字符 BL = 前景色 光标跟随字符移动13 显示字符串 ES:BP = 串地址 CX = 串长度 DH, DL = 起始行列 BH = 页号AL = 0,BL = 属性 串:Char ,char ,charAL = 1,BL = 属性 串:Char ,char ,char AL = 2 串:Char ,attr,char,attr AL = 3 串:Char ,attr,char,attr光标返回起始位置光标跟随移动光标返回起始位置光标跟随串移动

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报