8086汇编语言程序设计第2章+80 x86计算机组织结构.ppt_第1页
8086汇编语言程序设计第2章+80 x86计算机组织结构.ppt_第2页
8086汇编语言程序设计第2章+80 x86计算机组织结构.ppt_第3页
8086汇编语言程序设计第2章+80 x86计算机组织结构.ppt_第4页
8086汇编语言程序设计第2章+80 x86计算机组织结构.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

艰苦奋斗、严谨治学、求实创新、为人师表,第2章80X86计算机组织结构,180X86计算机的基本结构280X86CPU的寄存器3内存组织结构480X86CPU的工作模式5存储器管理机制,2.180X86计算机的基本结构,中央处理器总线结构存储器外部设备,图2-1计算机的基本结构,中央处理器-CPU,中央处理器又称为微处理器,内部包括运算器、控制器和寄存器三部分组成。中央处理器CPU的主要功能是执行存放在内存储器中的指令。执行步骤:取指-分析操作码-执行,运算器也称为算术逻辑部件,是用来执行指令所要求的算术运算、逻辑运算和数据传送等操作。控制器是控制执行步骤;从内存中取出指令,分析指令的操作码,完成操作数的存取,发出相应的控制命令等。,总线结构,总线负责传送地址、数据和控制信息,因此包括:数据总线DB(DataBus)地址总线AB(AddressBus)控制总线CB(ControlBus)三总线的主要任务是负责CPU与内存、外存、外部设备交换信息。,a.数据总线DB数据总线是用来传送数据的。CPU与内存、I/O设备之间通过数据总线传送数据,80 x86系列的数据总线有8位、16位、32位和64位。,b.地址总线AB地址总线是用来传送地址的。当CPU与内存、I/O设备之间交换信息时,首先要传送地址,内存中的每个字节都对应着一个唯一的地址,I/O设备也是如此。地址总线的位数与寻址空间有着直接的关系。例如:8086/8088地址总线20根,则可访问的地址为:220=1,048,576=1M则8086/8088最大可用的存储空间为1M字节。,c.控制总线CB控制总线是传送控制信息的。CPU与内存、外设备之间的数据传送操作为读写操作。读写信息就是控制信息,是通过控制总线传送的。不同型号的CPU总线位数不同,相应的字长与寻址空间也不同。,存储器,存储器是计算机的记忆部件,包括内存(主存)和外部存储器(辅助存储器),存储器中存放的是指令和数据。存储器由若干存储单元构成,存储单元的最小单位是字节。将所有的存储单元按顺序编号,即每一个字节有一个唯一的编号,这些编号称为存储单元的地址(也称为物理地址)。,若CPU要存取某个存储单元的内容,则首先提供该存储单元的地址,然后按地址选中对应的存储单元,就可以对单元内容进行存取操作。,IBMPC机及其兼容机的存储器系统主要分为3个主要部分:程序暂驻区(TPA)、系统内存区和扩展存储区(XMS),图2-2IBMPC机及其兼容机的存储器映像,外部设备,在微机系统中最常用的外部设备有:键盘显示器打印机外部存储器等CPU与外部设备交换信息是通过I/O接口电路来完成的。,2.280X86CPU的寄存器,通用寄存器控制寄存器段寄存器,图2-380X86寄存器组,通用寄存器,80 x86CPU的通用寄存器包括:4个32位数据寄存器,2个32位指针寄存器,2个32位变址寄存器。8个8位通用寄存器:AL、AH、BL、BH、CL、CH、DL、DH。8个16位通用寄存器:AX、BX、CX、DX、SI、DI、BP、SP。8个32位通用寄存器:EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP。,1.数据寄存器(AX、BX、CX、DX)4个16位数据寄存器AX、BX、CX、DX,每个又可以分为两个独立的8位寄存器AH、AL、BH、BL、CH、CL、DH、DL。4个32位通用寄存器:用于80386以上的机型:EAX、EBX、ECX、EDX。,2.指针寄存器(SP、BP、IP)SP:堆栈指针寄存器,存放当前堆栈段栈顶的偏移地址,ES与SS堆栈寄存器配合存取堆栈中的数据。在实模式方式(SP),保护模式(ESP)。BP:为基址指针寄存器,在间接寻址时,用来存放基地址,是相对于堆栈段的基地址。IP:为指令指针寄存器,是存放当前正在执行的指令的下一条指令的偏移地址,该寄存器所指的地址为代码段的偏移地址。,3.变址寄存器(SI、DI)SI为源变址寄存器,间接寻址时,在指令中用于地址寄存器和变址寄存器,在串操作时用于源串的地址。DI为目的变址寄存器,间接寻址时,在指令中用于地址寄存器和变址寄存器,在串操作时用于目的串的地址。,控制寄存器,FLAGS为标志寄存器,用于表示程序运行时的状态和一些特殊控制.8086/808880286的标志寄存器为16位,80386以上的标志寄存器为32位。,图2-48086/8088标志寄存器,图2-580286Pentium的标志寄存器,表2-38086/8088标志寄存器状态功能表,段寄存器在PC机中存储器是采用分段管理的方法来组织数据,代码和数据是分开存放的,代码放在代码段中,数据放在数据段中.所谓的段(segment)就是在内存中所定义的一片存储空间,因此某个存储单元的物理地址需要用段基地址和偏移地址表示.段的基地址就存放在段寄存器中,一个程序可以由多个段组成.,808680286,有4个段寄存器,即代码段CS、数据段DS、堆栈段SS、附加段ES。在程序执行过程中可以访问4个当前段。80386及以上的机器,有6个段寄存器,增加了FS、GS为附加的数据段寄存器。在程序执行过程中可以访问6个当前段。,2.3内存组织结构,内存的地址字节、字的存放堆栈,内存的地址在存储器中内存单元的基本单位为字节,每个字节都有一个唯一的地址。,图2-6内存单元的地址与内容,字的地址:字是由两个字节组成,如图2-6所示,则字1234H的地址为00002H,低字节在前(地址为00002H)高字节在后(地址为00003H).,存储单元的内容一个存储单元存放的信息为存储单元的内容字节单元内容:地址00002H的内容为34H,表示为(00002H)=34H。字单元内容:多用偶地址来表示字单元的地址,字的低字节在偶地址上为偶地址,地址00002H的字单元内容为1234H,表示为(00002H)=1234H。如图2.6所示。某单元内容的内容:某单元的内容为要寻找的单元地址,该地址所指的内容为要寻找的内容。,图2-7某单元内容的内容,(0004H)=1234H(1234H)=FFEEH则记(0004H)=FFEEH;两个括号表示内容的内容,即地址0004H单元的内容的内容为FFEEH。,堆栈,堆栈(stack)是内存中的一块特定区域,是一个常用的数据结构,在堆栈中的内容是按照“先进后出”的原则进行操作的。通常用来暂存数据、子程序(过程)调用与返回,调用中断处理程序与从中断处理程序返回等。,2.480X86CPU的工作模式,实模式保护模式,实模式,内存地址的分段8086/8088地址总线20根可访问的地址为:220=1,048,576=1M分段方法用16位段地址与16位段内地址的迭加形成20位物理地址,放在16位段寄存器内的段地址定义在任意64K字节存储段的起始地址上,段内地址(偏移地址)定义在64K字节存储段内的任意单元。,地址的组合:物理地址=段地址*16D(或10H)+偏移地址,即物理地址等于2进制的16位段地址乘以16(左移4位)加2进制16位偏移地址。为了书写方便一般采用16进制表示地址和数据,则物理地址等于16进制的4位段地址乘以10H(左移1位)加16进制4位偏移地址。如图2-9所示。,图2-9物理地址的组合,图2-10实模式下的存储器的段结构,物理地址、段地址、段内地址和逻辑地址(1)物理地址:与内存单元一一对应的20位2进制(或5位16进制)表示的地址为物理地址。1MB=00000HFFFFFH每个物理地址代表一个唯一的内存单元。,(2)段地址:将1MB的内存空间分成长为64K字节的程序区和数据区为段,每个段用1个16位2进制地址表示。在实模式下的寄存器为16位寄存器,段地址是存放在段寄存器中代码段是存放源程序的2进制程序代码,该段的段地址放在CS中数据段是存放操作数据的,其段地址放在DS中堆栈段是堆栈用的存储区,其段地址放在SS中附加段的段地址放在ES中,(3)段内地址:(偏移地址或偏移值):16位2进制段内地址为偏移地址。不同段内的偏移地址是存放在不同的寄存器中,段寄存器与装偏移地址的寄存器是按照一定的要求组合的。组合方式如表2-4所示。对于808680286允许访问4个存储段,80386以上允许访问6个存储段,其段寄存器与偏移地址的寄存器的组合方法如表2-5所示。,(4)逻辑地址:用段地址和偏移地址来表示内存单元的地址为逻辑地址,两地址之间用“:”隔开。常写成:段地址:偏移地址例如:物理地址为00001H逻辑地址为0000H:0001H当物理地址为00001H时,其逻辑地址为0000H:0001H,段地址为0000H段内地址为0001H。,逻辑地址与物理地址的换算关系逻辑地址是段地址和偏移地址的组合表示,物理地址是段地址和偏移地址的迭加表示。物理地址=段地址*16D(或10H)+偏移地址逻辑地址=段地址:偏移地址,【例2-7】设逻辑地址为1111H:2222H则物理地址为:1111H10H+2222H=13332H表示:当逻辑地址为1111H:2222H时物理地址为13332H假设段地址1111H为代码段地址,则1111H存放在代码段寄存器CS中,偏移地址2222H就放在指针寄存器IP中。如图2-12所示。,图2-12,【例2-8】167B6H为物理地址其逻辑地址为多种组合:1000H:67B6H1001H:67A6H1002H:6796H1366H:3166H1367H:3156H167BH:0006H段地址加1,偏移地址就减10H(16)个字节,则每种组合的物理地址均为167B6H。,内存分配方法例如,某一程序的长度为1020个字节,操作数占510个字节,堆栈段大约用250个字节,在定义时将代码段长度定为1024D=400H,数据段长度512D=200H,堆栈段长度256D=100H,系统以节的边界对齐。假设系统给程序分配的内存区从6100H开始。代码段起始地址6100H,代码段的偏移地址为000003FFH,即代码段长度为400H,数据段起始地址6140H,数据段的偏移地址为000001FFH,即数据段长度为200H,堆栈段起始地址6160H,堆栈段的偏移地址为000000FFH,即堆栈段长度为100H。,所以代码段:6100H10H+0000H+0001H400H个字节(1024个字节)+03FFH数据段:6140H*10H+0000H+0001H200H个字节(512个字节)+01FFH堆栈段:6160H*10H+0000H+0001H100H个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论