《汇编语言程序设计第二章计算机组织.ppt》由会员分享,可在线阅读,更多相关《汇编语言程序设计第二章计算机组织.ppt(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编语言程序设计第二章计算机组织1现在学习的是第1页,共23页n n80808080 x86x86x86x86是由美国是由美国是由美国是由美国IntelIntelIntelIntel公司生产的微处理器公司生产的微处理器公司生产的微处理器公司生产的微处理器,n公司成立于公司成立于公司成立于公司成立于1968196819681968年年年年(Apple(Apple(Apple(Apple于于于于1976)1976)1976)1976)n n1969196919691969年就设计出年就设计出年就设计出年就设计出4 4 4 4位的位的位的位的4004400440044004芯片芯片芯片芯片n1973
2、197319731973年设计出年设计出年设计出年设计出8 8 8 8位的位的位的位的8080808080808080芯片芯片芯片芯片n n1978197819781978年正式推出年正式推出年正式推出年正式推出16161616位的位的位的位的8086808680868086微处理器芯片微处理器芯片微处理器芯片微处理器芯片n由此开始由此开始由此开始由此开始IntelIntelIntelIntel公司的公司的公司的公司的80808080 x86x86x86x86微处理器系列的生产历微处理器系列的生产历微处理器系列的生产历微处理器系列的生产历史史史史.2现在学习的是第2页,共23页n插曲插曲插曲插
3、曲:当当IBMIBM进入进入PCPC市场时市场时,8086/8088,8086/8088成为首选成为首选.尽管后来尽管后来IBMIBM要自己开发新要自己开发新CPU,CPU,并且想并且想踢开踢开Intel,Intel,但但Intel80286Intel80286却帮助却帮助CompaqCompaq抓住了机会抓住了机会.CompaqCompaq迅速推出兼容机并大举成功迅速推出兼容机并大举成功(CompaqCompaq可能是可能是Compatibility QuicklyCompatibility Quickly的缩写的缩写),),IBMIBM自己的自己的CPUCPU也就胎死腹中了也就胎死腹中了.
4、因为当时人们还没有对计算机产生因为当时人们还没有对计算机产生“代代”的概念的概念.当苹果机选用当苹果机选用65026502时时,开发开发65026502的那家的那家CPUCPU公司认为从此可以稳坐泰山了公司认为从此可以稳坐泰山了,就没有投入精力去开发新的或与这一就没有投入精力去开发新的或与这一代兼容的代兼容的1616位的下一代位的下一代CPU.CPU.这时这时,IntelIntel看到了机会看到了机会,它迅速地研制出比苹果机要它迅速地研制出比苹果机要好得多的好得多的1616位位CPU 8086,CPU 8086,这里这里,苹果发现压力很大苹果发现压力很大,所以也做了一个所以也做了一个1616位
5、的也能兼容位的也能兼容65026502的的CPU,CPU,但是但是,这个这个CPUCPU比比80868086差些差些,所以苹果公司以后也就一直没有用生产所以苹果公司以后也就一直没有用生产6502 6502 CPUCPU的公司的的公司的CPUCPU了了,这个公司就失去了成为生产这个公司就失去了成为生产CPUCPU的核心公司的一个机会的核心公司的一个机会.后来的苹后来的苹果选用了果选用了68000.68000.3现在学习的是第3页,共23页编程有关的逻辑结构n nCPUn nRAMn nI/O端口运算器运算器寄存器组存储器输入输入 或或输出输出端口端口4现在学习的是第4页,共23页2.1.2 2.
6、1.2 2.1.2 2.1.2 软件软件软件软件 操作系统操作系统常驻监督程序常驻监督程序系系统统软软件件文文件件管管理理系系统统 I/OI/O 驱驱 动动 程程 序序调调试试程程序序文文本本编编辑辑程程序序翻翻译译程程序序连连接接程程序序装装入入程程序序系系统统程程序序用用户户软软件件用户程序用户程序用户程序库用户程序库计算机软件层次图计算机软件层次图5现在学习的是第5页,共23页 计算机存储信息的基本单元是一个二进制位,一位可存计算机存储信息的基本单元是一个二进制位,一位可存一个二进制数:一个二进制数:0 0或或1 1。每。每八八位组成一个字节,位编号如下:位组成一个字节,位编号如下:7
7、6 5 4 3 2 1 07 6 5 4 3 2 1 0字节:字节:IBM PC IBM PC 机的字长为机的字长为1616位,由位,由2 2个字节组成,位编号如下:个字节组成,位编号如下:15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 高位字节高位字节 MSBMSB低位字节低位字节 LSBLSB字字字节字节 存储器存储器n n存储单元的地址和内容存储单元的地址和内容
8、6现在学习的是第6页,共23页1)以字节为单位存储信息。以字节为单位存储信息。2)2)每一个字节单元给以一个存储器地址。每一个字节单元给以一个存储器地址。地址从地址从0 0开始,顺序地加开始,顺序地加1 1。用无符号十六进制。用无符号十六进制 数表示:如数表示:如0100H0100H,1 1A105HA105H3)3)存储器的容量以存储器的容量以2 21010=1024=1024为基本单位,称为为基本单位,称为1 1K K。216 6553665536个字节单元个字节单元6464K K。4 4)一个存储单元中存放的信息称为该单元的内容。)一个存储单元中存放的信息称为该单元的内容。注意:注意:存
9、储器的地址和内容是完全不同的概念。存储器概念(一)存储器是一片连续的内存空间:存储器是一片连续的内存空间:7现在学习的是第7页,共23页存储器概念(二)1 1)一个)一个字字存入存储器要占用相继的两个字节:存入存储器要占用相继的两个字节:低位字节放入低地址,高位字节放入高地址低位字节放入低地址,高位字节放入高地址。2 2)字单元的地址用它的低地址来表示。)字单元的地址用它的低地址来表示。3 3)字单元的地址既可以是偶数,也可以是奇数)字单元的地址既可以是偶数,也可以是奇数4 4)CPUCPU是以偶数地址访问存储器的。是以偶数地址访问存储器的。对于奇地址的字单元,要取一个字需要访问二次存对于奇地
10、址的字单元,要取一个字需要访问二次存储器。储器。5 5)存储器的特点:它的内容是取之不尽的。)存储器的特点:它的内容是取之不尽的。8现在学习的是第8页,共23页存储器(三)56H56H12H12H3AH3AH4BH4BH00H00H97H97H80H80HFEHFEH存储器地址存储器内容存储器地址存储器内容1A050H1A050H字节单元的内字节单元的内容是:容是:56H56H,其字单元,其字单元内容是:内容是:1256H1256H。1A055H1A055H字节单元的内容字节单元的内容是:是:97H97H,其字单元内,其字单元内容是:容是:8097H8097H。1A056H1A056H字节单元
11、的内字节单元的内容是:容是:80H80H,其字单元,其字单元内容是:内容是:0FE80H0FE80H。1A050H1A051H1A052H1A053H1A054H1A055H1A056H1A057H9现在学习的是第9页,共23页*有有2020位地址,最大存储容量为位地址,最大存储容量为2 22020=1024=1024K=1MK=1M字节;字节;*又是又是1616位字长的机器,位字长的机器,内部寄存器内部寄存器可表达的最大存储空间为可表达的最大存储空间为 2 2161664K64K字节。字节。8086PC8086PC,用什么办法来提供,用什么办法来提供2020位存储器地址呢?位存储器地址呢?把
12、存储器划分成段,每个段的大小可达把存储器划分成段,每个段的大小可达6464K K,故段内故段内地址可以用地址可以用1616位表示,称为位表示,称为偏移地址偏移地址。段的起始地址有限制,。段的起始地址有限制,不能起始于任意地址,而必须从任一小段的首地址开始。何为小段不能起始于任意地址,而必须从任一小段的首地址开始。何为小段?机器规定:机器规定:从从0 0地址开始,每地址开始,每1616个字节为一小段个字节为一小段。小段的首地。小段的首地址的特点是:址的特点是:十六进制表示的地址最低位为十六进制表示的地址最低位为0 0。存储器地址分段法存储器地址分段法存储器地址的分段存储器地址的分段n n8086
13、PC8086PC机:机:10现在学习的是第10页,共23页0000000000,0000100001,00000000E E,0000F0000F;0001000010,0001100011,0001E0001E,0001F0001F;0002000020,0002100021,0002E0002E,0002F0002F;如:存储器最低地址的三个小段的地址区间如:存储器最低地址的三个小段的地址区间每行为一小段每行为一小段:第一第一列列是每个小段的首地址,在是每个小段的首地址,在1616进制表示的地址进制表示的地址中,最低为中,最低为0 0(即(即2020位地址的低位地址的低4 4位为位为0 0
14、)。在)。在 1 1M M字节的字节的地址空间里,共有地址空间里,共有6464K K个小段首地址。个小段首地址。每一个存储每一个存储字节字节都有一个唯一的都有一个唯一的2020位地址,称为该存位地址,称为该存储单元的物理地址。储单元的物理地址。2020位物理地址由位物理地址由1616位段地址和位段地址和1616位位偏移地址组成。段地址是指每一段的起始地址,由于它偏移地址组成。段地址是指每一段的起始地址,由于它必须是小段的首地址(必须是小段的首地址(即即2020位地址的低位地址的低4 4位均为位均为0 0),故可以规定段地址只取段起始地址的高故可以规定段地址只取段起始地址的高1616位值。位值。
15、11现在学习的是第11页,共23页+16 位 偏 移 地 址 15 0 16 位 段 地 址 15 00000 20 位 物 理 地 址 19 0可写成:可写成:1616dd段地址段地址+偏移地址偏移地址=物理地址物理地址 物理地址的计算方法可以表示物理地址的计算方法可以表示:12现在学习的是第12页,共23页 在在IBM PC IBM PC 机中,有四个专门存放段地址的寄机中,有四个专门存放段地址的寄存器,称为存器,称为段寄存器段寄存器。它们是:。它们是:代码段代码段CSCS:代码段存放当前正在运行的程序;:代码段存放当前正在运行的程序;数据段数据段DSDS:数据段存放当前运行程序所用的数据
16、;:数据段存放当前运行程序所用的数据;堆栈段堆栈段SSSS:堆栈段定义堆栈的所在区域;:堆栈段定义堆栈的所在区域;附加段附加段ESES:附加段是附加的数据段,辅助的数据区。:附加段是附加的数据段,辅助的数据区。一般情况下,各段在存储器中的分配是由一般情况下,各段在存储器中的分配是由操作操作系统负责系统负责的。每个段区的大小根据实际需要来分配,的。每个段区的大小根据实际需要来分配,允许重叠(重叠是指小于允许重叠(重叠是指小于64K64K)。)。如果程序的某一段运行过程中会超过如果程序的某一段运行过程中会超过 64 64K K空间,空间,在程序中动态地修改段寄存器地内容,并不会因段区的划在程序中动
17、态地修改段寄存器地内容,并不会因段区的划分而限制了程序空间。分而限制了程序空间。13现在学习的是第13页,共23页保护模式存储器寻址n n8028680286以上以上CPUCPU除实模式寻址外,还采用保护模式的除实模式寻址外,还采用保护模式的寻址方式。原因:寻址方式。原因:n n1 1、实模式的、实模式的1MB1MB空间不夠用空间不夠用n n2 2、要求支持多任务处理,多任务间要求隔离、要求支持多任务处理,多任务间要求隔离n n3 3、各任务的公用部分可以共享,如操作系统。、各任务的公用部分可以共享,如操作系统。n n4 4、要求支持虚拟存储特性、要求支持虚拟存储特性虚拟存储:使用主存储器和外
18、存储器,利用操作系统虚拟存储:使用主存储器和外存储器,利用操作系统的调度管理,使的调度管理,使CPUCPU可以可以以内存的处理速度以内存的处理速度,处理,处理外存大小的存储空间外存大小的存储空间。14现在学习的是第14页,共23页保护模式和实模式的寻址差别n n1 1、实模式程序设计中,编程者只要给出、实模式程序设计中,编程者只要给出逻辑地址:(段地址:偏移逻辑地址:(段地址:偏移地址),地址),段地址放在段寄存器中,指令中给出偏移地址。机器段地址放在段寄存器中,指令中给出偏移地址。机器自动求得自动求得内存的物理地址内存的物理地址:段地址左移:段地址左移4 4位加上偏移地址。位加上偏移地址。n
19、 n2 2、保护模式:程序员也、保护模式:程序员也给出逻辑地址给出逻辑地址:(段地址:偏移地址)。:(段地址:偏移地址)。求取物理地址方法不同求取物理地址方法不同:段寄存器(:段寄存器(1616位)中存放的不是段的起始地址位)中存放的不是段的起始地址而是选择子。通过该选择子操作系统从内部的而是选择子。通过该选择子操作系统从内部的全局描述子表和局部描全局描述子表和局部描述子表述子表中取得中取得6464字节字节的的描述符,它描述符,它指出了段的基地址、段的界限、指出了段的基地址、段的界限、访问权和附加的属性等。这样,机器就可以确定内存单元所在的访问权和附加的属性等。这样,机器就可以确定内存单元所在
20、的段地址,段地址,加上逻辑地址中指定的偏移地址加上逻辑地址中指定的偏移地址,就可找到相应的内存单,就可找到相应的内存单元。元。15现在学习的是第15页,共23页n n算术逻辑部件算术逻辑部件 ALU(Arithmetic Logic Unit)ALU(Arithmetic Logic Unit)进行算术逻辑运算进行算术逻辑运算n控制逻辑控制逻辑负责对全机的控制:取指令,译码,负责对全机的控制:取指令,译码,发命令,协调各部件工作。发命令,协调各部件工作。n n工作寄存器组工作寄存器组用于存放操作数、地址、运算中间结果、用于存放操作数、地址、运算中间结果、结果等。存取速度比存储器快得多。结果等。
21、存取速度比存储器快得多。中央处理机中央处理机中央处理机中央处理机CPU的组成的组成16现在学习的是第16页,共23页 AH AL BH BL CH CL DH DLALUALU PSWPSW 控控 制制 逻逻 辑辑 SP BP SI DI IP CS DS SS ES指针及变址寄存器指针及变址寄存器段寄存器段寄存器AXAXBXBXCXCXDXDXIBM PC IBM PC IBM PC IBM PC 机的机的机的机的 CPU CPU CPU CPU 组成组成组成组成数据寄存器数据寄存器17现在学习的是第17页,共23页80X8680X86寄存器组寄存器组n n程序可见寄存器程序可见寄存器 AH
22、 AL BH BL CH CL DH DLALUALU FLAGSFLAGS SP BP SI DIIP CS DS SS ESFSGS指针及变址寄存器指针及变址寄存器段寄存器段寄存器AXAXBXBXCXCXDXDXEAXEAXEBXEBXECXECXEDXEDXESPESPEBPEBPESIESIEDIEDIEIPEIPEFLAGSEFLAGS386CP386CPU U及以及以上上18现在学习的是第18页,共23页AXAX(AccumulatorAccumulator)分别为分别为AHAH,ALAL两个两个8 8位位BXBX(BaseBase)分别为分别为BHBH,BLBL两个两个8 8位位
23、CXCX(CountCount)分别为分别为CHCH,CLCL两个两个8 8位位DXDX(DataData)分别为分别为DHDH,DLDL两个两个8 8位位四个通用寄存器,用来暂时存放计算过程中的四个通用寄存器,用来暂时存放计算过程中的操作数、结果或其他信息,可以字(操作数、结果或其他信息,可以字(1616位)的位)的形式访问,也可以字节(形式访问,也可以字节(8 8位)的形式访问。位)的形式访问。四个数据寄存器除作通用寄存器外,四个数据寄存器除作通用寄存器外,还有各自专用的功能。还有各自专用的功能。8086/8088 寄存器组寄存器组n n通用通用通用通用 数据寄存器数据寄存器数据寄存器数据
24、寄存器19现在学习的是第19页,共23页数据寄存器的专用功能n nAX:算术运算的主要寄存器,乘、除的缺省操作数,所有I/O指令的唯一数据寄存器。n nBX:常用作计算存储器地址的基址寄存器。n nCX:常用作循环中计数器。n nDX:在双字长运算中把DX、AX组合成双字长数,DX用于存放高位字。在I/O指令中,DX作为存放I/O端口的地址。20现在学习的是第20页,共23页SPSP(Stack PointerStack Pointer)称为堆栈指针寄存器,用来指称为堆栈指针寄存器,用来指示堆栈段中示堆栈段中栈顶栈顶的偏移地址。的偏移地址。BPBP(Base PointerBase Point
25、er)称为基址指针寄存器,与称为基址指针寄存器,与SSSS寄存器寄存器配合,用来确定配合,用来确定堆栈段中堆栈段中某一存储单元的地址。某一存储单元的地址。SISI(Source IndexSource Index)源变址寄存器源变址寄存器DIDI(Destination IndexDestination Index)目的变址寄存器目的变址寄存器SISI、DIDI一般与一般与DSDS联用联用,它们都有自动增量和自动,它们都有自动增量和自动减量的功能。减量的功能。指针及变址寄存器指针及变址寄存器n nSPSP、BPBP、SISI、DIDI四个四个1616位寄存器,它们只能以字(位寄存器,它们只能以
26、字(1616位)为单位使用。位)为单位使用。提供偏移地址提供偏移地址。21现在学习的是第21页,共23页 控制寄存器,控制寄存器,控制寄存器,控制寄存器,n nIPIP(Instruction PointerInstruction Pointer)为指令指针寄存器,用来为指令指针寄存器,用来存放代码的偏移地址,它与存放代码的偏移地址,它与CSCS寄存器寄存器联用确定联用确定下一条指令下一条指令的物理地址。的物理地址。IPIP寄存器可以控制程序的执行流程。寄存器可以控制程序的执行流程。n nPSWPSW(Program Status WordProgram Status Word)程序状态字寄存
27、器程序状态字寄存器 由条由条件码标志(件码标志(FlagFlag)和控制标志构成。和控制标志构成。OFOF DFDFIFIFTFTF SFSF ZFZFAFAFPFPFCFCF段寄存器段寄存器段寄存器段寄存器1616位位位位n n包括CS、DS、SS和ES四个段寄存器,22现在学习的是第22页,共23页n nOFOF(Overflow FlagOverflow Flag)溢出标志,在运算过程中,溢出标志,在运算过程中,如操作数超出了机器能表示的范围则称为溢出,如操作数超出了机器能表示的范围则称为溢出,此时此时OFOF位置位置1 1,否则置,否则置0 0。n nSFSF(Sign FlagSign Flag)符号标志,记录运算结果的符号,符号标志,记录运算结果的符号,结果为负时置结果为负时置1 1,正则置,正则置0 0。n nCFCF(Carry FlagCarry Flag)进位标志,记录运算时从最高有进位标志,记录运算时从最高有效位产效位产生的进位值。如执行加法指令时,最高有生的进位值。如执行加法指令时,最高有效位有进位时效位有进位时置置1 1,否则置,否则置0 0。或表示减法时的。或表示减法时的 借位情况借位情况条件码标志:条件码标志:n n标志位标志位:23现在学习的是第23页,共23页
限制150内