第4章Intel80X86系列微处器.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文档。上传文档
查看更多
第4章Intel80X86系列微处器

第4章 Intel80X86系列微处理器 本章内容: Intel8086微处理器的基本结构与工作原理; INTEL80286到Pentium CPU简要介绍。 4.1 8086/8088微处理器概述 1978年Intel公司推出了首枚16位微处理器8086,单一+5V供电,芯片外部数据总线16位,地址总线20位,最大可寻址1MB的存储空间。 4.2 8086/8088内部寄存器结构 14个16位的寄存器,可以分为三组: 通用寄存器组(8个) 段寄存器组(4个) 控制寄存器组(2个) FLAGS标志寄存器 (1)CF(Carry Flag)——进位标志。当执行算术运算指令时,其结果的最高位有进位或借位时,CF=1;否则CF=0。移位指令和标志位操作指令执行时也会影响此标志。 (2)PF(Parity Flag)——奇偶标志。该标志位反映操作结果低8位中“1”的个数情况,若为偶数个“1”,则PF=1;若为奇数个“1”,则PF=0。 设置奇偶标志位是早期Intel微处理器在数据通信环境中校验数据的一种手段。现在,奇偶校验通常由数据存储和通信设备完成,而不是由微处理器完成。所以,这个标志位在现代程序设计中很少使用。 (3)AF(Auxiliary Carry Flag)——辅助进位标志。辅助进位标志也称“半进位”标志。如果本次运算的低4位中的最高位有进位或有借位,则AF=1;否则AF=0。AF一般用于BCD运算中是否进行十进制调整的依据。 (4)ZF(Zero Flag)——零标志。反映运算结果是否为零。若结果为零,则ZF=1;否则ZF=0。 (5)SF(Sign Flag)——符号标志。反映有符号数(以二进制补码表示)运算结果符号位的情况。若结果为负数,则SF=1;若结果为正数,则SF=0。 SF的取值总是与运算结果的最高位(字节操作为D7,字操作为D15)取值一致。 (6)OF(Overflow Flag)——反映有符号数运算结果是否发生溢出。若发生溢出,则OF=1;否则,OF=0。 所谓溢出,是指运算结果超出了计算装置所能表示的数值范围。例如,对于字节运算,数值表示范围为-128~+127;对于字运算,数值表示范围为-32768~+32767。如果运算结果超出了上述范围,则发生了溢出。 溢出是一种差错,系统应做相应的处理。 注意:“溢出”与“进位”是两种不同的概念。“溢出”标志实际上是针对有符号数运算而言,而“进位”标志是针对无符号数运算而言。一般情况下,对于有符号数运算,不考虑“进位”标志,对于无符号数运算,不考虑“溢出”标志。 4.3.1存储器的分段管理 8086有20位地址线,内存储器中每个字节单元都有一个唯一的20位物理地址,存储空间为220字节=1M字节,地址范围从00000H到FFFFFH。CPU访存时必须给出20位的物理地址。 8086内部与地址有关的寄存器都是16位的,只能处理16位地址,对内存的直接寻址范围最大只能达64KB。为了实现对1MB单元的寻址,8086系统采用了存储器分段技术。 4.3.2物理地址与逻辑地址 物理地址:信息在存储器中实际存放的地址,它是CPU访问存储器时实际输出的地址。 逻辑地址:编程时所使用的地址,由段基地址和偏移量两部分构成。程序设计时所涉及的地址是逻辑地址而不是物理地址。编程时不需要知道产生的代码或数据在存储器中的具体物理位置。这样可以简化存储资源的动态管理。 段基地址(段地址或段基址):段的起始地址的高16位。 偏移量(偏移地址):所访问的存储单元距段的起始地址之间的字节距离。 给定段基地址和偏移量,就可以在存储器中寻址所访问的存储单元。在8086/8088系统中,段基地址和偏移量都是16位的。段基地址由16位的段寄存器CS、DS、SS和ES提供;偏移量通常由BX、BP、SP、SI、DI、IP或这些寄存器的组合形式来提供。 例如,8086/8088开机后执行的第一条指令的逻辑地址由CS和IP两个寄存器给出,其逻辑地址表示为FFFFH:0000H,对应的物理地址为FFFF0H。 4.3.3物理地址的形成 20位物理地址可由逻辑地址转换而来----将段寄存器中的16位段基地址左移4位(低位补0),再与16位的偏移量相加。 物理地址=段基地址×16+偏移量 【例4.1】设代码段寄存器CS中的内容为4232H,指令指针寄存器IP中的内容为0066H,即[CS]=4232H,[IP]=0066H,则访问代码段存储单元的物理地址计算如下: 4.3.4堆栈 堆栈是存储器中的一个特殊的数据存储区,采用“后进先出”的原则存放数据,通常它的一端(栈底)是固定的,另一端(栈顶)是浮动的,信息的存入和取出都只能在浮动的一端进行。堆栈主要用来暂时保存程序运行时的一些地址或数据信息。例如保存程序的

文档评论(0)

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

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

1亿VIP精品文档

相关文档