北京航空航天大学 微机原理 第二章-2014.ppt

北京航空航天大学 微机原理 第二章-2014.ppt

  1. 1、本文档共119页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北京航空航天大学 微机原理 第二章-2014

微机原理与接口技术 第二章 林新 Lx@buaa.edu.cn 北京航空航天大学 自动化学院 2.1 8086 CPU结构 2.1.1 芯片内部结构 指令执行部件(Execution Unit) 总线接口部件(Bus Interface Unit) 1)总线接口部件 (Bus Interface Unit) 总线接口部件由下列各部分组成: (1)4个段地址寄存器; CS——16位的代码段寄存器; DS——16位的数据段寄存器; ES——16位的扩展段寄存器; SS——16位的堆栈段寄存器; (2)16位的指令指针寄存器IP; (3)20位的地址加法器; (4)6字节的指令队列缓冲器; (5)逻辑控制电路。 2)指令执行部件 (Execution Unit) 执行部件的功能就是负责从指令队列取指令并执行。从编程结构图可见,执行部件由下列几个部分组成: (1)算术逻辑单元ALU; (2)标志寄存器FR(PSW); (3)4个通用寄存器,即AX、BX、CX、DX; (4)4个专用寄存器,即SP、BP、SI、DI; (5)EU控制器。 3)指令流水线 每当8086的指令队列中有2个空字节,BIU就会自动把指令取到指令队列中。而同时EU从指令队列取出一条指令,并用几个时钟周期去分析、执行指令。 当指令队列已满,而且EU对BIU又无总线访问请求时,BIU便进入空闲状态。 在执行转移、调用和返回指令时,指令队列中的原有内容被自动清除。 2.1.2内部寄存器 数据寄存器 指针和变址寄存器 段寄存器 指令指针寄存器IP 标志寄存器(PSW或Flag Register) 1)数据寄存器 8086CPU在EU中有4个16位数据寄存器,可以存放数据或者地址: AX, BX, CX, DX 它们也可以分为8个8位寄存器来使用,只能用来存放数据,而不能是地址: 低8位:AL, BL, CL, DL; 高8位:AH, BH, CH, DH 2)指针和变址寄存器 8086中有4个用来存放地址偏移量的寄存器: BP和SP称为指针寄存器,与SS联用,访问当前的堆栈段 BP在间接寻址中使用,SS:BP组成了操作数的地址 SP在对堆栈操作时使用,PUSH和POP指令根据SS:SP进行压栈和退栈,写入或弹出数据。 SI和DI称为变址寄存器,通常与DS一起使用。在串操作指令中,源操作数的偏移量放在SI中,目的操作数的偏移量放在DI中,此时SI与DS联用,DI和ES联用。 3)段寄存器 8086CPU内部设置了4个16位段寄存器: CS:代码段寄存器 DS:数据段寄存器 ES:扩展段寄存器 SS:堆栈段寄存器 8086CPU可以直接寻址1MB的存储空间,需要20位地址码,而所有寄存器都是16位的,只能直接寻址64KB,因此采用分段技术来解决。将1MB的存储空间分为若干逻辑段,每段最长64KB,这些逻辑段在整个存储空间中可浮动 段基址与段内偏移地址组合形成20位的物理地址 4)指令指针寄存器IP 用来存放将要执行的下一条指令在当前代码段中的偏移地址,16位,由BIU自动修改。 8086程序不能直接访问IP,但是可以通过某些指令修改IP的内容,如跳转指令。 5)标志寄存器(PSW或者FR) 用来存放运算结果的特征,比如是否有进位,溢出等等。 16位长,其中7位没有定义,另外9位分为两类: 状态标志,表示运算后结果的状态,它影响后面的操作,共有6个:CF,PF,AF,ZF,SF,OF; 控制标志,用来控制CPU操作,共有3个:TF,IF和DF。 (1)?CF(Carry Flag),进位标志。本次运算中最高位有进位或者借位时,CF=1。指令STC使CF标志置位(设置为1),CLC指令使之复位。CMC使之取反。 (2)?PF(Parity Flag),奇偶校验标志。本次运算结果低8位中有偶数个“1”时,PF=1,有奇数个“1”时PF=0。 (3)?AF(Auxiliary Carry Flag),辅助进位标志。本次运算结果,低4位向高4位有进位或者借位时,AF=1。AF一般用在BCD码运算中,判断是否需要十进制调整。 (4)?ZF(Zero Flag),全0标志。本次运算结构为0时,ZF=1,否则为ZF=0。 (5)SF(Sign Flag),符号标志。本次运算结果的最高位为1时,SF=1,否则SF=0。SF反映了本次运算结构是正还是负。 (6)OF(Overflow Flag),溢出标志。本次运算过程中产生溢出时OF=1。 (7)?TF(Trap Flag),单步标志。调试程序时,可以将CPU设置在单步工作模式。TF=1时,CPU每执行完一条指令,就自动

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档