通用寄存器.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通用寄存器

通用寄存器 目录 简介 主要用途 相关信息 编辑本段 简介 通用寄存器 通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。除此之外,它们还各自具有一些特殊功能。通用寄存器的长度取决于机器字长,汇编语言程序员必须熟悉每个寄存器的一般用途和特殊用途,只有这样,才能在程序中做到正确、合理地使用它们。 16位cpu通用寄存器共有 8 个:AX,BX,CX,DX,BP,SP,SI,DI. 八个寄存器都可以作为普通的数据寄存器使用。 但有的有特殊的用途:AX为累加器,CX为计数器,BX,BP为基址寄存器,SI,DI为变址寄存器,BP还可以是基 指针,SP为堆栈指针。 32位cpu通用寄存器共有 8 个: EAX,EBX,ECX,EDX,EBP,ESP,ESI,EDI功能和上面差不多 编辑本段 主要用途 通用寄存器数据 寄存器AX乘、除运算,字的输入输出,中间结果的缓存 AL字节的乘、除运算,字节的输入输出,十进制算术运算 AH字节的乘、除运算,存放中断的功能号 BX存储器指针 CX串操作、循环控制的计数器 CL移位操作的计数器 DX字的乘、除运算,间接的输入输出 变址 寄存器SI存储器指针、串指令中的源操作数指针 DI存储器指针、串指令中的目的操作数指针 变址 分类示意图 寄存器BP存储器指针、存取堆栈的指针 SP堆栈的栈顶指针 指令指针IP/EIP 标志位寄存器Flag/EFlag 32位 CPU的 段寄存器16位CPU的 段寄存器ES 附加段寄存器 CS 代码段寄存器 SS 堆栈段寄存器 DS 数据段寄存器 新增加的 段寄存器FS 附加段寄存器 GS 附加段寄存器 编辑本段 相关信息 寄存器是CPU内部重要的数据存储资源,用来暂存数据和地址,是汇编程序员能直接使用的硬件资源之一。由于寄存器的存取速度比内存快,所以,在用汇编语言编写程序时,要尽可能充分利用寄存器的存储功能。 运算器结构 寄存器一般用来保存程序的中间结果,为随后的指令快速提供操作数,从而避免把中间结果存入内存,再读取内存的操作。在高级语言(如:C/C++语言)中,也有定义变量为寄存器类型的,这就是提高寄存器利用率的一种可行的方法。 另外,由于寄存器的个数和容量都有限,不可能把所有中间结果都存储在寄存器中,所以,要对寄存器进行适当的调度。根据指令的要求,如何安排适当的寄存器,避免操作数过多的传送操作是一项细致而又周密的工作。 数据寄存器 目录 数据寄存器 分类 编辑本段 数据寄存器 AX、BX、CX、DX可以称为数据寄存器,用来暂时存放计算过程中所用到的操作数、结果和信息。这4个16位寄存器又可分别分成高8位(AH、BH、CH、DH)和低8位(AL、BL、CL、DL)。因此它们既可作为4个16位数据寄存器使用,也可作为8个8位数据寄存器使用,在编程时可存放源操作数、目的操作数或运算结果。数据寄存器是存放操作数、运算结果和运算的中间结果,以减少访问存储器的次数,或者存放从存储器读取的数据以及写入存储器的数据的寄存器。 分类 AX(accumulator)累加器。作为累加器使用。是算术运算的主要寄存器。在乘、除等指令中指定用来存放操作数。以及所有的 I/O指令都使用这一寄存器与外部设备传送信息。 BX(base)基址。可以作为通用寄存器使用。此外在计算机存储地址时,它经常用作基址寄存器。 CX(count)计数。可以作为通用寄存器使用。常用来保存计数值,如在循环、位移和串处理指令中作隐含计数器。 DX(data)数据。可以作为通用寄存器使用。一般在作双字长运算时把DX和AX组合在一起存放一个双字长数,DX用来存放高位数。对于某些I/O操作,DX可可用来存放I/O的端口地址。 段寄存器 目录 含义 组成 分类 含义 段寄存器是因为对内存的分段管理而设置的。16位CPU有四个16位段寄存器,所以,其程序可同时访问四个不同含义的段。 段寄存器CS指向存放程序的内存段,IP是用来存放下条待执行的指令在该段的偏移量,把它们合在一起可在该内存段内取到下次要执行的指令。 段寄存器SS指向用于堆栈的内存段,SP是用来指向该堆栈的栈顶,把它们合在一起可访问栈顶单元。另外,当偏移量用到了指针寄存器BP,则其缺省的段寄存器也是SS,并且用BP可访问整个堆栈,不仅仅是只访问栈顶。 段寄存器DS指向数据段,ES指向附加段,在存取操作数时,二者之一和一个偏移量合并就可得到存储单元的物理地址。该偏移量可以是具体数值、符号地址和指针寄存器的值等之一,具体情况将由指令的寻址方式来决定。 通常,缺省的数据段寄存器是DS,只有一个例外,即:在进行串操作时,其目的地址的段寄存器规定为ES。当然,在一般指令中,我们还可以通过改变前缀中的“段取代”字段来改变操作数的段寄存器。 “可选用

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档