8086微处理器微处理器的基本结构课件.ppt
《8086微处理器微处理器的基本结构课件.ppt》由会员分享,可在线阅读,更多相关《8086微处理器微处理器的基本结构课件.ppt(108页珍藏版)》请在三一办公上搜索。
1、1,第二章 8086微处理器第一节 微处理器的基本结构第二节 8086微处理器,第一节、微型计算机结构 CPU+适当容量M+输入输出接口+设备+软件=MICOR _ COMPUTER SYSTEM1、微型计算机外部结构2、微型计算机内部结构,1、微型计算机外部结构微型计算机外部结构如下图所示(三总线结构),微型计算机外部结构,由上图看出,微机与外部交换信息通过总线控制。采用三总线结构AB、DB、CB.三组总线:地址总线 AB(ADDRESS BUS):通常16位,单向,A15A0,可寻址216=64KB内存单元。A7A0,可寻址 28=256外设接口。数据总线 DB(DATA BUS):通常8
2、位,D7D0,双向,实现CPU 与I/O 传送。控制总线 CB(CONTROL BUS):传送控制信号。,2、微型计算机内部结构 由于CPU受成品率,成本,集成在单片上等原因。严格规定引脚数就限制了总线的数量。外部采用三总线结构AB、DB、CB。内部采用单总线,即内部所有单元电路都挂在内部总线上,分时使用总线。通常微处理机内部结构及外部连接方法如下图所示。,CPU外部,微处理器内部主要由四部分组成:(1)内部寄存器 用来寄存参与运算的数据,经常可以连成寄存器对(16位)用来存放操作数地址。16位专用寄存器 如:程序计数器PC,堆栈指针SP(2)累加器和算术逻辑单元 对数据进行算术运算、逻辑运算
3、场所,运算结果 标志触发器记忆 或送某个寄存器等等。,(3)指令寄存器、指令译码器、定时及各种控制信号产生电路 把用户程序中的指令一条条译出来,然后以一定时序发出相应的控制信号。(4)内部采用单总线结构在任何时候只有一个内部设备能使用内部总线,各设备之间必须分时使用内部总线,因而速度受到影响。只有要求速度高的位片机(通常用双级型集成电路)中,采用内部多总线结构。,9,第二节、8086/8088CPU一、特点 Intel 系列 的16位CPU双列直插式封装40根引脚工作频率为4.77MHz 10MHz工作电源+5V,10,8086:对外有16根数据线,20根地址线可寻址的内存单元数 220=1M
4、内存地址范围00000 FFFFFH 8088:内部寄存器、运算部件及内部操作均按16位设计,除对外数据线为8根外,其余与8086基本相同。为与当时已有的8 位外设接口芯片兼容。IBM PC、IBP PC/XT 采用8088CPU,8086CPU结构特点小结:(1)内部结构 是16位的(内部寄存器,内部运算部件,内部操作按 16位设计);(2)外部数据总线16条,能处理16位数据,也能处理8位数据;(具有16位运算指令,包括*、/指令)(3)能执行整套8086的指令(4)20条地址总线,直接寻址能力1M字节;(5)40条引线封装;(6)单相时钟;(7)电源为5V。8086与8088的主要区别在
5、于8086的外部数据总线16位。,12,二、8086/8088的编程结构 编程结构:指从程序员和使用者的角度看到的结构。与芯片内部的物理结构和实际布局有区别。,某CPU芯片内部实物图,13,1.总线接口部件BIU(Bus Interface Unit)运输部门2.执行部件EU(Execute Unit)加工部门3.工作原理,8086 编程结构:,14,1.总线接口部件 BIU 构成部分 4个16位段寄存器:CS,DS,ES,SS 16位IP指令指针寄存器 20位 地址加法器 6字节的指令队列(8088的指令队列为4字节)总线控制电路(包括三组总线):处理器与外界总线联系的转接电路。,主要功能
6、负责与存储器、I/O接口传递数据 具体完成:(1)从内存取指令,送到指令队列;(2)配合执行部件从指定的内存单元 或I/O端口取数据;(3)将执行部件的操作结果送到 指定的内存单元或I/O端口。,三点说明:指令队列8086 的指令队列为6个字节,8088 的指令队列为4个字节。BIU 具有预取指令功能,是一种先进先出(FIFO)的数据结构。不论是8086还是8088都会在执行指令的同时从内存中取下一条或几条指令,取来的指令放在指令队列中.指令执行顺序 顺序指令执行:指令队列存放紧接在执行指令后面的那一条指令。执行转移指令:BIU 清除指令队列中的内容,从新的地址取入指令,立即送往执行单元,然后
7、再从新单元开始重新填满队列。,16,2执行部件EU构成部分:8个16位寄存器:AX、BX、CX、DX SP、BP、DI、SI 1个标志寄存器PSW(FR)1个算术逻辑运算部件 ALU主要功能 执行部件负责指令的执行。(包括算术、逻辑运算,控制命令等),ALU,17,3.工作原理 计算机的工作过程是:取指令,执行指令,CPU 总线 内存,18,总线接口部件和执行部件可并行工作,提高工作效率。指令的提取和执行分别 由BIU和EU完成。BIU和EU相互独立又相互配合(1)当指令队列有一个空字节时,BIU自动把指令取到指令队列中(2)执行部件总是从指令队列前部 提出指令去执行。(3)如果在执行指令的过
8、程中,需要访问内存或I/O端口,EU会请求BIU去完成存取操作。,19,由于有指令队列的存在,在EU执行指令的同时,BIU可取指令,即BIU和EU可处于并行工作状态。,BIUEU,20,三、8086/8088的寄存器组 共有14个16位寄存器,AX,BX,CX,DX,SI,DI,SP,BP,DS,ES,SS,CS,PSW(FR),IP 其中:AX、BX、CX、DX 又可分成两个 8 位寄存器(AH,AL;BH,BL;CH,CL;DH,DL.)其它10个只能作为16位寄存器。,21,(P34),1、通用寄存器 通用寄存器包括:数据寄存器、地址指针寄存器、变址寄存器。数据寄存器包括:AX、BX、C
9、X、DX。地址指针寄存器包括:SP、BP。变址寄存器包括:SI、DI。2、段寄存器 段寄存器包括:CS、SS、DS、ES。3、控制寄存器 控制寄存器包括:IP、PSW。,1、通用寄存器(1)数据寄存器AX、BX、CX、DX 作为通用寄存器。用来暂存计算过程中所用到的操作数,结果或其它信息。访问形式:可以用16位的访问;或者可以用字节(8位)形式访问,它们的高8位记作:AH、BH、CH、DH。它们的低8位记作:AL、BL、CL、DL。,AX(Accumulator)作为累加器。它是算术运算的主要寄存器,所有I/O指令都使用这一寄存器与外部设备交换数据。例:IN AL,20HOUT 30H,AXB
10、XBase用作基址寄存器使用。在计算内存储器地址时,经常用来存放基址。例:MOV AX,BX+03H,CXCount可以作计数寄存器使用。在循环LOOP指令和串处理指令中用作隐含计数器。例:MOV CX,200HAGAIN:LOOP AGAIN;(CX)-1(CX),结果0转AGAINDXData可以作为数据寄存器使用。一般在双字长乘除法运算时,把DX和AX组合在一起存放一个双字长(32位)数,DX用来存放高16位;对某些I/O操作DX可用来存放I/O的端口地址(口地址 256)。例:MUL BX;(AX)(BX)(DX)(AX)例:IN AL,DX,(2)地址指针与变址寄存器:段起始地址 S
11、P、BP、SI、DI 四个16位寄存器。以字为单位在运算过程中存放操作数,经常用以在段内寻址时提供偏移地址。段内偏移地址段地址:只取段起始地址高16位值。偏移地址:指在段内某内存单元物理地址相对段起始地址的偏移值。,高16位值 0000B,27,地址指针寄存器(SP、BP)SP(stack pointer)堆栈指针寄存器 用来指示栈顶的偏移地址,必须与SS段寄存器联合使用确定实际地址。堆栈和指针如下页图所示。BP(base pointer)基址指针寄存器 可以与SS寄存器联合使用来确定堆栈段中某一存储器单元地址。,8088系统存储器与总线连接,堆栈和指针,设:(SS)=3F00H,(SP)=0
12、060H堆栈和指针如下图:堆栈是内存开辟的一个特殊数据区,一端固定,一端浮动,严格按照后进先出的工作原则。,变址寄存器(SI、DI)SISource Index Register 源变址寄存器。DIDestination Index 目的变址寄存器。使用场合:常用于变址寻址。一般与DS联用,用来确定数据段中某一存储单元的地址,例:MOV AX,SI,在串处理指令中,SI、DI作为隐含的源变址和目的变址寄 存器分别达到在数据段和附加段中寻址的目的。执行示意图如右图。例:MOV SI,2000HMOV DI,3000HMOV CX,100HCLD.MOVSB.,串处理指令执行示意图,2、段寄存器段
13、寄存器:4个16位段寄存器CS、DS、SS、ES。用来识别当前可寻址的四个段,不可互换的使用。CSCode Segment Register 代码段寄存器 用来识别当前代码段(程序一般放在代码段)。DSData Segment Register数据段寄存器 用来识别当前数据段寄存器。SSStack Segment Register堆栈段寄存器,用来识别当前堆栈段。ESExtra Segment Register附加段寄存器,用来识别当前附加段。,3、控制寄存器控制寄存器:IP、PSWIPInstruction Pointer指令指针寄存器 用来存储代码段中的偏移地址;程序运行过程中IP始终指向
14、下一次要取出的指令偏移地址。IP要与CS寄存器相配合才能形成真正的物理地址。PSW(Processor Status Word/Program)程序状态字寄存器,16位寄存器,只用了其中9位。由条件码标志FLAG、控制标志构成。(6位条件码标志,3位控制标志)。,33,9个标志按其作用分状态标志和控制标志两类 状态标志:OF、SF、ZF、AF、PF、CF 共6个 记录指令运行过程或运算结果的状态信息。常作为后续转移指令的控制条件,又称为条件码。控制标志:DF、IF、TF 共3个 作用是控制CPU 的操作。,16位寄存器,用了其中的9位,其它7位在8086/8088中无意义。,34,各状态标志的
15、含义:,CF:进位标志(Carry Flag)运算过程中,最高位是否产生进位/借位。(最高位 对字节操作指D7位,对字操作指D15位)加法,最高有效位有进位CF1,否则CF0 减法,最高有效位有借位CF1,否则CF0AF:辅助进位标志(Auxiliary Carry Flag)运算过程中,对字节操作D3位是否产生进位。有进位或借位时,AF1,否则AF0。,35,ZF:零标志(Zero Flag)运算结果是否为0。运算结果为 0 时,ZF1,否则ZF0SF:符号标志(Sign Flag)运算结果的符号位。对字节操作 SFD7 对字操作SFD15,36,OF:溢出标志(Overflow Flag)
16、运算过程中是否产生溢出。产生溢出,OF1,否则为0。PF:奇偶标志(Parity Flag)运算结果低8位中“1”的个数情况。偶数个“1”时,PF1,否则PF0。,37,1 0 1 1 0 1 0 1 被加数8位+1 0 0 0 1 1 1 1 加数8位进位 1 1 1 1 1 1 1 0 1 0 0 0 1 0 0 和8位,PSW标志寄存器,运算器,标志寄存器,运算器,被加数,加数,和,进位,例 8位二进制加法如下,给出各状态标志位的值,最高位D7位产生进位:CF=1 D3位产生进位:AF=1相加的结果为44H,不为0:ZF=0结果的最高位为0:SF=0两负数相加结果为正,溢出:OF=1结果
17、中有2个1,偶数个1:PF=1,1 0 0 1 1 1,38,各控制标志作用(以后用到再介绍):,DF:方向标志在串操作指令中控制地址变化的方向。当DF1时,地址递减;当DF时,地址递增。IF:中断标志当IF1时,允许CPU响应可屏蔽中断申请。当IF时,禁止CPU响应可屏蔽中断申请。TF:跟踪标志为调试程序设置的一个控制标志。当TF1时,CPU按单步方式执行指令。,39,调试程序DEBUG(自学)DEBUG.exe 是 DOS提供的一个调试汇编语言程序的程序 每个版本的DOS都带有该程序。DEBUG程序采用的是命令行方式 使用不方便,但实用性强.是学习汇编语言程序、计算机硬件等课程的有效工具.
18、其他调试程序:Turbo Debugger(TD.exe)Code View Softice,40,DEBUG 主要命令一览,41,DEBUG程序的具体作用:1.查看/修改寄存器,内存单元的内容;2.学习寻址方式和指令系统;3.了解计算机取指令,执行指令的工作过程;4.调试有问题的汇编语言程序。,42,注意:DEBUG下符号与标志的对应关系,43,D:DEBUG;进入DEBUG-R;查看当前各寄存器的内容AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=1271 ES=1271 SS=1271 CS=1271 I
19、P=0100NV UP EI PL NZ NA PO NC1271:0100 B83412 MOV AX,1234-D 0:0;查看0:07FH内存块的内容0000:0000 9E 0F C9 00 65 04 70 00-16 00 EB 07 65 04 70 00.e.p.e.p.0000:0010 65 04 70 00 54 FF 00 F0-58 7F 00 F0 F5 E7 00 F0 e.p.T.X.、-U FFFF:0;反汇编FFFF:0 处的指令FFFF:0000 CD19 INT 19FFFF:0002 E000 LOOPNZ 0004、,课后可参照下列步骤做实验:(兰色
20、表示用户输入命令,红色位解释,黑色为系统给出的结果),44,-A;汇编一条指令 1271:0100 MOV AX,12341271:0103-T=100;执行该指令 AX=1234 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=1271 ES=1271 SS=1271 CS=1271 IP=0103 NV UP EI PL NZ NA PO NC1271:0103 E9C300 JMP 01C9-R;查看指令执行后结果 AX=1234 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=00
21、00 DI=0000DS=1271 ES=1271 SS=1271 CS=1271 IP=0103 NV UP EI PL NZ NA PO NC-Q;退出DEBUGD:,45,四、8086/8088的存储器组织 1.内存物理地址的形成 2.逻辑地址与物理地址 3.各段在存储器中分配 4.内存单元内容的存放及表示,46,1.内存物理地址的形成 取指令、取数、存数时,都要访问内存,被访问内存单元的地址由CPU提供。,47,8086/8088有20根地址线,可寻址220=1M个内存单元,而CPU内部寄存器均为16位,故:20位的地址需由 一个附加部件完成。这个部件就是地址加法器。,8086/808
22、8内部20位物理地址形成 存储器地址分段 8086/8088地址总线是20位的,CPU中的寄存器是16位的,20位地址无法用16位寄存器表示,必须分段。程序员在编制程序时把存储器划分成段。段内地址16位,每个段的大小最大可达64KB;实际可以根据需要来确定段大小,可以是1,100,1000,在64K范围内的任意字节数。IBM PC机对段的起始地址有限制,即段不能从任意地址开始:必须从任一小段(paragraph)的首地址开始。,小段的概念从0地址开始每16字节为一小段,对于16位地址总线,段内存储器小段地址如下:如:0000H,0001H,0002H,000EH,000FH一个小段 0010H
23、,0011H,0012H,001EH,001FH 0020H,0021H,0022H,002EH,002FH FFF0H,FFF1H,FFF2H,FFFEH,FFFFH 其中:第一列就是每个小段的首地址。,每个小段首地址特征:在16进制表示的地址中,最低位为0H(即20位地址的低4位为0000B)。在1M字节的地址空间,共有64K个小段其首地址为:0000 0H0001 0H4123 0H4124 0HFFFE 0HFFFF 0H,20位物理地址形成 物理地址:在1M字节存储器里,每个存储单元都有一个唯一的20位地址作为该存储单元的物理地址。CPU访问存储器时,必须先确定所要访问的存储单元的物
24、理 地址才能取出(或存入)该单元中的内容。20位物理地址形成:由16位段地址和16位偏移地址组成。段 地 址:只取段起始地址高16位值。偏移地址:段内某内存单元物理地址相对段起始地址的偏移值。,物理地址计算方法:即把段地址左移4位再加上偏移地址值形成物理地址,写成:物理地址=10H段地址+偏移地址。*每个存储单元只有唯一的物理地址。但可由不同的段地址和不同的偏移地址组成。,53,地址加法器的工作原理可表示为:物理地址PA=段地址 偏移地址=(段寄存器)16+偏移地址=(段寄存器)10H+偏移地址 即段寄存器的内容左移4位,加上偏移地址,54,物理地址PA=段地址 偏移地址=(段寄存器)10H+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 8086 微处理器 基本 结构 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4009434.html