计算机的编程结构.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机的编程结构 本部分需掌握内容 寄存器 各类寄存器用途 存储器 寻址:实地址和虚拟地址方式 输入/输出端口 寄存器 默认16位段+偏移寻址组合 默认32位段+偏移寻址组合 微机硬件系统 用总线将微处理器、存储器和各种输入输出设备接口电路连接在一起的计算机体系结构 计算机的编程结构 寄存器 1)通用寄存器 8个32位寄存器: EAX、EBX、ECX、EDX、ESP、EBP、ESI和EDI 8个16位寄存器: AX、BX、CX、DX、SP、BP、SI和DI 8个8位寄存器: AH、BH、CH、DH、AL、BL、CL和DL 2)段寄存器:CS、DS、ES、SS、FS和GS 3)指令指针寄存器:EIP(32位)和IP(16位) 4)FLAGS(标志)寄存器:EFR(32位)和FR(16位) 寄存器 通用寄存器 作用:通用寄存器经常被用来存放操作数和运算结果,有些也可以存放地址 各个寄存器的专用目的 EAX/AX/AL—累加器(Accumulator) 使用频度最高,用于算术和逻辑运算,串操作及I/O操作指令 EBX/BX—基址寄存器(Base Address Register) 在某些寻址方式中存放地址偏移量 ECX/CX—计数寄存器(Count Register) 在循环、移位和串操作等指令中作隐含计数器 EDX/DX—数据寄存器(Data Register) 在双/四字长运算中存放高位数据,且DX存放I/O端口地址 通用寄存器 ESP/SP—堆栈指针寄存器 (Stack Pointer Register) 作用:存放当前堆栈栈顶单元的偏移地址 注意:ESP/SP只能在栈操作中提供栈顶偏移地址 EBP/BP—基址指针寄存器 (Base Pointer Register) 在某些寻址方式中,参与形成堆栈存储单元的有效地址 注意:ESP/SP和EBP/BP与SS联合使用,确定堆栈段中存储单元的物理地址,用于堆栈内存单元的寻址 通用寄存器 ESI/SI和EDI/DI的作用: 在内存操作数寻址中提供内存单元的偏移地址 在串操作中,2寄存器的专用目的: ESI/SI—源变址寄存器(Source Index Register) 在串操作中存放源串偏移地址 EDI/DI—目的变址寄存器(Destination Index Register) 在串操作中存放目的串的偏移地址 段寄存器 存储器分段管理的原因: 8086有20条地址线 最大可编址:220=1MB内存空间 8086CPU内部地址寄存器为16位 16位寄存器寻址范围:216=64KB 段寄存器 解决方案: 用2个16位寄存器描述内存单元地址 分段管理内存 实施办法: 将正运行程序的指令、数据和系统暂存数据分别放在不同段中 段寄存器提供各段首地址的高16位(段基值) 由段基值和有效地址(偏移地址)合成内存单元的物理地址 段容量:64KB 段寄存器 CS—代码段寄存器(Code segment Register) 代码段:存放当前正在运行的程序的指令 SS—堆栈段寄存器(Stack segment Register) 堆栈段:存放按“后进先出”原则存取的数据 DS—数据段寄存器(Data segment Register) 数据段:存放原始数据和程序运行结果 ES—附加段寄存器(Extra segment Register) 附加段: 存放原始数据和程序运行的中间结果 在串操作中存放目的操作数 FS和GS—32位微处理器中的附加段寄存器 段寄存器 当前段 1个程序划分段的数目是任意的; 由CS、SS、DS、ES、FS和GS指向的段是当前段; 在一个程序运行的任一时刻,最多有6个当前段 在一个程序运行的任一时刻,最少有1个当前段:即由CS指向的代码段。 需要时,编程更换段寄存器的内容,可使其它段成为当前段。 段寄存器 段基值:段寄存器内容 段基址:段首地址(20位) 偏移地址/偏移量(有效地址):一个内存单元与它所在段的段基址之间的距离(以字节计算)。 位移量:一个内存单元与所在段内另一内存单元之间的距离(以字节计算)。 注意:默认情况,每个段第一个字节的偏移地址等于0。 代码段(Code Segment) 用途:存放程序的指令序列 代码段地址形成: 段寄存器CS:提供代码段段基值 指令指针寄存器EIP/IP:指示代码段的偏移地址 CPU利用CS∶EIP(IP)合成欲取指令的物理地址 堆栈段(Stack Segment〕 用途: 1.存放中断调用及子程序调用时程序保存的断点 2.存放程序使用的原始数据及中间结果 堆栈段地址形成: 堆栈段寄存器SS 堆栈指针寄存器ESP/SP:指示堆栈栈顶的偏移地址 CPU利用SS∶ESP(SP)在堆栈顶部内存单元存取数据 数据段(Data segmen

文档评论(0)

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

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档