微机原理课件 第二章 8086系统结构.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:52 大小:5.1MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

微机原理课件 第二章 8086系统结构.ppt

微机原理课件第二章8086系统结构.ppt

预览

免费试读已结束,剩余 42 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第二章8086系统结构Intel8086CPU是16位微处理器,外型为双列直插式,有40个引脚。8086型微处理器的时钟频率为5MHz;它有16根数据线和20根地址线,直接寻址空间为220Byte,即为1MB。2-18086CPU结构一、8086CPU的内部结构(4)6字节指令队列:预放6个字节的指令代码。二、寄存器结构2.指针和变址寄存器8086/8088CPU中,有一组4个16位寄存器,它们是基址指针寄存器BP,堆栈指针寄存器SP,源变址寄存器SI,目的变址寄存器DI。这组寄存器存放的内容是某一段内地址偏移量,用来形成操作数地址,主要在堆栈操作和变址运算中使用。例2-1若当前SS=3500H,SP=4000H,说明堆栈段在存储器中的20位物理地址。5.标志寄存器PSW16位标志寄存器PSW用来存放运算结果的特征,常用作后续条件转移指令的转移控制条件。其中7位没有用,9个标志位分成两类:一类是状态标志,表示运算后结果的状态特征,它影响后面的操作。状态标志有6个:CF、PF、AF、ZF、SF和OF。另一类是控制标志,用来控制CPU操作,控制标志有3个:TF、IF和DF。2-28086CPU的引脚及其功能一、8086/8088CPU在最小模式中引脚定义112-38086存储器组织2.物理地址的形成8086系统将段地址放在段寄存器中,称为“段基址”。有4个段寄存器,分别位代码段寄存器CS,数据段寄存器DS,附加段寄存器ES和堆栈段寄存器SS。段内“偏移地址”指出了从段地址开始的相对偏移位置。它可以放在指令指针寄存器IP中,或16位通用寄存器中,如何从16位段地址和16位偏移地址得到20位地址呢?首先说明两个概念。逻辑地址:存储器的任一个逻辑地址由段基址和偏移地址组成,都是无符号的16位二进制数,程序设计时采用逻辑地址。物理地址:存储器的绝对地址,从00000H~FFFFFH,是CPU访问存储器的实际寻址地址。物理地址=段基址×16+偏移地址。3.逻辑地址来源由于访问存储器的操作类型不同,BIU所使用的逻辑地址来源也不同,取指令时,自动选择CS寄存器值作段基址,偏移地址由IP来制定,计算出取指令的物理地址。当堆栈操作时,段基址自动选择SS寄存器值,偏移地址由SP来制定。当进行读/写存储器操作数或访问变量时,则自动选择DS或ES寄存器值作为段基址,此时,偏移地址要由指令所给定的寻址方式来决定,可以是指令中包含的直接地址,可以是地址寄存器中的值,也可以是地址寄存器的值加上指令中的偏移量。注意的是当用BP作为基地址寻址时,段基址由堆栈寄存器SS提供,偏移地址从BP中取得。二、8086存储器的分体结构存储器中存放的信息称为存储单元的内容,例如存储单元10002H中的内容为22H,表示(10002H)=22H。一个字在存储器中按相邻两个字节存放,存入时以低位字节在低地址,高位字节在高地址的次序存放,字单元的地址以低位地址表示。例(10002H)=3322H,(10001H)=2211H在内存中放的位置如下图所示。CPU读/写一个字时,若字单元地址从偶地址开始,只需访问一次存储器,低位字节在偶地址单元,高位字节在奇地址单元。若字单元地址从奇地址开始,CPU要两次访问存储器,第一次取奇地址上数据(偶地址8位数据被忽略),第二次取偶地址上数据(奇地址8位数据被忽略),图2-11(c)、(d)给出了示意图。因此为了加快程序运行速度,编程时注意从存储器偶地址开始存放字数据,这种存放方式也称“对准存放”。三、堆栈的概念所谓堆栈是在存储器中开辟一个区域,用来存放需要暂时保存的数据。堆栈段是由段定义语句在存储器中定义的一个段,它可以在存储器1MB空间内浮动,堆栈容量小于等于64KB。段基址由堆栈寄存器SS指定,栈顶由堆栈指针SP指定,根据堆栈构成方式不同,堆栈指针SP指向的可以是当前栈顶单元,也可以是栈顶上的一个“空”单元,一般采用SP指向当前栈顶单元。堆栈的地址增长方式一般是向上增长,栈底设在存储器的高地址区,堆栈地址由高向低增长。★★★★堆栈的工作方式是“先进后出”,用入栈指令PUSH和出栈指令POP可将数据压入堆栈或从堆栈中弹出数据,栈顶指针SP的变化由CPU自动管理。堆栈以字为单位进行操作,堆栈中的数据项以低字节在偶地址,高字节在奇地址的次序存放。当执行PUSH指令时,CPU自动修改指针SP-2→SP。使SP指向新栈顶,然后将低位数据压入(SP)单元,高位数据压入(SP+1)单元。当执行POP指令时,CPU先将当前栈顶SP(低位数据)和SP+1(高位数据)中的内容弹出,然后再修改指