预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共86页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

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

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

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

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

第2章微处理器结构2.18086微处理器简介8086CPU内部功能结构图1.执行单元(EU)Intel8086CPU的执行单元EU中包含8个16位的内部寄存器、1个16位的运算器(ALU)与1个16位标志寄存器(Flag)以及内部控制逻辑三部分组成。EU不与外部总线相连,它负责执行指令。(1)内部寄存器①通用寄存器AX:累加器,在乘除法运算、串运算和I/O指令中均作为专用寄存器使用;BX:基址寄存器,在寻址时常用来存放基址;CX:计数寄存器,在循环和串操作指令中作为计数器使用;DX:数据寄存器,在寄存器间接寻址的I/O指令中存放I/O端口地址,在双字节乘除运算时,DX与AX共同存放一个32位双字节数据,其中DX存放高16位。②指针寄存器系统中有两个16位的指针寄存器。SP(StackPointRegister):堆栈指针寄存器BP(BasicPointRegister):基数指针寄存器,通常用于存放基地址,用来指示相对于起始地址的偏移量。BP和SP一般用于堆栈段。③变址寄存器系统中有两个16位的变址寄存器。SI(SourceIndexRegister):源变址寄存器。DI(DestinationIndexRegister):目的变址寄存器,可用作间接寻址、变址寻址和基址变址寻址的寄存器。(2)算数逻辑单元(ALU)及标志寄存器(Flag)算术逻辑单元(ALU)实际上就是计算机的运算器,进行各种运算。①算术运算:加、减、加1、减1、比较、求反、求补、乘、除运算;②逻辑运算:逻辑运算包括:逻辑与、逻辑或、逻辑非、逻辑异或以及移位、循环移位等运算和操作。标志寄存器FLAG是一个16位寄存器,使用其中的9位作为条件标志(状态标志)和控制标志。条件标志(6位)根据算数逻辑运算的结果由硬件自行设定,表示前一步操作执行以后,ALU所处的状态,后续操作可根据状态标志进行判断;控制标志(3位)由用户通过指令进行设定,用以对某一种特定的功能起控制作用,反映了人们对微机系统工作方式的可控制性。①条件标志(6位)CF(CarryFlag):进位标志位。PF(ParityFlag):奇偶标志位。AF(AuxiliaryCarryFlag):辅助进位标志位(半进位标志位)。ZF(ZeroFlag):零标志位。SF(SignFlag):符号标志位。OF(OverflowFlag):溢出标志位。进位标志CF(CarryFlag)8位二进制数相加:00111010+01111100=10110110十六进制表达:3A+7C=B6转换成十进制数:58+124=182没有产生进位:CF=0溢出标志OF(OverflowFlag)8位二进制数相加:00111010+01111100=10110110十六进制表达:3A+7C=B6转换成十进制数:58+124=182超出范围:OF=1进位和溢出的区别溢出标志的判断零标志ZF(ZeroFlag)符号标志SF(SignFlag)奇偶标志PF(ParityFlag)两正数相加(补码相加),结果为负数,显然运算产生了溢出,即超出了机器所能表示的范围故OF=1;SF=1;ZF=0;PF=1;CF=0;AF=1。②条件标志(3位)TF(TrapFlag):陷阱标志位。IF(Interrupt-enableFlag):中断允许标志位。DF(DirectionFlag):方向标志位。该标志由方向控制指令STI或CLI设置或清除。(3)内部控制逻辑内部控制逻辑用于实现EU内部控制,主要功能为从指令队列缓冲器中去除指令,并对指令进行译码,产生各种控制信号,控制各部件的协同工作,来完成指令的执行过程。2.总线接口单元(BIU)BIU负责CPU与存储器、I/O设备之间传送数据、地址、状态及控制信息。它由段寄存器(DS、CS、ES、SS)、16位指令指针寄存器IP(指向下一条要取出的指令代码)、20位地址加法器(用来产生20位地址)和6字节(8088为4字节)指令队列缓冲器等组成。(1)段地址寄存器访问存储器的物理地址由段地址和段内偏移地址两部分组成。段地址寄存器用来存放段地址,也称段寄存器。总线接口单元BIU有4个段寄存器。分别为:CS、DS、ES和SS。段寄存器用于存放段基地址值(16位无符号数)。CPU可以通过4个段寄存器访问存储器中4个不同的段(每段最大64K字节)。①CS(代码段寄存器)CS是存放当前执行程序所在段的段地址。CS的内容左移四位加上指令指针IP的内容就是下一条要执行的指令的地址。②DS(数据段寄存器)DS是存放当前使用数据的段地址。通常数据段用来存放各种数据。DS的内容左移四位加上按指令中存储器寻址方式计算出来的偏移地址,就是对数据段指定单元进行读写的地址。③ES(附加段寄存器)附加段经常在字符串操作时作为目的区使用,E