第3章8086微型计算机系统第3章8086微型计算机系统本章主要内容8086微处理器的工作模式及引脚特性28086微型计算机系统的总线时序4半导体存储器的分类18086微处理器的结构18086微型计算机系统3第3章8086微型计算机系统8086是Intel系列的16位微处理器,采用HMOS工艺制造,有16根数据线和20根地址线,封装在40脚双列直插组件(DIP)中。8086工作时,使用单一的+5V电源,时钟频率为5MHz,引脚信号与TTL电平兼容。3.18086微型计算机系统的总线时序第3章8086微型计算机系统8086可寻址的内存地址空间达220,即1MB;8086可寻址的I/O地址空间达216,即64KB;Intel公司在推出8086的同时一年,还推出了一款准16位的CPU——8088。8088与8086相比:内部结构基本相同,两者的软件也完全兼容。8086的数据总线是16位的;8088的数据总线是8位的。3.18086微型计算机系统的总线时序第3章8086微型计算机系统3.1.18086微处理器的结构8086由执行部件EU(ExecutionUnit)和总线接口部件BIU(BusInterfaceUnit)两部分组成,这两个部件的操作是并行的。EU负责指令的执行;BIU负责CPU与存储器、I/O设备之间的数据传送。EUBIU指令队列第3章8086微型计算机系统ALUAHALBHBLCHCLDHDLAXBXCXDXSPBPSIDI通用寄存器标志寄存器执行部件(EU)EU控制电路16位地址加法器20位16位总线控制逻辑CSDSSSES内部暂存器IP8位23456总线接口部件(BIU)外部设备8086总线数据总线地址总线1队列总线指令队列缓冲器数据寄存器指针和变址寄存器ALU数据总线3.1.18086微处理器的结构第3章8086微型计算机系统1、执行部件EUEU组成:算术逻辑单元(ALU),可完成8位或16位操作数进行算术或逻辑运算;8个16位通用寄存器(AX、BX、CX、DX、SI、DI、SP和BP);标志寄存器;控制电路。EU功能:负责指令的执行,即:从总线接口部件BIU的指令队列取得指令,执行之后向BIU送回运算结果,并把运算结果的状态特征保存到标志寄存器中。第3章8086微型计算机系统2、总线接口部件BIUBIU组成:4个16位段寄存器(DS、CS、ES、SS);指令指针寄存器(IP);20位的地址加法器;6字节指令队列缓冲器;内部暂存器和总线控制逻辑。BIU功能:负责CPU与存储器、I/O设备之间的数据传送。具体包括:取指令送指令队列,配合EU从指定的内存单元或者外设端口中取数据,将数据传送给EU,或者把EU的操作结果传送到指定的内存单元或外设端口中。第3章8086微型计算机系统2、总线接口部件BIU1)段寄存器8086采用存储器地址分段的方法来解决在16位字长的计算机里提供20位地址的问题。段寄存器就是专门存放段地址的寄存器,每个段寄存器的值可以确定一个段的起始地址,而各段有不同的用途。8086中有4个16位段寄存器,它们是:CS(代码段寄存器)、DS(数据段寄存器)、SS(堆栈段寄存器)和ES(附加段寄存器)。第3章8086微型计算机系统2、总线接口部件BIU2)指令指针寄存器IP指令指针寄存器IP提供下一条要取出的指令所在存储单元的16位偏移地址。第3章8086微型计算机系统2、总线接口部件BIU3)地址加法器8086CPU采用段地址、段内偏移地址两级存储器寻址方式,由一个20位地址加法器根据16位段地址和16位段内偏移地址计算出20位的物理地址PA(PhysicalAddress)。其计算方法是:将CPU中的16位段寄存器内容左移4位(×16)与16位的逻辑地址(又称偏移地址)在地址加法器内相加,得到所寻址单元的20位物理地址。根据寻址方式的不同,偏移地址可以来自指令指针寄存器(IP)或其它寄存器。假设(CS)=FE00H,(IP)=0400H,那么下一条要取出的指令所在内存单元的20位物理地址PA=FE00H×10H+0400H=FE400H。第3章8086微型计算机系统2、总线接口部件BIU4)内部暂存器用于内部数据的暂存,该部分对用户透明,在编程时可不予理会,用户无权访问。第3章8086微型计算机系统2、总线接口部件BIU5)指令队列缓冲器8086有6字节指令队列缓冲器;8088有4字节指令队列缓冲器;缓冲器采用“先进先出”策略,暂时存放BIU从存储器中预取的指令。在执行指令的同时,可以从内存中取出下一条或下几条指令放到缓冲器中,一条指令执行完后,可立即执行下一条指令,从而解决了以往CPU取指令期间,运算器的等待问题。第3章8086微型计算机系统2、总线接口部件BIU6)总线控制逻辑总线控制逻辑发出总线控制信号,实现存储器的读/写控制和I/O的读写控制。它将CPU内部总线与外部总线相连,是CPU与外部电路进行数据交换的路径。总线控制逻辑控制8086通过20条引脚线分时传送20位地址线、16位数据和4位状态信息。第3章8086微型计算机系统3、BIU和EU的工作过程8086的总线BIU和EU在很多时候可以并行工作,使得取指令、指令译码和执行指令这些操作构成操作流水线。1.当指令队列中有两个空字节,且EU没有访问存储器和I/O接口的要求时,BIU会自动把指令取到指令队列中。第3章8086微型计算机系统3、BIU和EU的工作过程2.当EU准备执行一条指令时,它会从指令队列前部取出指令执行。在执行指令的过程中,如果需要访问存储器或者I/O设备,那么EU会向BIU发出访问总线的请求,以完成访问存储器或者I/O接口的操作。如果此时BIU正好处于空闲状态,那么,会立即响应EU的总线请求;但如果BIU正在将某个指令字节取到指令队列中,那么,BIU将首先完成这个取指令操作,然后再去响应EU发出的访问总线的请求。第3章8086微型计算机系统3、BIU和EU的工作过程3.当指令队列已满,而且EU又没有总线访问时,BIU便进入空闲状态。4.在执行转移指令、调用指令和返回指令时,下面要执行的指令就不是在程序中紧接着的那条指令了,而BIU往指令队列装入指令时,总是按顺序进行的。在这种情况下,指令队列中已经装入的指令就没有用了,会被自动消除。随后,BIU会往指令队列中装入另一个程序段中的指令。第3章8086微型计算机系统3.1.28086的寄存器结构寄存器是CPU内部用来存放地址、数据和状态标志的部件。8086有14个16位寄存器和8个8位寄存器。按用途可以分为以下几类:数据寄存器;指针和变址寄存器;段寄存器;指令指针寄存器;标志寄存器。第3章8086微型计算机系统1、数据寄存器AX、BX、CX、DX数据寄存器主要用来存放操作数或中间结果,以减少访问存储器的次数。有:4个16位的寄存器:AX、BX、CX、DX;8个8位的寄存器:AH、AL、BH、BL、CH、CL、DH、DL;这些寄存器均可独立使用。多数情况下,这些数据寄存器是用在算术运算或逻辑运算指令中,以进行算术逻辑运算。在有些指令中,它们则有特定的用途。这些寄存器的用法见下表所示。第3章8086微型计算机系统1、数据寄存器AX、BX、CX、DX寄存器一般用法隐含用法AX16位累加器①字节乘法中保存积;字乘法中隐含提供一个乘数,并保存积的低16位;②字节除法中隐含提供被除数;字除法中隐含提供被除数的低16位,并保存商;③CBW指令中隐含作为目标操作数;④CWD指令中隐含作为源操作数和目标操作数的低16位;⑤I/O指令中,保存16位输入/输出数据。ALAX的低8位①字节乘法中隐含提供一个乘数,并保存积的低8位;字节除法中隐含提供被除数的低8位并保存商;②CBW指令中隐含作为源操作数;③XLAT指令中隐含提供表格首地址偏移量;④I/O指令中,保存8位输入/输出数据。AHAX的高8位①字节乘法中隐含提供一个乘数;②字节除法中隐含保存余数;③DOS和BIOS功能调用中存放功能号。第3章8086微型计算机系统1、数据寄存器AX、BX、CX、DX寄存器一般用法隐含用法BX基址寄存器,常用作地址寄存器XLAT指令中提供被查表格中源操作数的间接地址。CX16位计数器①循环指令中的循环次数计数器;②串操作指令中串长计数器。CLCX的低8位移位或循环移位指令中提供移位的次数。DX16位数据寄存器①字乘法中隐含保存积的高16位;②字除法中隐含提供被除数的高16位,并保存积的高16位;③CWD指令中隐含作为目标操作数的高16位;④在间接寻址的I/O指令中,提供端口地址。第3章8086微型计算机系统EU中有2个地址指针寄存器SP、BP和2个变址寄存器SI、DI。用法如下表所示:寄存器一般用法隐含用法SP(堆栈指针寄存器)保存堆栈栈顶偏移地址,与SS配合来确定堆栈在内存中的位置。压栈、出栈操作中隐含指示栈顶BP(基址指针寄存器)①保存16位数据②保存堆栈段内存储单元的偏移地址。SI(源变址寄存器)①保存16位数据②保存数据段内存储单元的偏移地址。串操作指令中,隐含与DS配合,确定源串在内存中的位置。DI(目的变址寄存器)①保存16位数据②保存数据段内存储单元的偏移地址。串操作指令中,隐含与ES配合,确定目标串在内存中的位置。2、指针和变址寄存器SP、BP、SI、DI第3章8086微型计算机系统3、段寄存器8086内部设置了4个16位的段寄存器,用于存放当前程序所用的各段的起始地址的高16位:CS(CodeSegment),称为代码段寄存器,存放当前执行的程序所在段的起始地址。其值乘以16再加上IP的值,就形成了下一条要取出指令所在的内存单元的物理地址。DS(DataSegment),称为数据段寄存器,存放当前数据段的起始地址。其值乘以16再加上指令中存储器寻址方式指定的偏移地址,就形成了要进行读/写的数据段中指定内存单元的物理地址。第3章8086微型计算机系统3、段寄存器SS(StackSegment),称为堆栈段寄存器,存放当前堆栈段的起始地址。堆栈是按照“后进先出”原则组织的一个特殊内存区域。堆栈操作数的地址由SS的值乘以16再加上SP的值形成。ES(ExtraSegment),称为附加段寄存器,存放当前附加段的起始地址。附加段是附加的数据段,也用于数据的保存,另外,串操作指令将附加段作为其目标操作数的存放区域。第3章8086微型计算机系统4、16位指令指针寄存器IP指令指针寄存器IP(InstructionPointer)存放当前代码段中的偏移地址,它与CS联用,可以形成下一条要取出指令的物理地址。程序不能直接对IP进行存取,但能在程序运行中被自动修改。例如,控制器取到要执行的指令后,会立刻修改IP值,使之指向下一条指令的首地址;转移、调用、返回等指令执行,就是通过修改IP的值来控制指令序列的执行流程的。第3章8086微型计算机系统5、标志寄存器FRFR是一个16位的寄存器。9个位用作标志位:状态标志位有6个,记录程序中运行结果的状态信息,是根据指令的运行结果由CPU自动设置的。这些状态信息通常作为后续转移指令的转移控制条件,所以也称为条件码。控制标志位有3个,可以编程设置,用于控制处理器执行指令的方式。控制标志设置之后,可对后面的操作产生控制作用。未标明的位在8086中不用。OF111512DF10IF9TF8SF7ZF65AF43PF21CF0第3章8086微型计算机系统OF111512DF10IF9TF8SF7ZF65AF43PF21CF0进位标志:指令执行后,如果运算结果在最高位上产生了一个进位或借位,则CF=1;否则,CF=0。CF5、标志寄存器FR—条件标志第3章8086微型计算机系统OF111512DF10IF9TF8SF7ZF65AF43PF21CF05、标志寄存器FR—条件标志奇偶标志:如果运算结果低八位1的个数为偶数,则PF