如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第二章微处理器第一节Intel8086的结构AHALBHBLCHCLDHDLSPBPSIDI一、总线接口单元BIU(BusInterfaceUnit)二、执行单元EU(ExecutionUnit)第二节8086的寄存器结构2.指针寄存器(1)SP堆栈指针寄存器(StackPointer)/ESP访问堆栈(一块内存区域)SS:段地址,SP:偏移地址。(2)BP基数指针寄存器(BasePointer)/EBP通过堆栈传送数据和地址段地址:SS,偏移地址:BP。3.变址寄存器(1)SI源变址寄存器(SourceIndex)/ESI字符串操作DS:段地址,SI:字符串源地址。(2)DI目的变址寄存器(DestinationIndex)/EDI字符串操作ES:段地址,DI:字符串目的地址。6二、段寄存器代码段对内存单元进行寻址,数据段每个段寻址64K,段首址放堆栈段在段寄存器中,单位为24,附加段代表20位地址,低四位为0。1.CS代码段寄存器(CodeSegment)存放当前执行程序所在段首址,CS内容左移四位再加上指令指针寄存器IP内容即下一条指令的地址。2.DS数据段寄存器(Data)含有当前数据段首址,数据段中存放数据和变量,DS内容加上指令中的偏移值,即为对数据段指定单元操作的地址。3.SS堆栈段寄存器(Stack)保存当前堆栈段首址。4.ES附加段寄存器(Extra)进行字符串操作时,作为目的段地址使用,是附加的数据段。5.FS、GS附加段寄存器(Extra)是从80386CPU开始引入的附加的数据段。三、控制寄存器1.IP指令指针寄存器(InstructionPointer)/EIP存放下一条指令的偏移地址,段地址放CS。2.Flags或PSW标志寄存器(Flags)/EFLAGS存放运算结果的状态。16位标志寄存器:6位状态标志3位控制标志(4)符号标志SF(SignFlag)与最高位相同,1表示负,0表示正。(5)奇偶标志PF(ParityFlag)1的个数为偶数PF=1,否则PF=0。(6)零标志ZF(ZeroFlag)运算结果为0,ZF=1,否则ZF=0。(7)方向标志DF(DirectionFlag)控制串操作指令用的标志。DF=1串操作中地址自动减量DF=0串操作中地址自动增量(1)辅助进位标志AF(AuxitiaryCarryFlag)字节操作:低4位向高4位的进位或借位字操作:低8位向高8位的进位或借位(2)进位标志CF(CarryFlag)最高位产生的进位或借位(3)溢出标志OF(OverflowFlag)字节操作运算结果超出-128~+127字操作运算结果超出-32768~+32767OF=1(8)中断允许标志IF(Interrupt-enableFlag)控制可屏蔽中断标志。IF=1允许CPU接受外部可屏蔽中断请求IF=0屏蔽外部可屏蔽中断请求(9)跟踪标志TF(TraceFlag)使CPU进入单步执行方式。TF=1CPU在每条指令执行后,产生一个内部中断,允许程序在每条指令执行后进行检查。第三节存储器组织段的划分由CS,DS,SS,ES给出,它们为16位,代表20位,低4位为0。二、物理地址与逻辑地址1.物理地址与逻辑地址(1)物理地址内存单元的实际地址,也就是出现在地址总线上的地址。(2)逻辑地址或称分段地址记作段地址:段内偏移地址2.物理地址的形成段地址表示段在内存中的起始位置,通常被保存在某个段寄存器中,16位。段内偏移地址表示内存单元相对于段起始位置的位移,简称偏移地址,也叫有效地址EA,16位。系统采用下列方法将逻辑地址自动转换为20位的物理地址:物理地址=段地址×16+偏移地址例:(1)得到指令地址,CS内容左移4位,加上IP。(2)堆栈操作,SS内容左移4位加SP(3)取操作数,DS内容左移4位,加上偏移量(指令中给出)存储单元地址格式段地址:偏移地址如:2915H:0100H物理地址=2915H*10H+0100H=29250H注:每个内存单元具有唯一的物理地址,但可由不同的逻辑地址描述。三、段寄存器使用代码段CS:存程序指令代码数据段DS:存数据,变量堆栈段SS:用作堆栈附加段ES:附加数据区或字符串处理中目的地(1)若程序所需数据,堆栈,代码空间一共不超过64K,可使CS,DS,SS相等(2)若程序所需数据,堆栈,代码空间各不超过64K,分别置CS,DS,SS的值(3)若程序数据区超过64K,要求从多个不同区域存取数,则每次存取在不同段内数据前,需给DS置适当的值。7