8086的内部结构.ppt

上传人:得****1 文档编号:74919764 上传时间:2023-03-01 格式:PPT 页数:35 大小:1.72MB
返回 下载 相关 举报
8086的内部结构.ppt_第1页
第1页 / 共35页
8086的内部结构.ppt_第2页
第2页 / 共35页
点击查看更多>>
资源描述

《8086的内部结构.ppt》由会员分享,可在线阅读,更多相关《8086的内部结构.ppt(35页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、8086的内部组成在微型计算机中的运算器、控制器都由CPU完成,在8086 内部根据具体的功能可以分为三个模块:执行单元EU,(中)控制单元CU,(左)总线接口单元BIU(右)8086的内部组成(图)CPU内部结构EU:执行部件,包括ALU、通用寄存器、数据暂存器等CU:控制部件,有指令队列、指令译码器等BIU:总线接口部件,加法器段值、偏移地址寄存器等EU、BIU可以并行执行,都由CU控制8086CPU的执行部件执行部件(EU):8个通用寄存器(数据AX、BX、CX、DX;专用BP、SP、SI、DI)ALU,数据寄存器,标志寄存器FLAG背景知识-寄存器(Register)寄存器是CPU内部

2、的一些高速存储单元他们为处理器提供各种操作所需要的数据汇编语言程序中将采用他们各自的符号名例如,在Intel 8086/8088中,主要是:AXAXBXBXCXCXDXDXSISIDIDIBPBPSPSP8086的寄存器组8086的寄存器(如图)都为16位,分为:EU:8个通用寄存器CU:1个指令指针寄存器EU:1个标志寄存器BIU:4个段寄存器掌握通用寄存器的作用熟悉各个标志的含义切实理解存储器组织和存储空间分段的概念8086的寄存器组EU-通用寄存器8086的16位通用寄存器是:AXBXCXDXSIDIBPSP其中前4个数据寄存器都还可以分成高8位和低8位两个独立的寄存器。对其中某8位的操

3、作,并不影响另外对应8位的数据。8086的8位通用寄存器是:AHBHCHDHALBLCLDLEU-数据寄存器数据寄存器用来存放计算的结果和操作数每个寄存器又有它们各自的专用目的:AX累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息等;BX基址寄存器,常用做存放存储器地址;CX计数器,作为循环和串操作等指令中的隐含计数器;DX数据寄存器,常用来存放双字长数据的高16位,或存放外设端口地址。EU-变址寄存器变址寄存器常用于存储器寻址时提供地址SI是源变址寄存器DI是目的变址寄存器串操作类指令中,SI和DI具有特别的功能EU-指针寄存器指针寄存器用于寻址内存堆栈内的数据SP为堆栈指针寄存器

4、,指示栈顶的偏移地址SP不能再用于其他目的,具有专用目的BP为基址指针寄存器,表示数据在堆栈段中的基地址SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址详见堆栈操作指令EU-标志寄存器(FLAG)标志(Flag)用于反映指令执行结果或控制指令执行形式。8086处理器中各种常用的标志形成了一个16位的标志寄存器FLAGS(也称程序状态字PSW寄存器)。OF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0FLAG-标志的作用指令的执行与标志有很大关系。标志分成两类:状态标志用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它。CF ZF SF PF

5、 OF AF控制标志可由程序根据需要用指令设置,用于控制处理器执行指令的方式。DF IF TFFLAG-进位标志CF(Carry Flag)当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF=1;否则CF=0。例如:3AH+7CHB6H,没有进位:CF=0AAH+7CH(1)26H,有进位:CF=1FLAG-零标志ZF(Zero Flag)若运算结果为0,则ZF=1,否则ZF=0。例如:3AH+7CHB6H,结果不是零:ZF=086H+7CH(1)00H,结果是零:ZF=1注意:ZF为1表示的结果是0FLAG-符号标志SF(Sign Flag)运算结果最高位为1,则SF

6、=1;否则SF=0。例如:3AH+7CHB6H,最高位D71:SF=186H+7CH(1)00H,最高位D70:SF=0有符号数据利用最高有效位表示数据的符号。所以,最高有效位就是符号标志的状态。FLAG-奇偶标志PF(Parity Flag)当运算结果最低字节中“1”的个数为零或偶数时,PF=1;否则PF=0。例如:3AH+7CHB6H10110110B,结果中有5个1,是奇数:PF=0注意:PF标志仅反映最低8位中“1”的个数是偶或奇,即使是进行16位字操作。FLAG-溢出标志OF(Overflow Flag)若算术运算的结果有溢出,则OF=1;否则 OF0。例如:3AH+7CHB6H,产

7、生溢出:OF=1AAH+7CH(1)26H,没有溢出:OF=0问题:什么是溢出?如何判断是否溢出?FLAG-辅助进位标志AF(Auxiliary Carry Flag)运算时D3位(低半字节)有进位或借位时,AF=1;否则AF=0。例如:3AH+7CHB6H,D3有进位:AF=1这个标志主要由处理器内部使用,用于十进制算术运算指令中,用户一般不必关心。FLAG-方向标志DF(Direction Flag)用于串操作指令中,控制地址的变化方向:设置DF0,串操作的存储器地址自动增加;设置DF1,串操作的存储器地址自动减少。CLD指令复位方向标志:DF0STD指令置位方向标志:DF1FLAG-中断

8、允许标志IF(Interrupt-enable Flag)用于控制外部可屏蔽中断是否可以被处理器响应:设置IF1,则允许中断;设置IF0,则禁止中断。CLI指令复位中断标志:IF0STI指令置位中断标志:IF1FLAG-单步执行标志TF(Trap Flag)用于控制处理器是否进入单步操作方式:设置TF0,处理器正常工作;设置TF1,处理器单步执行指令。单步执行指令处理器在每条指令执行结束时,便产生一个编号为1的内部中断。这种内部中断称为单步中断,所以TF也称为单步标志。利用单步中断可对程序进行逐条指令的调试。这种逐条指令调试程序的方法就是单步调试。附加知识-什么是溢出处理器内部以补码表示有符号

9、数8个二进制位能够表达的整数范围是:+127 -12816位表达的范围是:+32767 -32768如果运算结果超出了这个范围,就是产生了溢出有溢出,说明有符号数的运算结果不正确例如:3AH+7CHB6H,就是58+124182,已经超出-128 127范围,产生溢出,所以OF=1;另一方面,补码B6H表达真值是-74,显然运算结果也不正确。附加知识-溢出的判断判断运算结果是否溢出有一个简单的规则:只有当两个相同符号数相加,而运算结果的符号与原数据符号相反时,产生溢出;因为,此时的运算结果显然不正确。其他情况下,则不会产生溢出。8086CPU的控制部件指令寄存器(IR)微地址形成单元微地址存储

10、器控制存储器微指令形成单元 8086的总线接口部件四个段寄存器指令指针IP段基值暂存器偏移地址暂存器加法器20 位地址寄存器BIU段寄存器16位寄存器,不可以直接赋值或从存储器赋值,只能接受8个通用寄存器的值。CS 代码段寄存器DS 数据段寄存器SS 堆栈段寄存器ES 扩展段寄存器BIU-指令指针寄存器IP指令指针寄存器IP,指示代码段中指令的偏移地址它与代码段寄存器CS联用,确定下一条指令的物理地址计算机通过CS:IP寄存器来控制指令序列的执行流程IP寄存器是一个专用寄存器BIU段基值暂存器把4个段基址寄存器的值暂时存储,供加法器使用BIU偏移地址暂存器记录由ALU生成的16位偏移地址,给加法器使用BIU-加法器完成两个16 位地址(段地址、偏移地址)的20 位地址生成BIU20位地址寄存器20位物理地址寄存,送往地址总线关于8086的20 位地址寻址方式16位段地址左移4位,加上16位偏移地址生成20位物理地址因为8086 CPU是16位计算机,内部寄存器与ALU都是16位的具体的地址管理模式我们将在后续课程寻址方式中加以详细介绍关于逻辑地址与物理地址逻辑地址:在程序中用户表示的地址。段地址:偏移地址物理地址:访问存储器时,发生的真实地址。5位16进制数逻辑地址转换到物理地址

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com