分享
分享赚钱 收藏 举报 版权申诉 / 109

类型第二章微机中的微处理器.ppt

  • 上传人:yjrm16270
  • 文档编号:7255314
  • 上传时间:2019-05-10
  • 格式:PPT
  • 页数:109
  • 大小:1.22MB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    第二章微机中的微处理器.ppt
    资源描述:

    1、2010.2.25,1,第二章 微机中的微处理器,引言 微处理器是组成微计算机系统的核心部件。本章重点讲解8086微处理器,因为它体现了简单微处理器的一般原理,也是学习汇编语言程序设计的基础。 主要讨论:微处理器的内部结构、与之配合的存储器组织、I/O组织和寻址方式。,2010.2.25,2,第二章 微机中的微处理器,2.1 8086微处理器的内部结构 2.2 8086的寄存器结构 2.3 8086的存储器组织 2.38086的I/O组织 2.5 8086的寻址方式,2010.2.25,3,微处理器的功能:MPU是组成计算机系统的核心部件,它具有运算和控制的功能 。具体来讲,它有以下基本功能,

    2、支持功能完善的指令系统,进行各种算术逻辑运算,通过程序完成复杂的科学计算。 支持各种结构的程序的执行,如程序的分支、循环、嵌套、子程序的调用和返回、中断服务程序等。 控制与存储器、外部设备等相连,组成完整的微机系统。,2.1 微处理器的内部结构,2.1 微处理器的一般结构,2010.2.25,4,微处理器的功能:具体来讲,它有以下基本功能, 进行算术运算和逻辑 运算; 接收存储器和I/O接口送来的数据和发送数据给存储器和I/O接口; 暂存少量数据; 对指令进行寄存、译码并执行指令所规定的操作; 提供整个系统所需的定时和控制信号; 响应I/O设备发出的中断请求。,2.1 微处理器的内部结构,2.

    3、1 微处理器的一般结构,2010.2.25,5,微处理器的功能:,从程序设计的角度考虑,CPU必须便于处理: 赋值和算术表达式 无条件转移 条件转移以及关系和逻辑表达式 循环 数组和其它数据结构 子程序 输入/输出,2.1 微处理器的内部结构,2010.2.25,6,CPU的实际工作就是执行每一条指令。 执行每一条指令都可分为三个阶段,即:1.取指令 2.分析指令 3.执行指令,2.1 微处理器的内部结构,取指令:从存储器中读出现行指令,把指令送入CPU中。 分析指令:对指令进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。 执行指令:进行相应的操作。,2010.2.25,7,3.

    4、1.1 微处理器的内部结构,串行处理,指令的执行过程: 取指令取操作数(如需要)执行指令写入存储器(如需要)。,取指令1,译码1,取数据1,执行1,存结果1,取指令2,译码2,执行2,取指令1,译码1,取数据1,执行1,存结果1,取指令2,译码2,执行2,取指令3,译码3,执行3,存结果3,并行处理,2010.2.25,8,2.1 8086微处理器的功能结构,2010.2.25,9,总线接口单元(BIU),总线接口单元由下列各部分组成: (1)4个段地址寄存器; CS16位的代码段寄存器; DS16位的数据段寄存器; ES16位的扩展段寄存器; SS16位的堆栈段寄存器; (2)16位的指令指

    5、针寄存器IP; (3)6字节的指令队列寄存器; (4)20位的地址加法器; (5)完成与EU通讯的内部寄存器; (6)总线控制逻辑。,取指令时:从存储器指定地址取出指令送入指令队列排队; 执行指令时:根据EU命令对指定存储器单元或者I/O端口存取数据。,2010.2.25,10,执行单元(EU),执行单元由下列各部分组成:(1)算术逻辑运算单元(ALU); (2)标志寄存器(FR): (3)通用寄存器组-AX,BX,CX,DX,SP,BP,DI,SI; (4)EU控制器; (5)暂存器。,工作:执行指令,进行全部的算术逻辑运算、完成偏移地址的计算,向BIU提供指令执行结果的数据和偏移地址,并对

    6、通用寄存器和标志寄存器进行管理。,2010.2.25,11,2.1 8086的内部结构,指令和程序执行过程如下图:,取指令1,执行1,取指令2,取数据2,执行2,取指令3,执行3,BIU,EU,2010.2.25,12,2.2 8086的寄存器结构,2010.2.25,13,2.2.1 通用寄存器组,4个16位数据寄存器(存在于 EU中):,包括AX,BX ,CX,DX。 主要功能: (见P14表2.1)1.存放数据2.存放地址,每一个寄存器又可分为两个8位的数据寄存器:AX-AH AL BX-BH BLCX-CH CL DX-DH DL16位数据寄存器可存放数据和地址,而8位寄存器只能存放数

    7、据,2010.2.25,14,2.2.1 数据寄存器,AX累加器,使用频度最高,用于算术、逻辑运算,以及与外设传送信息等;,累加器一般用来存放参加运算的数据和结果。尤其在乘、除法运算、I/O操作中有不可替代的作用。乘法运算:存放结果除法运算:存放商I/O操作:AX(或AL)与I/O端口进行数据通信。,2010.2.25,15,2.2.1 数据寄存器,BX基址寄存器,基址寄存器可作数据寄存器还可放内存的逻辑偏移地址,而AX,CX,DX则不能。如: MOV AX, BX但是,如果写成:MOV AX, CX 是错误的,2010.2.25,16,2.2.1 数据寄存器,CX计数寄存器,计数寄存器做数据

    8、寄存器还可以在循环操作中和移位操作中做计数器用。,如: MOV CX, 15(循环程序中);给cx赋值为15.循环操作15次,2010.2.25,17,2.2.1 数据寄存器,DX,DX做通用数据寄存器还在乘、除法运算、带符号数的扩展指令中有特殊用途。,2010.2.25,18,2.2.1 通用寄存器组,地址指针和变址寄存器:,变址寄存器,用于在某些间接寻址方式中存放段内 偏移地址的全部或一部分: SI源变址寄存器 DI目的变址寄存器 串操作类指令中,SI和DI具有特别的功能,指针寄存器用于寻址内存堆栈内的数据: SP堆栈指针,指示栈顶的偏移地址。SP不能再用于其他目的,具有专用目的。 BP基

    9、址指针,用于在某些间接寻址方式中存放段内偏移地址的一部分。SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址。,2010.2.25,19,BIU设有4个16位段寄存器 (可见P18的2.2.3内容),2.2.2 段寄存器组,段寄存器用来存放段地址,cpu可通过4个段寄存器访问存储器中4个不同的段(每段64k)。,CS代码段寄存器,存放代码段的段地址SS堆栈段寄存器,存放堆栈段的段地址DS数据段寄存器,存放数据段的段地址ES附加段寄存器,存放附加段的段地址,2010.2.25,20,2.2.3 控制寄存器组,指令指针寄存器IP:保存下一条要执行的指令的偏移地址,它与代码段寄存器C

    10、S联用,确定下一条指令的物理地址。计算机通过 CS : IP 寄存器来控制指令序列的执行流程。IP寄存器是一个专用寄存器。,2010.2.25,21,补充内容,无符号数和有符号数原码、反吗、和补码,2010.2.25,22,有符号数的表示方法,二进制数分为:无符号数有符号数,2010.2.25,23,有符号数的表示方法,二进制数分为:无符号数和有符号数,无符号数 :所有的二进制数位均为数值位。例如:1000 0111 = 135,有符号数 :最高位为符号位,后面的所有位为数值位。例如:1000 0111 = -7,2010.2.25,24,有符号数的表示方法,无符号数 :所有的二进制数位均为数

    11、值位。例如:1000 0111 = 135,有符号数 :最高位为符号位,后面的所有位为数值位。例如:1000 0111 = -7,2010.2.25,25,有符号数的表示方法,有符号数:,+ : 用0表示(正数)- : 用1表示(负数),用0表示“+”,用1表示“-”。这样的表示方法就是符号数字化。即用数字来表示正负数的符号。,2010.2.25,26,有符号数的表示方法,8位无符号数范围:所有的二进制数位均为数值位。0 X 2550000 0000 到 1111 1111,8位有符号数的范围 :最高位为符号位,后面的所有位为数值位。-128 X 1271000 0000 到 0111 111

    12、1,2010.2.25,27,有符号数的表示方法,有符号数的表示方法:,原码反码 补码,2010.2.25,28,有符号数的表示方法,原码,正数的符号用“0”表示,负数的符号用“1”表示,绝对 值的编码规则与无符号数编码规则相同。这样的表示方法称 为原码表示法。一个数X的原码记作x原,例如:用8位二进制表示:19的原码是: 19原= 0001 0011 (最高位是符号位)-19的原码是: -19原= 1001 0011,2010.2.25,29,0 Xn-2Xn-3X1X0 x 0 x原 = 1 Xn-2Xn-3X1X0 x 0,1.原码,+0原 = 0000 0000 -0原 = 1000

    13、0000 +1原 = 0000 0001 -1原 = 1000 0001 +127原 = 0111 1111= 28-1-1 -127原 =1111 1111= -(28-1-1),有符号数的表示方法,2010.2.25,30,2.反码,正数的反码:与原码相同; 负数的反码:原码的符号位不变,其它各位求反。,例如:用8位二进制表示:19的反码是: 19原= 0001 0011, 19反= 0110 1100-19的反码是: -19原= 1001 0011, -19反= 1110 1100,2010.2.25,31,2.反码,+0反 = 0000 0000 -0反 = 1111 1111 +1反

    14、 = 0000 0001 -1反 = 1111 1110 +127反 = 0111 1111 -127反 = 1000 0000,2010.2.25,32,3.补码,正数的补码:与原码相同; 负数的补码:原码的符号位不变,其它各位求反加1。,例如:用8位二进制表示:19的反码是: 19原= 0001 0011, 19反= 0001 0011 19补= 0001 0011-19的反码是: -19原= 1001 0011, -19反= 1110 1100-19补= 1110 1101,2010.2.25,33,3.补码,+0补 = 0000 0000 -0补 = 28 |-0| = 0000 00

    15、00 +1补 = 0000 0001 -1补 = 28 |-1| = 1111 1111 +127补 = 0111 1111 -127补 = 28 |-127| = 1000 0001,2010.2.25,34,有符号数的表示方法,一个有符号数X,X 0x原= x反= x补,X 0x反:x原符号位不变,其它各位求反x补= x反+1,练习,2010.2.25,35,3.补码,例: 73 -2 = 73+(-2)=71,0 1 0 0 1 0 1 1 (73) + 1 1 1 1 1 1 1 0 (-2)1 0 1 0 0 0 1 1 1 (71),在计算机中,加减法是用补码来运算的。,补码加法,

    16、如果符号位有进位,必须舍弃,2010.2.25,36,2.2.3 控制寄存器组,标志寄存器(FLAG):状态标志记录程序运行结果的状态信息,许多指令的执行都将相应地设置它。CF ZF SF PF OF AF控制标志可由程序根据需要用指令设置,用于控制处理器执行指令的方式。DF IF TF,2010.2.25,37,2.2.3 控制寄存器组,标志寄存器(FLAG),2010.2.25,38,进位标志CF:当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF = 1;否则CF = 0。 (无符号数),标志寄存器(FLAG),0011 10100111 11001011 011

    17、0,+,1010 10100111 11001 0010 0110,+,CF=0,CF=1,3AH + 7CHB6H,AAH + 7CH(1)26H,2010.2.25,39,PF:奇偶标志位,如果操作结果的低8位含有偶数个1,则PF= 1;否则CF = 0。,标志寄存器(FLAG),0100 10000110 00101010 1010,+,0010 0011 0100 01000101 0010 0001 10010111 0101 0101 1101,+,PF=1,PF=0,48H + 62HAAH,2344H + 5219H755DH,2010.2.25,40,AF:辅助进位标志,如果

    18、在加法时D3 有进位或者减法时D3有借位,则AF=1,否则AF=0。,标志寄存器(FLAG),0100 10000110 00101010 1010,+,0100 11000001 10010110 0101,+,AF=0,AF=1,48H + 62HAAH,4CH + 19H65H,2010.2.25,41,ZF:零标志位,如果运算结果各位都是零,则ZF=1,否则ZF=0。,标志寄存器(FLAG),0100 10000110 00101010 1010,+,0001 10010001 10010000 0000,-,ZF=0,ZF=1,48H + 62HAAH,19H -19H00H,201

    19、0.2.25,42,SF:符号标志位,它总是和结果的最高位相同。(字节操作时是D7,字操作时是D15),标志寄存器(FLAG),0100 10000110 00101010 1010,+,SF=1,48H + 62HAAH,0010 0011 0100 01000101 0010 0001 10010111 0101 0101 1101,+,SF=0,2344H + 5219H755DH,2010.2.25,43,溢出标志OF:若算术运算的结果有溢出,则OF=1;否则 OF0 (有符号数),标志寄存器(FLAG),例如:0011 10100111 11001011 01103AH + 7CHB

    20、6H, 产生溢出:OF = 1,+,OF=1,1010 10100111 11001 0010 0110AAH + 7CH(1)26H, 没有溢出:OF = 0,+,OF=0,2010.2.25,44,标志寄存器(FLAG),问题:什么是溢出?溢出和进位有什么区别?如何判断是否溢出?,2010.2.25,45,处理器内部以补码表示有符号数。8个二进制位能够表达的整数范围是:-128 +127 16位表达的范围是: -32768 +32767,标志寄存器(FLAG),什么是溢出?,如果运算结果超出了可表达的范围,就是产生了溢出。,有溢出,说明有符号数的运算结果不正确。,2010.2.25,46,

    21、两个正数相加结果变成了负数?,溢出:运算结果,超出了8位有符号数所能表示的范围。,补码运算发生溢出情况: 1.同号数相加,可能溢出; 2.异号数相减,可能溢出。,2010.2.25,47,判断运算结果是否溢出有一个简单的规则:最高位,溢出的判断,标志寄存器(FLAG),1+ 1 0,0+ 0 1,1- 0 0,0- 1 1,2010.2.25,48,溢出标志OF和进位标志CF是两个意义不同的标志。进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确;溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确。,标志寄存器(FLAG),溢出和进位有什么区别?,2010.2.25,49,例

    22、1:3AH + 7CHB6H,溢出和进位对比,标志寄存器(FLAG),0011 1010 3AH0111 1100 7CH1011 0110 B6H,+,B6H=128 CF=0,无符号数运算:58124182,范围内0255,无进位,有符号数运算: 58124182 ,范围外-128127,有溢出,0011 1010 3AH0111 1100 7CH1011 0110 B6H,+,B6H补=-74 OF=1,有符号数最高位是符号位,2010.2.25,50,溢出和进位对比,标志寄存器(FLAG),例2:AAH + 7CH(1)26H,1010 1010 AAH0111 1100 7CH1 0

    23、010 0110 26H,+,CF=1, (1)26H=294,无符号数运算:170124294,范围外0255 ,有进位,有符号数运算:8612428 ,范围内-128127,无溢出,OF=0,1010 1010 AAH0111 1100 7CH1 0010 0110 26H,+,训练,2010.2.25,51,处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进位标志CF;同时,根据是否超出有符号数的范围设置溢出标志OF。,如何运用溢出和进位,标志寄存器(FLAG),应该利用哪个标志,则由程序员来决定。无符号数运算,影响进位;有符号数运算,则影响溢出位。,2010.2.25,5

    24、2,可用指令设置。字符串操作时,受它的控制。当DF=0时,执行串操作指令,变址寄存器自动递增;当DF=1时,则变址寄存器地址自动递减。即该位可控制变址寄存器的地址朝增大的方向或减小的方向改变。,DF:方向标志位,标志寄存器(FLAG),2010.2.25,53,可用指令设置当IF=1时,CPU可响应可屏蔽中断请求;当IF=0时,CPU不响应可屏蔽中断请求。,IF:中断允许标志,标志寄存器(FLAG),2010.2.25,54,若TF=1,则CPU处于单步执行指令工作方式。每执行一条指令就会自动产生一次类型1的内部中断。 在调试程序的过程中,每执行一条指令,就利用这种中断,来显示所有寄存器的当前

    25、值和将要执行的下一条指令。 一般情况下,TF=0。 只有在调试程序时,可能会用到单步执行时,才设置TF=1。,TF:陷阱标志位,标志寄存器(FLAG),2010.2.25,55,计数制:指用一组固定的数字符号和统一的规则来表示数的方法。,基数:各种进制中数字符号的个数。,权:在位置记数法中,对每一个数位赋以不同的位值。,2.3 8086的存储器组织,2010.2.25,56,各种数制,2.3 8086的存储器组织,2010.2.25,57,微计算机的硬件结构(冯.诺依曼结构)从功能或逻辑的角度,微型计算机的硬件由运算器、控制器、存储器、输入设备、输出设备五大部分组成。,运算器,控制器,MPU,

    26、存储器,输出设备,I/O接口,输入设备,A.BUS,D.BUS,C.BUS,2.3 8086的存储器组织,2010.2.25,58,2.3 8086的存储器组织,2.3.1 存储器地址空间和数据存储格式,* *B,00000H,00001H,00002H,00003H,FFFFDH,FFFFEH,FFFFFH,十六进制地址,存储器,存储器的地址,8086的存储器是以字节(8位)为单位组织的。 8086cpu具有20条地址总线,可寻址的存储器地址空间容量为220B,地址(1MB)。,20条地址总线, 16条数据总线,2010.2.25,59,2.3 8086的存储器组织,2.3.1 存储器地址空

    27、间和数据存储格式,* *B,00000H,00001H,00002H,00003H,FFFFDH,FFFFEH,FFFFFH,十六进制地址,存储器,存储器的地址,每个存储单元都有一个唯一的地址编号存储器地址其范围是 0 220-1, ( 用十六进制表示为00000H FFFFFH ),每个存储单元存放一个字节的内容(* *B, 如1000 1110B),2010.2.25,60,2.3 8086的存储器组织,2.3.1 存储器地址空间和数据存储格式,两个连续的字节,为一个字:低地址对应低字节,高地址对应高字节(小端方式)。 字的地址指低字节的地址。,(00004H)=1122H (00001H

    28、)=4455H (00003H)=2233H,23H,00000H,55H,00001H,44H,00002H,33H,00003H,22H,00004H,0001 0001B,00005H,2010.2.25,61,2.3 8086的存储器组织,2.3.1 存储器地址空间和数据存储格式,字的地址为偶地址,称字的存储是对准的,访问时只需一个总线周期。字的地址为奇地址,称字的存储是未对准的,访问时要两个总线周期(CPU自动完成)。,2010.2.25,62,2.3 8086的存储器组织,2.3.2 存储器分段管理和物理地址的形成,8086CPU有20条地址线, 物理地址范围从00000HFFFF

    29、FH。 最大可寻址空间为2201MB,,* *B,00000H,00001H,00002H,00003H,FFFFDH,FFFFEH,FFFFFH,十六进制地址,存储器,1M个内存单元,2010.2.25,63,2.3 8086的存储器组织,2.3.2 存储器分段管理和物理地址的形成,提供偏移地址或偏移地址的一部分的寄存器BX、IP、SP、BP、SI和DI及ALU都是 16位,0000HFFFFH, 其寻址范围是64KB。,* *B,0000H,0001H,0002H,0003H,FFFDH,FFFEH,FFFFH,十六进制地址,存储器,64K个内存单元,8086CPU采用地址分段方法,将寻址

    30、范围扩大到1MB。,2010.2.25,64,2.3 8086的存储器组织,2.3.2 存储器分段管理和物理地址的形成,8086CPU将1MB空间分成许多逻辑段(Segment),每个段最大限制为64KB,段地址的低4位为0000B,即*0H。,00000H,00001H,00002H,00003H,0FFFDH,0FFFEH,0FFFFH,一个逻辑段 ,共64K个单元,00010H,00011H,00012H,00013H,1000DH,1000EH,1000FH,下一个逻辑段 ,共64K个单元,2010.2.25,65,2.3 8086的存储器组织,00000H,00010H,00020H

    31、,0FFFFH,存储器,1000FH,1001FH,段0,段1,段2,2010.2.25,66,2.3 8086的存储器组织,2.3.2 存储器分段管理和物理地址的形成,8086对逻辑段的要求是:段地址低4位均为0,每段最大不超过64KB。每个段不要求必须是64KB,段与段可以重叠。,1MB空间最多能分成多少个段?,每隔64K个存储单元开始一个段,所以1MB最少有:22.21616 个段,每隔16个存储单元就可以开始一个段,所以1MB最多有:22.1621664K 个段,1MB空间最少能分成多少个段?,2010.2.25,67,基本概念 物理地址 起始地址 段地址 偏移地址 逻辑地址,2.3.

    32、2 存储器分段管理和物理地址的形成,2.3 8086的存储器组织,2010.2.25,68,2.3.2 存储器分段管理和物理地址的形成,2.3 8086的存储器组织,00000H,00001H,00002H,00003H,FFFFDH,FFFFEH,FFFFFH,十六进制地址,存储器,物理地址 存储器有1M个内存单元,每个内存单元都有自己的地址编码,这个编码在所有的内存单元中是唯一的,这些地址编码就是存储单元的物理地址。其范围是00000HFFFFFH。 物理地址:存储单元的实际地址编码。,2010.2.25,69,2.3.2 存储器分段管理和物理地址的形成,2.3 8086的存储器组织,00

    33、000H,00001H,00002H,00003H,FFFFDH,FFFFEH,FFFFFH,十六进制地址,存储器,起始地址 在存储器中,每个逻辑段的首地址就是起始地址,起始地址是个物理地址,20位。如右图: 起始地址:00000H,2010.2.25,70,2.3.2 存储器分段管理和物理地址的形成,2.3 8086的存储器组织,段地址 一个段的起始地址(物理地址)的高16位就是该段的段地址。,00010H,00011H,00012H,00013H,1000DH,1000EH,1000FH,一个逻辑段 ,共64K个单元,如右图:此逻辑段 起始地址:00010H 段地址: 0001H 段地址由

    34、段寄存器 (CS,DS,SS,ES)提供,2010.2.25,71,2.3.2 存储器分段管理和物理地址的形成,2.3 8086的存储器组织,偏移地址 在一个段内,相对于段起始地址的偏移量,就是段内偏移地址。 其范围:0000HFFFFH,都是16位。,00010H,00011H,00012H,00013H,1000DH,1000EH,1000FH,物理地址,偏移地址,0000H,0001H,0002H,0003H,FFFDH,FFFEH,FFFFH,如右图(00010H1000FH) 红色内存单元偏移地址:0000H 黄色内存单元偏移地址:0001H 最后一个内存单元偏移地址:FFFFH,2

    35、010.2.25,72,2.3.2 存储器分段管理和物理地址的形成,2.3 8086的存储器组织,00010H,00011H,00012H,00013H,1000DH,1000EH,1000FH,物理地址,偏移地址,0000H,0001H,0002H,0003H,FFFDH,FFFEH,FFFFH,逻辑地址 其格式为 段地址:偏移地址。,如右图: 黄色内存单元的逻辑地址为:0001:0003段地址 偏移地址,2010.2.25,73,2.3 8086的存储器组织,2.3.2 存储器分段管理和物理地址的形成,对应每个物理存储单元都有一个唯一的20位编号,即物理地址。00000HFFFFFH,物理

    36、地址的形成:,段地址*16偏移地址20位物理地址,第四个内存单元的物理地址:(逻辑地址为0001:0003)物理地址=0001H*10H+0003H=00013H,2010.2.25,74,物理地址的形成过程,2010.2.25,75,2.3 8086的存储器组织,2.3.3 信息的分段存储与段寄存器的关系,存储器中的信息可分为:程序代码数据计算机的状态,2010.2.25,76,2.3 8086的存储器组织,2.3.3 信息的分段存储与段寄存器的关系,存储器可分为:程序区、数据区、堆栈区。程序区:存储程序的指令代码数据区:存储原始数据、中间数据和最后结果堆栈区:存储需要压入堆栈的数据或状态信

    37、息。,2010.2.25,77,2.3 8086的存储器组织,2.3.3 信息的分段存储与段寄存器的关系,段寄存器的分工:代码段寄存器CS:划定并控制着程序区。数据段寄存器DS或附加段寄存器ES:控制着数据区。堆栈段寄存器SS:对应着堆栈存储区。,2010.2.25,78,2.3 8086的存储器组织,2.3.3 信息的分段存储与段寄存器的关系,一个完整的程序分为:代码段、数据段、堆栈段、附加段,当调用程序时,就把:代码段调入程序区,数据段和附加段调入数据区,堆栈段调入堆栈区。,代码段:存放程序的指令序列数据段:存放当前运行程序所用的数据堆栈段:存放需要压栈的信息附加段:附加的数据段,如需要则

    38、开辟附加段,1、代码段、数据段、堆栈段和附加段对应的是程序; 2、程序区、数据区、和堆栈区对应的是存储区; 3、段寄存器:保存段的段地址,2010.2.25,79,2.3 8086的存储器组织,2.3.3 信息的分段存储与段寄存器的关系,data SEGMENT ;数据段first DB 12h ;调入数据区 data ENDSstack1 SEGMENT stack ; 堆栈段DW 30 DUP(0) ;调入堆栈区 stack1 ENDScode SEGMENT ;代码段ASSUME CS:code,DS:data,SS:stack1start: MOV AX,data MOV DS,AX,

    39、. .MOV AH,4chINT 21h code ENDSEND start ;调入代码区,2010.2.25,80,2.3 8086的存储器组织,2.3.3 信息的分段存储与段寄存器的关系,段寄存器,CS:存放代码段的段地址DS:存放数据段的段地址SS:存放堆栈段的段地址ES:存放附加段的段地址,2010.2.25,81,程序员如何分配各个逻辑段?,2.3 8086的存储器组织,2.3.3 信息的分段存储与段寄存器的关系,程序的指令序列必须安排在代码段; 程序使用的堆栈一定在堆栈段; 程序中的数据默认是安排在数据段,也经常安排在附加段,尤其是串操作的目的区必须是附加段。,数据的存放比较灵活

    40、,实际上可以存放在任何一种逻辑段中。,2010.2.25,82,2.3 8086的存储器组织,下表列出了各类型访问存储器时使用的段寄存器和段内偏移地址的来源。,2010.2.25,83,各个逻辑段独立示意图,如右图:当前段可容纳64KB代码,64KB堆栈,128KB数据,即共256KB。,2010.2.25,84,各个逻辑段重叠示意图,段可以部分重叠,若不用附加段,则ES和DS重合。,2010.2.25,85,微计算机的硬件结构(冯.诺依曼结构)从功能或逻辑的角度,微型计算机的硬件由运算器、控制器、存储器、输入设备、输出设备五大部分组成。,运算器,控制器,MPU,存储器,输出设备,I/O接口,

    41、输入设备,A.BUS,D.BUS,C.BUS,2.5 8086的I/O组织,2010.2.25,86,2.5 8086的I/O组织,I/O接口与CPU之间的通信是利用称为I/O端口的寄存器来完成的。,I/O端口,I/O接口1,I/O端口,I/O接口2,I/O端口,I/O端口,I/O端口,I/O端口,每个端口都是一个8位的寄存器(相当于内存单元)。系统为每个端口分配一个地址,各个端口有唯一的I/O地址与之对应,是单独编址的。,2010.2.25,87,2.5 8086的I/O组织,任何两个编号相邻的8位I/O端口可以组成一个16位I/O端口,类似于存储器的字。8086CPU地址总线的低16位用来

    42、对8位I/O端口寻址,I/O地址空间为65535,即可访问65535个8位的I/O端口,寻址范围是064K。I/O地址线和存储器地址线是共用的,但利用控制总线中的一些控制信号可以区分是I/O存取还是存储器存取。,2010.2.25,88,2.6 8086的寻址方式,指令由操作码和操作数两部分组成:,操作码:说明计算机要执行哪种操作,如传送、运算、移位、跳转等操作,它是指令中不可缺少的组成部分。,操作数:指令执行的参与者,即各种操作的对象。 有些指令不需要操作数,通常的指令都有一个或两个操作数,也有个别指令有3个甚至4个操作数。,2010.2.25,89,2.6 8086的寻址方式,MOV de

    43、st , src ;destsrc ;MOV指令的功能是将源操作数src;传送至目的操作数dest,MOV AL, 05H ;AL05H MOV BX, AX ;BXAX MOV AX, SI ;AXDS:SI MOV AX, BP+06H ;AXSS:BP+06H MOV AX, BX+SI ;AXDS:BX+SI,指令的助记符格式:操作码 操作数1, 操作数2 ;注释,2010.2.25,90,2.6 8086的寻址方式,操作数一般存在的地方:1. 指令中 ;MOV AX, 0012H2. cpu内部寄存器中 ; MOV BX, AX2. 存储器中 ; MOV AX, 0050H,8086

    44、的寻址方式有:立即数寻址方式寄存器寻址方式存储器寻址方式,寻址:寻找操作数的地址寻址方式:寻找操作数地址的方法,2010.2.25,91,2.6 8086的寻址方式,具体的寻址方式:1. 立即数寻址2. 寄存器寻址2. 直接寻址4. 寄存器间接寻址5. 寄存器相对寻址6. 基址变址寻址7. 基址变址且相对寻址,2010.2.25,92,1 立即数寻址,指令中的操作数直接存放在指令中,紧跟在操作码之后(操作数作为指令的一部分存放在操作码之后的主存单元中)。,可以是8位数i8(00HFFH), 可以是16位数i16(0000HFFFFH)。,立即数寻址方式常用来给寄存器赋值。 MOV AL, 05

    45、H ;AL05H MOV AX, 0102H ;AX0102H,2010.2.25,93,2 寄存器寻址,MOV AX, 1234H ;AX1234H MOV BX, AX ;BXAX,操作数存放在CPU的内部寄存器中,8位寄存器R8: AH/AL/BH/BL/CH/CL/DH/DL 16位寄存器R16: AX/BX/CX/DX/SI/DI/BP/SP 4个段寄存器SEG:CS/DS/SS/ES,2010.2.25,94,3 存储器寻址,存储器寻址:操作数在存储器中。指令中给出操作数的主存地址信息(偏移地址,称之为有效地址EA),而段地址在默认的段寄存器中或用段超越前缀指定的段寄存器中。,首先

    46、获取操作数的偏移地址EA获取段地址通过计算,来获取操作数的物理地址物理地址=段地址*16 + EA,2010.2.25,95,存储器寻址,3 直接寻址方式,有效地址在指令中直接给出,默认的段地址在DS段寄存器。,MOV AX, 2000H ;AXDS:2000H;EA=2000H,假如(DS)=3200H, EA=2000H 操作数的物理地址=3200*10H+2000H=34000H,2010.2.25,96,存储器寻址,4 寄存器间接寻址方式,有效地址EA存放在基址寄存器BX, 或变址寄存器SI、DI。段地址对应:BX/SI/DI寄存器默认是DS,MOV AX, BX ;AXDS:BX;

    47、EA=(BX),假如(DS)=3200H, (BX)=2000H 那么: EA= (BX)= 2000H 操作数的物理地址=3200*10H+2000H=34000H,2010.2.25,97,存储器寻址,5 寄存器相对寻址方式,有效地址是寄存器内容与有符号8位或16位位移量之和,寄存器可以是BX或SI、DI。有效地址(BX)/(SI)/(DI)8/16位位移量段地址对应BX/SI/DI寄存器默认是DS,2010.2.25,98,存储器寻址,寄存器相对寻址方式,MOV AX, DI+06H ;AXDS:DI+06H; EA = (DI) + 06H,假如(DS)=3200H, (DI)=2000H 那么: EA= (DI)+06H= 2006H 操作数的物理地址=3200*10H+2006H=34006H,2010.2.25,99,存储器寻址,

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第二章微机中的微处理器.ppt
    链接地址:https://www.docduoduo.com/p-7255314.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开