- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8086是英特尔的16位微处理器,8088是准16位微处理器。8088的内部寄存器、运算器以及内部数据总线与8086一样都是按照16位设计的,但其外部数据总线只有8条。这样设计的目的主要是为了与英特尔原有的8位外围接口芯片直接兼容。
8086/8088CPU内部可分为两个独立的功能单元:总线接口单元(Bus interface unit,BIU)和执行单元(execution unit,EU)。
总线接口单元:BIU是与总线连接的接口部件,其基本功能是根据执行单元的请求负责CPU与存储器或I/O端口之间的数据传送。在CPU取指令时,它从内存中取出指令送到指令队列缓冲器;而在执行指令时,它要与指定的内存单元或者I/O端口交换数据。BIU内有4个16位段寄存器,即CS(代码寄存器)、DS(数据段寄存器)、SS(堆栈段寄存器)和ES(附加段寄存器),16位指令指针,6字节指令队列缓冲器,20位地址加法器和总线控制电路。
指令队列缓冲器:8086的指令队列由6字节的寄存器组成,最多可存入6字节的指令代码,而8088的指令队列只有4个字节。在8086/8088执行指令时,将从内存中取出1条或几条指令,依次放在指令队列中。它们遵循“先进先出”的原则,按顺序存放,并按顺序取到EU中去执行,其操作将遵循以下原则:取指令时,每当指令队列中存满一条指令后,EU就立即开始执行;当指令队列中空出2个(8086)或1个(8088)指令字节时,BIU便自动执行取址操作,直到填满为止;EU在执行指令的过程中,若CPU需要访问存储器或I/O端口,则EU自动请求BIU去完成访问操作。此时若BIU空闲,则会立即完成EU的请求;否则BIU首先将指令取至指令队列,再响应EU的请求;当EU执行完转移、调用和返回指令时,则要清除指令队列缓冲器,并要求BIU从新的地址重新开始取指令,新取的第一条指令将直接经指令队列送到EU去执行,随后取来的指令将填入指令队列缓冲器。
地址加法器和段寄存器:8086有20根地址线,但内部寄存器只有16位,不能直接提供对20位地址的寻址信息。通过采用段加偏移技术技术可以实现对20位地址的寻址操作,即将可移位的16位段寄存器与16位偏移地址相加的方法。具体来说,就是利用各段寄存器分别来存放确定各段的20位起始地址的高16位段地址信息,而由IP提供或由EU按寻址方式计算出寻址单元的16位偏移地址(偏移量),然后,将它与左移4位后的段寄存器的内容同时送到地址加法器中进行相加,最后形成20位的实际地址(物理地址,PA),以对存储单元寻址。
16位指针指令:IP(instruction pointer)的功能与8位CPU中的PC类似。正常运行时,IP中含有BIU要取得下一条指令(字节)的偏移地址。IP在程序运行中能自动加1修正,使之指向要执行的下一条指令(字节)。有些指令(转移、调用、中断和返回指令)能使IP值改变,或将IP值压栈保存,或由堆栈弹出恢复原值。
执行单元:EU的功能是负责执行指令,执行额指令从BIU的指令队列中取得,执行指令的结果或执行指令所需的数据,都由EU向BIU发出请求,再由BIU经总线控制电路对存储器或I/O端口存取。EU由下列5个部分组成
16位算数逻辑单元(ALU):可以进行算数、逻辑运算,也可以按指令的寻址方式计算出寻址单元的16位偏移量。
16位标志寄存器F:用来反映CPU运算的状态特征或存放控制标志。
数据暂存寄存器:协助ALU完成运算,暂存参加运算的数据
通用寄存器组:包括4个16位数据寄存器,即AX、BX、CX、DX和4个16位指针与变址寄存器,即SP、BP、SI、DI。
EU控制电路:是控制、定时与状态逻辑电路,接收从BIU中指令队列取来的指令,经过指令译码器形成各种定时控制信号,对EU的各个部件实现特定的定时操作。
EU中所有的寄存器和数据通道都是16位的宽度,可实现数据的快速传送。
8088CPU的内部结构与8086的基本相似,只是8088的BIU中指令队列长度为4字节,8088的BIU通过总线控制电路与外部交换数据的总线宽度是8位,总线控制电路与专用寄存器组之间的数据总线宽度也是8位。
8086/8088的寄存器结构:8086/8088的内部寄存器变成结构中共有13个16位寄存器和1个只用了9位的标志寄存器。
通用寄存器:通用寄存器分为两组,即数据寄存器;指针寄存器和变址寄存器
数据寄存器:执行单元中有4个16位数据寄存器,即AX、BX、CX和DX。每个数据寄存器分为高字节的H和低字节的L,他们均可作为8位数据寄存器独立寻址,独立使用。在多数情况下,这些数据寄存器用在算术运算或逻辑运算指令中,用来进行算数逻辑运算。在有些指令中,他们则有特定的用途。这些寄存器在指令中的特定功能是被系统隐含使用的。如下表所示
文档评论(0)