欢迎来到天天文库
浏览记录
ID:40447966
大小:5.04 MB
页数:276页
时间:2019-08-02
《微处理器及指令系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第二章:x86微处理器1第二章:x86微处理器2.18086/8088微处理器2.28086/8088存储器和I/O组织2.38086/8088中断系统2.48086/8088指令系统2.5x86系列CPU的技术发展28086/8088微处理器的结构。8086微处理器的结构。8086/8088微处理器的寄存器结构8086/8088系统中的存储器分段与物理地址的形成。8086/8088微处理器的引脚功能和相关知识,达到“综合应用”层次。8086/8088CPU的引脚信号和工作模式。8086/8088
2、两种工作方式——最小方式与最大方式的区别。最小模式的典型配置8086/8088微处理器的总线时序。三种周期——指令周期、总线周期和时钟周期的区别及联系。中断类型码,中断向量,中断子程序入口地址之间的联系最小方式下的总线读/写操作时序,最小方式下的总线请求/保持三态2.18086/8088微处理器本节要点38086/8088微处理器是Intel公司推出的第三代CPU芯片,它们的内部结构基本相同,都采用16位结构进行操作及存储器寻址,但外部性能有所差异,两种处理器都封装在相同的40脚双列直插组件中。2
3、.1.08086与80882.18086/8088微处理器42.18086/8088微处理器要了解一个CPU的工作性能和使用方法,首先应该了解其功能结构(是指从程序员和使用者的角度看到的结构,亦可称为编程结构)。从功能上来看,8086CPU可分为两部分,即总线接口部件BIU(BusInterfaceUnit)和执行部件EU(ExecutionUnit)。2.1.18086与8088微处理器的编程结构52.18086/8088微处理器总线接口部件(BIU)总线接口单元BIU的功能是负责完成CPU与存
4、储器或I/O设备之间的数据传送。具体任务是:①指令队列出现空字节(8088CPU1个空字节,8086CPU2个空字节)时,从内存取出后续指令。BIU取指令时,并不影响EU的执行,两者并行工作,大大提高了CPU的执行速度。②EU需要从内存或外设端口读取操作数时,根据EU给出的地址从内存或外设端口读取数据供EU使用。③EU的运算结果、数据或控制命令等由BIU送往指定的内存单元或外设端口。62.18086/8088微处理器总线接口部件的组成4个16位段寄存器:包括代码段寄存器CS(CodeSegment
5、)、数据段寄存器DS(DataSegment)、堆栈段寄存器SS(StackSegment)和附加数据段寄存器ES(ExtraSegment);1个16位的指令指针寄存器IP(InstructionPointer);1个20位地址加法器;6字节指令队列缓冲器;1个与EU通讯的内部寄存器;总线控制电路等。72.18086/8088微处理器段寄存器8086CPU的地址引脚有20根,能提供20位的地址信息,可直接对1M个存储单元进行访问,但CPU内部可用来提供地址信息的寄存器都是16位的,为了用16位寄
6、存器实现20位地址的寻址,8086/8088采用了段结构的内存管理的方法。将指令代码和数据分别存储在代码段、数据段、堆栈段、附加数据段中,这些段的段地址分别由段寄存器CS、DS、SS、ES提供,而代码或数据在段内的偏移地址则由有关寄存器或立即数给出。82.18086/8088微处理器代码段寄存器CS存储程序当前使用的代码段的段地址。代码段用来存放程序的指令代码。下一条要读取指令在代码段中的偏移地址由指令指针寄存器IP提供;数据段寄存器DS用来存放程序当前使用的数据段的段地址。一般来说,程序中所用到
7、的原始数据、中间结果以及最终结果都存放在数据段中,如果程序中使用了字符串处理指令,则源字符串也存放在数据段中;堆栈段寄存器SS用来存放程序当前所使用的堆栈段的段地址。堆栈是在存储器中开辟的一个特定区域;附加数据段寄存器ES用来存放程序当前使用的附加数据段的段地址。附加数据段通常用于存放字符串操作时的目的字符串。段寄存器92.18086/8088微处理器段寄存器8086/8088段寄存器与提供段内偏移地址的寄存器之间的默认组合段寄存器提供段内偏移地址的寄存器CSIPDSBX、SI、DI或一个16位数
8、SSSP或BPESDI(用于字符串操作指令)102.18086/8088微处理器指令指针寄存器IP指令指针寄存器IP用来存放下一条要读取的指令在代码段中的偏移地址。IP在程序运行中能自动加1修正,从而使其始终存放的是下一条要读取的指令在代码段的偏移地址。由于CS和IP的内容决定了程序的执行顺序,因此程序员不能直接用赋值指令对其内容进行修改。有些指令能使IP和CS的值改变(如跳转指令)或使其值压入堆栈或从堆栈中弹出恢复原值(如子程序调用指令和返回指令)112.18086/8088微处
此文档下载收益归作者所有