欢迎来到天天文库
浏览记录
ID:62169466
大小:1.35 MB
页数:103页
时间:2021-04-20
《最新第2章-8086CPU结构PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第2章-8086CPU结构2.18086微处理器内部基本结构2.1.18086CPU的内部结构8088的内部结构从功能分成两个单元总线接口单元BIU——管理8088与系统总线的接口,负责CPU对存储器和外设进行访问执行单元EU——负责指令的译码、执行和数据的运算两个单元相互独立,分别完成各自操作两个单元可以并行执行,实现指令取指和执行的流水线操作8088的内部结构1234内部暂存器IPESSSDSCS控制电路外部总线控制电路∑ALU标志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令队列执行部件
2、(EU)总线接口部件(BIU)16位20位8位8位段寄存器8086CPU内部寄存器1.通用寄存器8086的16位通用寄存器是:AXBXCXDXSIDIBPSP其中,前4个数据寄存器都还可以分成高8位和低8位两个独立的寄存器,它们是:AHBHCHDHALBLCLDL对其中某个8位寄存器的操作,并不影响它所对应的另外一个8位寄存器。2.数据寄存器数据寄存器用来存放计算的结果和操作数每个寄存器又有它们各自的专用目的:AX——16位累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息等;AL为8位累加器。BX——基址寄存器,常
3、用来做基址指针,指向一批连续存放操作数的基地址。CX——计数器,作为循环和串操作等指令中的隐含计数器。DX——数据寄存器,用来存放外设端口的16位地址,或双字长数据的高16位。3.变址寄存器变址寄存器常用于存储器寻址时提供地址SI是源变址寄存器DI是目的变址寄存器在串操作类指令中,SI和DI具有特别的功能4.指针寄存器指针寄存器用于寻址内存堆栈内的数据SP为堆栈指针寄存器,指示栈顶的偏移地址。SP不能再用于其他目的,具有专用性BP为基址指针寄存器,表示数据在堆栈段中的基地址SP/BP寄存器与SS段寄存器联合使用以确定堆栈段中
4、的存储单元地址详见堆栈操作指令5.指令指针寄存器IP指令指针寄存器IP,指示代码段中指令的偏移地址它与代码段寄存器CS联用,确定下一条指令的物理地址计算机通过CS:IP寄存器来取指,从而控制指令序列的执行流程IP寄存器是一个专用寄存器,用户不能直接访问。6.标志寄存器标志(Flag)用于反映指令执行结果或控制指令执行形式。8086处理器中各种常用的标志形成了一个16位的标志寄存器FLAGS(也称程序状态字PSW寄存器)。OF111512DF10IF9TF8SF7ZF65AF43PF21CF0控制反映结果状态反应运算过程标志的
5、作用指令的执行与标志有很大关系。标志分成两类:状态标志——用来记录程序运行结果的状态信息,许多指令的执行都将自动地改变它。CFOFAFSFZFPF控制标志——可由用户根据需要用指令进行设置,用于控制处理器的具体工作方式。DFIFTF(1)进位标志CF(CarryFlag)当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF=1;否则CF=0。例如(以8位运算为例,8088中为16位):3AH+7CH=B6H没有进位:CF=0AAH+7CH=26H有进位:CF=1(2)符号标志SF(SignFlag)运算
6、结果最高位为1,则SF=1;否则SF=0。例如:3AH+7CH=B6H最高位D7=1:SF=186H+7CH=00H最高位D7=0:SF=0有符号数利用最高有效位(MSB)来表示它的符号。所以,运算结果的MSB与符号标志SF相一致。(3)奇偶标志PF(ParityFlag)当运算结果最低字节中“1”的个数为零或偶数时,PF=1;否则PF=0(奇校验)。例如:3AH+7CH=B6H=10110110B,结果中有5个1,是奇数,则PF=0注意:PF标志仅反映最低8位中“1”的个数是偶或奇,即使是进行16位字操作。(4)溢出标志O
7、F(OverflowFlag)若算术运算的结果有溢出,则OF=1;否则OF=0。例如:3AH+7CH=B6H产生溢出:OF=1AAH+7CH=26H没有溢出:OF=0问题:什么是溢出?溢出和进位有什么区别?处理器怎么处理,程序员如何运用?如何判断是否溢出?(5)辅助进位标志AF(AuxiliaryCarryFlag)运算时D3位(低半字节)有进位或借位时,AF=1;否则AF=0。例如:3AH+7CH=B6HD3向前有进位:AF=1这个标志主要由处理器内部使用,用于十进制算术运算的调整,用户一般不必关心。(6)方向标志DF(D
8、irectionFlag)用于串操作指令中,控制地址的变化方向:设置DF=0,串操作后存储器地址自动增量(增址);设置DF=1,串操作后存储器地址自动减量(减址)。CLD指令复位方向标志:DF=0STD指令置位方向标志:DF=1(7)中断允许标志IF(Interrupt-enableFla
此文档下载收益归作者所有