欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    微机原理与接口技术第2章-1.ppt

    • 资源ID:3404398       资源大小:398.51KB        全文页数:42页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    微机原理与接口技术第2章-1.ppt

    1,第2章 16位和32位微处理器结构,2,本章主要内容,8086微处理器 80286、80386 Pentium,3,Intel 8086 微处理器的主要内容,8086的编程结构,尤其是寄存器组; 8086标志寄存器各个标志的含义; 8086的存储器编址,存储器的分段结构,4,2.1.1 CPU的内部组成,运算器 主要功能:对数据进行算术和逻辑运算。这些功能由算术逻辑单元(ALU)来实现; 寄存器组 寄存器可以存放数据和地址,也可以存放控制信息和状态信息。 CPU中寄存器的数量对CPU的运行速度影响很大。 寄存器从应用的角度可以分为:通用寄存器、专用寄存器,有以下几种类型:数据寄存器、地址寄存器、状态标志寄存器、控制寄存器等。,5,控制器 控制器是指挥与控制计算机各功能部件协同工作,自动执行计算机程序的部件。 控制器一般是由指令指针寄存器IP、指令寄存器IR、指令译码器ID、控制逻辑电路和时钟控制电路等组成。,6,2.1.2 16位微处理器8086 8086的编程结构,8086:Intel系列16位微处理器 数据总线:16位,内部寄存器,ALU都是16位的 地址总线:20位,以字节为单位对存储器进行编址,可寻址220 即1M字节。 问题:内部寄存器、运算器为16位,如何产生20位地址? 编程结构面向程序设计和应用角度的CPU结构,7,8,1.总线接口部件(BIU) 总线接口单元BIU的任务: 总线接口部件负责与存储器、I/O端口传送数据 读指令指令队列出现空字节(8088 1个空字节,8086 2个空字节)时,从内存取出后续指令。BIU取指令时,并不影响EU的执行,两者并行工作,大大提高了CPU的执行速度。 读操作数EU需要从内存或外设端口读取操作数时,根据EU给出的地址从内存或外设端口读取数据供EU使用。 写操作数EU的运算结果、数据或控制命令等由BIU送往指定的内存单元或外设端口。,9,总线接口部件(BIU)的组成,4个16位段地址寄存器 CS 16位的代码段寄存器 DS 16位的数据段寄存器 ES 16位的附加段寄存器 SS 16位的堆栈段寄存器 16位的指令指针寄存器IP (Instruction Pointer) 20位的地址加法器 利用16位的段寄存器和另一个16位地址寄存器值,形成20位的物理地址,送20位地址总线。 6字节的指令队列缓冲器 总线控制电路 CPU与外界总线联系的转接电路 包括三组总线:20位地址总线,16位双向数据总线和一组控制总线,10,1)存储器的分段,11,代码段寄存器CS存储程序当前使用的代码段的段地址。代码段用来存放程序的指令代码。下一条要读取指令在代码段中的偏移地址由指令指针寄存器IP提供; 数据段寄存器DS用来存放程序当前使用的数据段的段地址。一般来说,程序中所用到的原始数据、中间结果以及最终结果都存放在数据段中; 堆栈段寄存器SS用来存放程序当前所使用的堆栈段的段地址。堆栈是在存储器中开辟的一个特定区域; 附加数据段寄存器ES用来存放程序当前使用的附加数据段的段地址。附加数据段通常用于存放字符串操作时的目的字符串。 程序员在编写汇编语言源程序时,应该按照上述规定将程序的各个部分放在规定的段内。每个源程序必须至少有一个代码段,而数据段、堆栈段和附加数据段则根据程序的需要决定是否设置。,12,2)指令指针寄存器 指令指针寄存器IP用来存放下一条要读取的指令在代码段中的偏移地址。IP在程序运行中能自动加1修正,从而使其始终存放的是下一条要读取的指令在代码段的偏移地址。由于CS和IP的内容决定了程序的执行顺序,因此程序员不能直接用赋值指令对其内容进行修改。有些指令能使IP和CS的值改变(如跳转指令)或使其值压入堆栈或从堆栈中弹出恢复原值(如子程序调用指令和返回指令)。,13,3)20位地址加法器 8086/8088CPU在对存储单元进行访问以读取指令或读/写操作数时,必须在地址总线上提供20位的地址信息,以便选中对应的存储单元。那么,CPU是如何产生20位地址的呢? CPU提供的用来对存储单元进行访问的20位地址是由BIU中的地址加法器产生的。,14,存储器中每个存储单元的地址可有以下两种表示方式: 逻辑地址:其表达形式为“段地址:段内偏移地址”。段内偏移地址又称为“有效地址EA(Effective Address)。在读指令时,段地址由代码段寄存器CS提供,当前要读取指令在代码段中的偏移地址由指令指针寄存器IP提供;在读取或存储操作数时,根据具体操作,段地址由DS、ES或SS提供,段内偏移地址由指令给出。,15,物理地址:CPU与存储器进行数据交换时在地址总线上提供的20位地址信息称为物理地址。物理地址的形成过程如图所示。由IP提供或由EU根据指令所提供寻址方式计算出寻址单元的16位段内偏移地址后,把该偏移地址和段寄存器内容左移四位后(相当于乘以10H)得到的段基址(段内第一个存储单元的物理地址)同时送到BIU中的地址加法器,形成一个20位的物理地址,从而实现对存储单元的访问。由逻辑地址求物理地址的公式为: 物理地址=段地址10H+段内偏移地址 如假设当前(CS)=20A8H,(IP)=2008H,那么,下一条从内存中读取的指令所在存储单元的物理地址为:20A8H10H+ 2008H=22A88H。,16,物理地址的形成,17,4) 指令队列缓冲器 8086的指令队列有6个字节,当指令队列出现空字节时,BIU就自动执行一次取指令周期,将下一条要执行的指令从内存单元读入指令队列。它们采用“先进先出”原则,按顺序存放,并按顺序取到EU中去执行。 指令队列的引入使得EU和BIU可并行工作,即BIU在读指令时,并不影响EU单元执行指令,EU单元可以连续不断地直接从指令队列中取到要执行的指令代码,从而减少了CPU为取指令而等待的时间,提高了CPU的利用率,加快了整机的运行速度。,18,19,2执行单元EU 执行单元EU不与系统外部直接相连,它的功能只是负责执行指令。执行的指令从BIU的指令队列缓冲器中直接得到,执行指令时若需要从存储器或I/O端口读写操作数时,由EU向BIU发出请求,再由BIU对存储器或I/O端口进行访问。,20,执行部件EU的组成,EU控制电路:指令译码,产生定时和控制信号 16位算术逻辑单元ALU:进行算术逻辑运算 8个16位通用寄存器AX、BX、CX、DX、SP、BP、SI、DI 16位标志寄存器FLAGS:存放运算结果的状态和控制标志 数据暂存寄存器:暂存参加运算的数据 EU控制电路:它是控制、定时与状态逻辑电路,接收从BIU中指令队列取来的指令,经过指令译码形成各种定时控制信号,对EU的各个部件实现特定的定时操作。,21,2.2 8086/8088寄存器结构,内部有14个16位寄存器,按功能可分为四大类 8个通用寄存器:AX、BX、CX、DX、SP、BP、SI、DI 4个段寄存器:CS、DS、SS、ES 1个控制寄存器:IP 1个标志寄存器:FLAGS,22,2.2.1 通用寄存器,AX、BX、CX、DX 一般用于存放参与运算的操作数或运算结果 每个数据寄存器都是16位的,但又可将高、低8位分别作为两个独立的8位寄存器来用。高8位分别记作AH、BH、CH、DH,低8位分别记作AL,BL,CL,DL。 注意,8086/8088 CPU的14个寄存器除了这4个16位寄存器能分别当作两个8位寄存器来用之外,其它寄存器都不能如此使用。,23,AX(Accumulator)称为累加器。用该寄存器存放运算结果可使指令简化,提高指令的执行速度。此外,所有的I/O指令都使用该寄存器与外设端口交换信息。,BX(Base)称为基址寄存器。8086/8088CPU中有两个基址寄存器BX和BP。BX用来存放操作数在内存中数据段内的偏移地址,BP用来存放操作数在堆栈段内的偏移地址。,CX(Counter)称为计数器。在设计循环程序时使用该寄存器存放循环次数,可使程序指令简化,有利于提高程序的运行速度。,DX(Data)称为数据寄存器。在寄存器间接寻址的I/O指令中存放I/O端口地址;在做双字长乘除法运算时,DX与AX一起存放一个双字长操作数,其中DX存放高16位数。,寄存器AX, BX,CX, DX的特定用法,24,地址指针寄存器SP、BP 堆栈指针寄存器SP (stack pointer) 基址寄存器BP(base pointer) 变址寄存器SI、DI 源变址寄存器SI (source index) 目的变址寄存器DI (destination index),25,2.2.2 段寄存器,CS 16位的代码段寄存器 DS 16位的数据段寄存器 ES 16位的附加段寄存器 SS 16位的堆栈段寄存器,26,8086/8088段寄存器与提供段内移地址的寄存器之间的 默 认 组 合,27,2.2.3 控制寄存器,指令指针寄存器IP 标志寄存器FR,28,标志寄存器FLAGS,标志寄存器共有16位,其中7位未用,所用的各位含义如下: 根据功能,8086的标志可以分为两类: 状态标志:表示前面的操作执行后,ALU处于何种状态,可能会影响后面的操作 控制标志:人为设置的,可以用专门的设置和清除指令,用于对某种功能的控制,29,状态标志,有6个,即SF、ZF、PF、CF、AF和OF 符号标志SF (sign flag ) 零标志ZF (zero flag) 奇偶标志PF (parity flag) 低8位1的个数为偶数,PF=1 进位标志CF (carry flag) 最高位产生进位CF=1 辅助进位标志AF (auxiliary carry flag) 溢出标志OF (overflow flag) 算术运算产生溢出 8位运算结果超出-128+127 16位运算结果超出-32768+32767,30,控制标志位(3位)用来控制CPU的操作,由程序设置或清除。它们是: TF(Trap Flag)跟踪(陷阱)标志位。是为测试程序的方便而设置。若将TF置1,CPU处于单步工作方式。,IF(Interrupt Flag)中断允许标志位。是用来控制可屏蔽中断的控制标志位。若将IF置1,表示允许CPU接受外部从INTR引脚上发来的可屏蔽中断请求;若用CLI指令将IF清0,则禁止CPU接受可屏蔽中断请求信号。,DF(Direction Flag)方向标志位。若将DF置1,串操作按减地址方式进行,也就是说,从高地址开始,每操作一次地址自动递减;否则按增地址方式进行。,31,2.3 8086的存储器和I/O组织,一. 8086的存储器编址 1. 8086存储空间 存储器地址 20根地址线,直接寻址能力1MB,地址从00000H-FFFFFH 按字节编址,每个字节赋予一个20位的地址编号物理地址,32,图3.10 数据在存储器中的存放,1、注意20根地址线与1M个存储单元之间的关系;存储单元地址与该单元内容等概念; 2、注意字节型、字型及双字型数据在存储器中的存放方法; 3、规则存放的概念(本节后面还会详细介绍),33,存储器内容,一个字可以存放在任意两个相连的存储单元中,在一个字中的每一个字节有一个地址,字单元地址采用它的低地址表示;即一个字的起始地址可以从偶地址开始也可以从奇地址开始,并且较高存储器地址的字节含有该字的高8位,较低地址含有低8位 同一个地址可以看做字节单元地址,也可以看做字单元地址 指针存放:按双字进行存放,偏移量存放于低地址,段基址存放于高地址 存放字符串时,字符串的第一个字节存放在地址较低的单元中,然后依次存放,34,2存储器的段结构 8086/8088 CPU中有关可用来存放地址的寄存器如IP、SP等都是16位的,故只能直接寻址64 KB。为了对1M个存储单元进行管理,8086/8088采用了段结构的存储器管理方法。 8086/8088将整个存储器分为许多逻辑段,每个逻辑段的容量小于或等于64 KB,允许它们在整个存储空间中浮动,各个逻辑段之间可以紧密相连,也可以互相重叠。 用户编写的程序(包括指令代码和数据)被分别存储在代码段、数据段、堆栈段和附加数据段中,这些段的段地址分别存储在段寄存器CS、DS、SS和ES中,而指令或数据在段内偏移地址可由对应的地址寄存器或立即数给出。,35,A段,C段,B段,D段,E段,00000H,10000H,20000H,30000H,40000H,64KB,64KB,64KB,64KB,紧密相连,部分重叠,完全重叠,断开排列,1FF00H,2FEFFH,M,64KB,36,3. 逻辑地址与物理地址 逻辑地址:由段地址(逻辑段起始地址的高16位)和偏移地址(16位)表示的存储单元的地址称为逻辑地址,记为: 段地址偏移地址 物理地址:由CPU内部总线接口单元BIU中的地址加法器根据逻辑地址产生的20位存储单元地址称为物理地址。,37,0,15,段内偏移地址,段寄存器,19,0,3,4,0000,段地址左移4位,20位物理地址,19,0,物理地址的形成,物理地址和逻辑地址的关系为: 物理地址段地址×10H偏移地址 在程序设计中,段地址是由段寄存器(如CS、DS、SS或ES)提供,偏移地址通常是由地址寄存器(如IP、BX、BP、SP、SI或DI等)及立即数等提供。,38,对于任何一个物理地址来说,可以唯一被包含在一个逻辑段中,也可以包含在多个重叠的逻辑段中,只要能得到它所在段的首地址和段内的相对地址,就可以对它进行访问。即一个物理地址可以对应多个逻辑地址。,11230H 11231H 11232H,0000H 0001H 0002H,1123H,1123EH 1123FH 11240H 11241H 11242H 11243H 11244H 11245H,000EH 000FH 0010H 0011H 0012H 0013H 0014H 0015H,段基址:,偏移地址,物理地址,15H,1124H,05H,段基址:,FFFEH FFFFH,1122EH 1122FH,1123H×1615H=11245H,1124H×1605H=11245H,39,CS、DS、SS和其他寄存器组合指向存储单元的示意图 :,40,表 存储器操作时段地址和段内偏移地址的来源,CPU 对存 储器 的操 作有 读指 令及 读 操作 数、写 操作 数 三大类!,41,4.堆栈操作 80868088系统中的堆栈使用段定义语句在存储器中定义的一个堆栈段,和其它逻辑段一样,它可以在1M字节的存储空间中浮动,其容量可达64KB。 开辟堆栈的目的主要有以下两点: (1) 存放指令操作数(变量)。此时,对操作数进行访问时,段地址由堆栈段寄存器SS来提供,操作数在该段内的偏移地址由基址寄存器BP来提供。 (2) 保护断点和现场。此为堆栈的主要功能。 这是一个具有“先进后出”特性的存储区域,堆栈由SS和SP来寻址。SS给出堆栈段的段地址,而SP给出当前栈顶(偏移地址),即指出从段地址到栈顶的偏移量。,42,若已知当前SS1050H,SP0008H,AX1234H,则8086系统中堆栈的入栈和出栈操作如下图所示。,12,AA,10500H,10501H,10502H,10503H,10504H,10505H,10506H,10507H,10508H,栈底,BB,10509H,段基址(SS),AX,34,12,12,34,34,PUSH AX,1050AH,BB,AA,AA,BB,12,34,34,POP BX,POP AX,12,

    注意事项

    本文(微机原理与接口技术第2章-1.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开