欢迎来到天天文库
浏览记录
ID:40246065
大小:2.31 MB
页数:143页
时间:2019-07-28
《微机原理与接口技术--李云强 第2章 微处理器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、微机原理与接口技术中国水利水电出版社主编李云强第2章微处理器2.18086/8088CPU结构2.28086/8088CPU引脚功能2.38086/8088中断系统2.48086系统配置2.58086CPU的典型时序及操作2.632位微处理器编程结构简介2.18086/8088CPU结构2.1.18086/8088CPU内部结构16位微处理器基本结构具有如下特点:引脚功能复用总线分时复用可控三态电路单总线、累加器结构Intel8086CPU是16位微处理器。外型为双列直插式,有40个引脚。8086CPU有16根数
2、据线和20根地址线,直接寻址空间为220byte(1MB)。时钟频率有3种:8086型微处理器为5MHz,8086-2型为8MHz,8086-l型为10MHz。如图2-1所示,8086/8088CPU的内部结构包含两大部分:指令执行单元(EU)和总线口单元(BIU)EU从BIU的指令队列中取出指令,执行指令BIU完成取指令,读操作数,送结果,所有与外部的操作由其完成BIU和EU的操作是并行的。若需要访问内存或I/O端口,则由EU向BIU发出访问所需要的地址,在BIU中形成物理地址,然后访问内存或I/O端口,得到操
3、作数后送到EU,或将结果到送指定的内存单元或I/O端口。这种并行工作方式,大大提高了系统工作效率。总线控制逻辑ALU数据总线(16位)指令执行部件(EU)图2-18086/8088CPU内部功能结构图数据总线20位地址总线地址加法器CSDSESSSIP内部暂存寄存器ALU标志寄存器(FR)暂存寄存器队列总线8位8088:8位8086:16位段寄存器SPBPDISIAHALAX通用寄存器BHBLBXCHCLCXDHDLDX总线接口部件(BIU)EU控制单元指令队列80888086165432总线接口部件BIUBIU
4、具有地址形成、取指令、指令排队、读/写操作数和总线控制的功能,它是CPU与外部(内存和I/O端口)的接口,它提供了16位双向数据总线和20位地址总线,完成所有外部总线操作。它由4个16位段寄存器、16位指令指针IP和内部暂存器、6字节(8088为4字节)指令队列缓存器、20位地址加法器以及总线控制逻辑部件等组成。段寄存器。指令指针。地址加法器。指令队列缓存器。总线控制逻辑。指令执行部件EUEU完成指令译码和执行指令的工作。EU从BIU的指令队列中取得指令,并在ALU上执行指令;然后,将处理的结果送回BIU,由BI
5、U进行存储处理。它由ALU、标志寄存器、通用寄存器、暂存器、控制部件等组成。算术逻辑运算单元ALU。标志寄存器flags。通用寄存器组。EU控制器。2.1.28086/8088寄存器结构寄存器可以用来存放运算过程中所需要的操作数地址、操作数及中间结果。8086微处理器内部包含有4组16位寄存器,它们分别是通用寄存器组、段寄存器、指针和变址寄存器、指令指针和标志位寄存器,如图2-2所示。图2-28086/8088寄存器结构(a)通用寄存器组(c)指针和变址寄存器(b)段寄存器(d)指令指针和标志位寄存器组015代码
6、段寄存器数据段寄存器堆栈段寄存器附加段寄存器CSDSSSESAHALBHBLCHCLDHDLAXBXCXDX81507累加器基址寄存器计数寄存器数据寄存器SPBPDISI015堆栈指针寄存器基址寄存器目的变址寄存器源变址寄存器015IPFLAGS指令指针寄存器标志位寄存器通用寄存器组4个16位通用寄存器,它们是AX、BX、CX和DX,用以存放16位数据或地址。也可分为8个8位寄存器来使用,低8位是AL、BL、CL和DL,高8位为AH、BH、CH和DH,只能存放8位数据,不能存放地址。AX:常作为累加器使用,是算术
7、运算的主要寄存器。在乘法、除法等指令中指定用来存放操作数。除此之外,所有的输入、输出指令都使用这一寄存器与外部设备传送信息。BX:常作为通用寄存器使用,此外,还经常作为基址寄存器。CX:除作为通用寄存器外,还常在循环、移位指令中用来保存计数值。DX:除作为通用寄存器外,一般在进行双字运算时把DX和AX组合在一起存放一个双字,DX用来存放高位字。此外,在进行输入、输出操作时,该寄存器用来存放端口地址。段寄存器8086/8088CPU内部设置了4个16位段寄存器,它们分别是CS、DS、SS、ES,由它们给出相应逻辑段
8、的首地址,称为“段基址”。段基址与段内偏移地址(也称为有效地址,EA)组合形成20位物理地址,段内偏移地址可以存放在寄存器中,也可以存放在内存中。CS:内存放可执行的指令代码段基址。DS、ES:内存放操作的数据段基址,通常操作数在现行DS中,而在串指令中,目的操作数指明必须在现行ES中。SS:开辟为程序执行中所要用的堆栈区,采用先进后出(FILO)的方式访问它。堆栈:存储
此文档下载收益归作者所有