微机原理及接口技术2.ppt

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

2.1 8086/8088微处理器的结构 图2.1 8088 CPU的结构框图 1. 执行单元 EU 1) 执行单元的组成 执行单元主要包括五个部分: 8个通用寄存器: 算术逻辑单元(ALU) 标志寄存器FLAGS 数据暂存寄存器 EU控制电路 2) 执行单元的功能 执行单元EU的功能:负责执行指令 2. 总线接口单元BIU 1)总线接口单元的组成 总线接口单元主要包括五个部分: 4个段寄存器:包括CS、DS、SS和ES 指令指针寄存器IP:存放下一条要读取的指令的偏移地址 地址加法器:生成20位的物理地址 指令队列缓冲器:保存BIU从内存单元读入的指令 总线控制电路:控制总线的使用 BIU中的4个段寄存器分别存放程序代码段、数据段、堆栈段和附加数据段的段地址。 (1)段寄存器CS 存放程序代码段,16位 16位的段地址和16位的段内偏移地址组成20位的内存地址。它们分别由相关的寄存器提供,再通过地址加法器,生成20位的地址,实现CPU对1M存储空间的寻址。 (2)指令指针寄存器IP 存放下一条要读取的指令在代码段中的偏移地址。 IP在程序运行中能自动加1修正,从而始终指向下一条要读取的指令。程序运行时根据CS和IP的内容决定的执行指令的位置。 CS和IP的内容是由系统根据程序的运行顺序自动装入的,不能直接用赋值指令修改。 (3)20位地址加法器 作用:将16位的段地址和16位的段内偏移地址,生成20位的地址。 逻辑地址:把用段地址和偏移地址表示存储单元的地址。表达形式:“段地址:段内偏移地址” 物理地址:由逻辑地址生成的20位地址称为物理地址。 逻辑地址向物理地址的转换: 将16位的段地址左移4位加上16位的偏移地址,相当于十六进制数左移1位(或乘以10H),得到20位的物理地址。 逻辑地址向物理地址的转换公式: 物理地址=段地址×10H+段内偏移地址 (4)指令队列缓冲器 作用:保存BIU从内存单元读入的指令。 8088的指令队列有4个字节。当指令队列出现1个空字节时,BIU就自动执行一次取指令周期,将下一条要执行的指令从内存单元读入指令队列供EU使用。 指令采用“先进先出”原则顺序存放,并按顺序读取到EU中去执行。 2)总线接口单元的功能 作用:负责从存储器或I/O端口取指令、取操作数和保存运算结果。 EU和BIU并行工作,互不影响,提高CPU的执行速度。 2.1.2 8086/8088的寄存器 8086/8088CPU内部有14个16位的寄存器 按功能分: 通用寄存器(8个): AX、BX、CX、DX SP、BP、 SI、DI 段寄存器(4个): CS、DS、SS、ES 控制寄存器(2个): IP/F 1. 通用寄存器 包括四个数据寄存器,两个地址指针寄存器和两个变址寄存器。 1)数据寄存器AX、BX、CX、DX 暂时存放参与运算的操作数或中间运算结果。 4个数据寄存器都为16位,但又可将高、低8位分开,作为8个独立的8位寄存器: AX —> AH、AL BX —> BH、BL CX —> CH、CL DX —> DH、DL “H”:高8位,“L”:8位。 AX(Accumulator):累加器 存放算术逻辑运算中的操作数; 所有的I/O指令都使用累加器与外设端口交换信息。 BX(Base):基址寄存器 存放操作数在内存中数据段内的基地址。 CX(Counter):计数器 在设计循环程序时一般使用该寄存器存放循环次数。 DX(Data):数据寄存器。 在寄存器间接寻址的I/O指令中存放I/O端口地址;在做双字长乘除法运算时,DX与AX一起存放一个双字长操作数,其中DX存放高16位数。 2)地址指针寄存器SP、BP SP(Stack Pointer):堆栈指针寄存器 在使用堆栈操作指令(PUSH或POP)对堆栈进行操作时,每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2,以使其始终指向栈顶。 BP(Base Pointer):基址指针寄存器 用来存放数据,或存放操作数在堆栈段内的基地址。 3)变址寄存器SI、DI SI(Source Index):源变址寄存器 DI(Destination Index):目的变址寄存器 通常用在字符串操作时存放操作数的偏移地址,其中SI存放源串在数据段内的偏移地址,DI存放目的串在附加数据段内的偏移地址。 2.

文档评论(0)

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

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

1亿VIP精品文档

相关文档