《《IBMPC微型计算机》PPT课件》由会员分享,可在线阅读,更多相关《《IBMPC微型计算机》PPT课件(48页珍藏版)》请在金锄头文库上搜索。
1、第二章第二章 IBM PC IBM PC 微型计算机微型计算机8086/8088CPU8086/8088CPU的基本结构的基本结构8086/8088CPU8086/8088CPU的寄存器组的寄存器组存贮器的分段结构存贮器的分段结构8086/8088CPU8086/8088CPU堆栈的组织堆栈的组织第一节第一节 IBM PC IBM PC 微型计算机的基本结构微型计算机的基本结构一、微型计算机系统一、微型计算机系统1.1.微型计算机硬件组成微型计算机硬件组成 微 处 理 器ROMRAM输入设备输出设备I/O接口I/O接口数据总线 DB控制总线 CB地址总线AB第一节第一节 IBM PC IBM
2、PC 微型计算机的基本结构微型计算机的基本结构一、微型计算机系统一、微型计算机系统第一节第一节 IBM PC IBM PC 微型计算机的基本结构微型计算机的基本结构一、微型计算机系统一、微型计算机系统2.CPU2.CPU对存储器的操作对存储器的操作 l存储器被划分为若干个存储单元,每个存储单存储器被划分为若干个存储单元,每个存储单元从元从0开始顺序编号。开始顺序编号。例如:例如: 一个存储器有一个存储器有128个存储单元,个存储单元, 编号从编号从0127。 l对于大容量的存储器一般还用以下单对于大容量的存储器一般还用以下单位来计量容量(用位来计量容量(用B来代表来代表Byte)。)。1KB=
3、1024B1MB=1024KB1GB=1024MB 1TB=1024GB第一节第一节 IBM PC IBM PC 微型计算机的基本结构微型计算机的基本结构一、微型计算机系统一、微型计算机系统2.CPU2.CPU对存储器的操作对存储器的操作 l在计算机中专门有连接在计算机中专门有连接CPU和其他芯片的导和其他芯片的导线,通常称为总线。线,通常称为总线。l物理上:一根根导线的集合;物理上:一根根导线的集合;l逻辑上划分为:逻辑上划分为: l地址总线地址总线l数据总线数据总线l控制总线控制总线第一节第一节 IBM PC IBM PC 微型计算机的基本结构微型计算机的基本结构一、微型计算机系统一、微型
4、计算机系统2.CPU2.CPU对存储器的操作对存储器的操作 lCPU在内存中读或写的数据演示:在内存中读或写的数据演示:l读演示读演示l写演示写演示第一节第一节 IBM PC IBM PC 微型计算机的基本结构微型计算机的基本结构一、微型计算机系统一、微型计算机系统2.CPU2.CPU对存储器的操作对存储器的操作 lCPU在内存中读或写的数据演示:在内存中读或写的数据演示:l读演示读演示l写演示写演示第一节第一节 IBM PC IBM PC 微型计算机的基本结构微型计算机的基本结构一、微型计算机系统一、微型计算机系统微型计算机微型计算机系统系统组成组成 寄存器组寄存器组算逻运算器算逻运算器控制
5、电路控制电路微处理器微处理器随机存储器随机存储器RAM只读存储器只读存储器ROM存储器存储器输入输出接口输入输出接口并行接口并行接口串行接口串行接口数据总线数据总线地址总线地址总线控制总线控制总线系统总线系统总线微型计算机硬件微型计算机硬件操作系统操作系统 语言处理程序语言处理程序数据库系统数据库系统其它其它系统软件系统软件应用软件应用软件微型计算机软件微型计算机软件微型计算机微型计算机系统系统第一节第一节 IBM PC IBM PC 微型计算机的基本结构微型计算机的基本结构二、二、8086/8088微处理器的功能结构微处理器的功能结构负责与负责与M、I/O端口传送数据端口传送数据负责指令负责
6、指令的执行的执行第一节第一节 IBM PC IBM PC 微型计算机的基本结构微型计算机的基本结构二、二、8086/8088微处理器的功能结构微处理器的功能结构l一个典型的一个典型的CPU由运算器、控制器、寄存由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连。器等器件组成,这些器件靠内部总线相连。l内部总线实现内部总线实现CPU内部各个器件之间的联内部各个器件之间的联系。系。l外部总线实现外部总线实现CPU和主板上其它器件的联和主板上其它器件的联系。系。第二节第二节 8086/80888086/8088寄存器组寄存器组uAX寄存器称为寄存器称为累加器累加器。使用频度最高。使用频度最高
7、。uBX寄存器称为寄存器称为基址寄存器基址寄存器。常用于存放存储器地址。常用于存放存储器地址。uCX寄寄存存器器称称为为计计数数器器。一一般般作作为为循循环环或或串串操操作作等等指指令令中的隐含计数器。中的隐含计数器。uDX寄寄存存器器称称为为数数据据寄寄存存器器。常常用用来来存存放放双双字字数数据据的的高高16位,或存放外设端口地址。位,或存放外设端口地址。第二节第二节 8086/80888086/8088寄存器组寄存器组一、通用寄存器一、通用寄存器1、数据寄存器、数据寄存器AX、BX、CX、DX,用来保存操作数或运算用来保存操作数或运算结果等信息。结果等信息。l一个一个16位寄存器可以存储
8、一个位寄存器可以存储一个16位的数据。位的数据。(数据的存放情况数据的存放情况?)l一个一个16位寄存器所能存储的数据的最大值为位寄存器所能存储的数据的最大值为多少?多少? 答案:答案:216-1。第二节第二节 8086/80888086/8088寄存器组寄存器组一、通用寄存器一、通用寄存器1、数据寄存器、数据寄存器第二节第二节 8086/80888086/8088寄存器组寄存器组一、通用寄存器一、通用寄存器1、数据寄存器、数据寄存器l8086上一代上一代CPU中的寄存器都是中的寄存器都是8位的;位的;l为保证兼容性,这四个寄存器都可以分为两为保证兼容性,这四个寄存器都可以分为两个独立的个独立
9、的8位寄存器位寄存器使用。使用。lAX可以分为可以分为AH和和AL;lBX可以分为可以分为BH和和BL;lCX可以分为可以分为CH和和CL;lDX可以分为可以分为DH和和DL。第二节第二节 8086/80888086/8088寄存器组寄存器组一、通用寄存器一、通用寄存器1、数据寄存器、数据寄存器l以以AX为例,为例,8086CPU的的16位寄存器分为位寄存器分为两个两个8位寄存器的情况:位寄存器的情况:第二节第二节 8086/80888086/8088寄存器组寄存器组一、通用寄存器一、通用寄存器1、数据寄存器、数据寄存器第二节第二节 8086/80888086/8088寄存器组寄存器组一、通用
10、寄存器一、通用寄存器2、变址和指针寄存器变址和指针寄存器SISI是是是是源变址寄存器源变址寄存器源变址寄存器源变址寄存器,DIDI是是是是目的变址寄存器目的变址寄存器目的变址寄存器目的变址寄存器,在字符,在字符,在字符,在字符串操作中,串操作中,串操作中,串操作中,SISI和和和和DIDI都具有自动增量或减量的功能。都具有自动增量或减量的功能。都具有自动增量或减量的功能。都具有自动增量或减量的功能。SPSP为为为为堆栈指针寄存器堆栈指针寄存器堆栈指针寄存器堆栈指针寄存器,用于存放当前堆栈段中栈,用于存放当前堆栈段中栈,用于存放当前堆栈段中栈,用于存放当前堆栈段中栈顶的偏移地址。顶的偏移地址。顶
11、的偏移地址。顶的偏移地址。BPBP为为为为基址指针寄存器基址指针寄存器基址指针寄存器基址指针寄存器,用于存放堆栈段中某一存,用于存放堆栈段中某一存,用于存放堆栈段中某一存,用于存放堆栈段中某一存储单元的偏移地址。储单元的偏移地址。储单元的偏移地址。储单元的偏移地址。 变址和指针寄存器包括变址和指针寄存器包括SI、DI、SP、BP 等个等个16位位寄存器,主要用于存放某个存储单元的偏移地址。寄存器,主要用于存放某个存储单元的偏移地址。第二节第二节 8086/80888086/8088寄存器组寄存器组二、段寄存器二、段寄存器 8086CPU的个的个16位的段寄存器位的段寄存器 代码段寄存器代码段寄
12、存器CS, 数据段寄存器数据段寄存器DS, 堆栈段寄存器堆栈段寄存器SS, 附加数据段寄存器附加数据段寄存器ES。 段寄存器用来确定该段在内存中的起始地址。段寄存器用来确定该段在内存中的起始地址。 代码段用来存放程序的指令序列。代码段用来存放程序的指令序列。 CS存存放放代代码码段段的的段段首首址址,指指令令指指针针寄寄存存器器IP指指示示代代码段中指令的偏移地址。码段中指令的偏移地址。第二节第二节 8086/80888086/8088寄存器组寄存器组三、指令指针寄存器三、指令指针寄存器8086CPU8086CPU中中的的指指令令指指针针IPIP,它它总总是是保保存存下下一一次次将将要要从从主
13、主存存中中取取出出指指令令的的偏偏移移地地址址,偏偏移移地地址址的的值值为为该该指指令令到到所所在在段段段段首首址址的的字节距离。字节距离。在在目目标标程程序序运运行行时时,IPIP的的内内容容由由微微处处理理器器硬硬件件自自动动设设置置,程程序序不不能能直直接接访访问问IPIP,但但一一些些指指令令却却可可改改变变IPIP的的值值,如如转转移移指指令令、子程序调用指令等。子程序调用指令等。第二节第二节 8086/80888086/8088寄存器组寄存器组四、标志寄存器四、标志寄存器FLAGS1515141413131212111110109 98 87 76 65 54 43 32 21 1
14、0 0OFOFDFDFIFIFTFTFSFSFZFZFAFAFPFPFCFCF控制标志控制标志状态标志状态标志lCF (cy/nc) 进位标志,运算结果最高位是否发生进进位标志,运算结果最高位是否发生进(借借)位。位。 CF =1 (cy)进(借)位;)进(借)位;CF =0 (nc)无进(借)位。)无进(借)位。lAF(ac/na)辅助进位标志,低辅助进位标志,低4位向前有进位向前有进(借借)位。位。 AF =1 (ac)进(借)位;)进(借)位;AF =0 (na)无进(借)位。)无进(借)位。lZF(zr/nz) 零标志,指出当前运算结果是否为零标志,指出当前运算结果是否为0。 ZF=1
15、 (zr)当前运算结果为)当前运算结果为0;否则为非;否则为非0 (nz)。)。lSF(ng/pl)符号标志,表示补码运算结果的正负号。符号标志,表示补码运算结果的正负号。 SF=1(ng)负值;)负值;SF=0(pl)正值。)正值。lOF(ov/nv)溢出标志,运算结果是否溢出。溢出标志,运算结果是否溢出。 OF=1(oc)结果超出运算长度的补码表示范围;)结果超出运算长度的补码表示范围;OF=0(nv)无溢出。)无溢出。lPF(pe/po)奇奇/偶标志,运算结果低偶标志,运算结果低8位中位中1的个数的奇偶数。的个数的奇偶数。 PF=1(pe)运算结果低)运算结果低8位中位中1的个数为偶数;
16、否则为奇数(的个数为偶数;否则为奇数(po)。)。状态标志状态标志第二节第二节 8086/80888086/8088寄存器组寄存器组lDF(dn/up)方向标志位,方向标志位,DF=1(dn)使串操作)使串操作指令的变址寄存器自动减指令的变址寄存器自动减1, DF=1(up)使串操作)使串操作指令的变址寄存器自动加指令的变址寄存器自动加1lIF(ei/di)允许中断标志位,允许中断标志位,IF=1(ei),开中断,),开中断,可响应可屏蔽中断,可响应可屏蔽中断,IF=0(di),关中断。),关中断。状态标志状态标志第二节第二节 8086/80888086/8088寄存器组寄存器组第二节第二节
17、8086/80888086/8088寄存器组寄存器组四、标志寄存器四、标志寄存器FLAGSFLAGS应用举例应用举例2345H+3219H=?2345H+3219H=?0010 0011 0100 01010010 0011 0100 0101+ 0011 0010 0001 1001+ 0011 0010 0001 10010101 0101 01010101 01010101 1110 1110SF=0SF=0PF=0PF=0CF=0CF=0AF=0AF=0ZF=0ZF=0OF=0OF=034F5H+95EBH=?34F5H+95EBH=?0011 0100 1111 01010011 0
18、100 1111 0101+ 1001 0101 1110 1011+ 1001 0101 1110 10111100 1010 1110 00001100 1010 1110 0000SF=1SF=1PF=0PF=0CF=0CF=0AF=1AF=1ZF=0ZF=0OF=0OF=0第三节第三节 存储器存储器一、存储器的组成一、存储器的组成在存储器在存储器中中以字节为单位存储信息。为了正确地以字节为单位存储信息。为了正确地存放或取得信息存放或取得信息,每一个字节单元给以一个每一个字节单元给以一个唯一唯一的存的存储器地址储器地址,称为称为物理地址物理地址。80868086、80888088的地址总
19、线为的地址总线为2020位位,那么它们可访问那么它们可访问的字节单元地址范围为的字节单元地址范围为:0 00000000 0H HFFFFFHFFFFFH。一个存储单元中存放的信息称为该存储单元的内一个存储单元中存放的信息称为该存储单元的内容容。 7 6 5 4 3 2 1 00000H 1 0 0 1 1 1 1 1 (0000H)=9FH0001H 0 0 1 0 0 1 1 0 (0001H)=26H0002H 0 0 0 1 1 1 1 0 (0002H)=1EH0003H 1 1 0 1 0 1 1 1 (0003H)=D7H第三节第三节 存储器存储器一、存储器的组成一、存储器的组成
20、存储器存储器第三节第三节 存储器存储器一、存储器的组成一、存储器的组成 一个字存入存储器要占有相继的一个字存入存储器要占有相继的两个字节两个字节,存放时存放时低位字节存低位字节存入入低地址低地址,高位字节存高位字节存入入高地址高地址。一个字怎样存入一个字怎样存入存储器呢存储器呢?机器以机器以偶偶地址访问(读地址访问(读 / / 写)存储器。写)存储器。字单元地址用它的字单元地址用它的低低地址来表示。地址来表示。 7 6 5 4 3 2 1 00000H 1 0 0 1 1 1 1 1 (0000H)=9FH0001H 0 0 1 0 0 1 1 0 (0001H)=26H0002H 0 0 0
21、 1 1 1 1 0 (0002H)=1EH0003H 1 1 0 1 0 1 1 1 (0003H)=D7H第三节第三节 存储器存储器一、存储器的组成一、存储器的组成存储器存储器 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0字字1 0 0 1 1 1 1 10 0 1 0 0 1 1 0 高位字节高位字节 低位字节低位字节(0000H)=269FH(0002H)=D71EH(0001H)=1E26H 访问两次存储器访问两次存储器l问题:问题:l(1)0地址单元中存放的字节地址单元中存放的字节型数据是多少?型数据是多少?l(2)0地址字单元中存放的字地址字单元中存
22、放的字型数据是多少?型数据是多少?l(3)2地址字单元中存放的字地址字单元中存放的字节型数据是多少?节型数据是多少?l(4)2地址单元中存放的字型地址单元中存放的字型数据是多少?数据是多少?l(5)1地址字单元中存放的字地址字单元中存放的字型数据是多少?型数据是多少?第三节第三节 存储器存储器一、存储器的组成一、存储器的组成第三节第三节 存储器存储器二、存储器的分段二、存储器的分段16位的寄存器如位的寄存器如何寻址何寻址1MB的地的地址空间?址空间?可把可把 1M字节地址空间划成若干逻辑段。字节地址空间划成若干逻辑段。每个逻辑段必须满足两个条件:每个逻辑段必须满足两个条件: 一是逻辑段的起始地
23、址必须是一是逻辑段的起始地址必须是16的倍数;的倍数; 二是逻辑段的最大长度为二是逻辑段的最大长度为64K。 1M1M字节地址空间最多可划分成字节地址空间最多可划分成字节地址空间最多可划分成字节地址空间最多可划分成64K64K个逻辑段,最少也要个逻辑段,最少也要个逻辑段,最少也要个逻辑段,最少也要划分成划分成划分成划分成1616个逻辑段。个逻辑段。个逻辑段。个逻辑段。逻辑段与逻辑段可以相连,也可以不连,还可以重叠。逻辑段与逻辑段可以相连,也可以不连,还可以重叠。逻辑段与逻辑段可以相连,也可以不连,还可以重叠。逻辑段与逻辑段可以相连,也可以不连,还可以重叠。第三节第三节 存储器存储器二、存储器的
24、分段二、存储器的分段相连的段:相连的段:C C和和D D段段不相连的段:不相连的段:A A和和B B段段相互重叠的段:相互重叠的段:B B和和C C段段 第三节第三节 存储器存储器三、物理地址的形成三、物理地址的形成2020位物理地址由位物理地址由1616位段地址和位段地址和1616位偏移地址组成位偏移地址组成。 物理地址物理地址: 每个存储单元的唯一的每个存储单元的唯一的20位地址位地址 段基值段基值: 段起始地址的高段起始地址的高16位位 偏移量偏移量: 段内相对于段起始地址的偏移值段内相对于段起始地址的偏移值 (16位)位)(有效地址有效地址 EA) 物理地址物理地址 = 16 段基值段
25、基值 + 偏移量偏移量第三节第三节 存储器存储器三、物理地址的形成三、物理地址的形成2020位物理地址由位物理地址由1616位段地址和位段地址和1616位偏移地址组成位偏移地址组成。 IBM PC中有4个专门存放段地址的段寄存器(16位)代码段代码段 段寄存器段寄存器 CS数据段数据段 段寄存器段寄存器 DS堆栈段堆栈段 段寄存器段寄存器 SS附加段附加段 段寄存器段寄存器 ES 例例:(DS) = 3000H, EA = 1234H, 物理地址 = 16 (DS) + EA = 31234 H 存储器存储器 8K代码 2K数据 256堆栈02000H04800H04000H0200H0400
26、H0480H逻辑段第三节第三节 存储器存储器三、物理地址的形成三、物理地址的形成第三节第三节 存储器存储器三、物理地址的形成三、物理地址的形成第三节第三节 存储器存储器三、物理地址的形成三、物理地址的形成物理地址:物理地址:C21A0H。第三节第三节 存储器存储器三、物理地址的形成三、物理地址的形成例:给定一个存放数据的内存单元的偏移例:给定一个存放数据的内存单元的偏移地址是地址是20C0H20C0H,(,(DSDS)=0C00EH=0C00EH,求出,求出该内存单元的物理地址。该内存单元的物理地址。l错误认识:错误认识:l内存被划分成了一个一个的段,每一个段有内存被划分成了一个一个的段,每一
27、个段有一个段地址。一个段地址。l其实:其实:l内存并没有分段,段的划分来自于内存并没有分段,段的划分来自于CPU,由于,由于8086CPU用用“(段地址(段地址1616)+ +偏移地址偏移地址= =物理地址物理地址”的方式给出内存单元的物理地址,使得我们可以的方式给出内存单元的物理地址,使得我们可以用分段的方式来管理内存。用分段的方式来管理内存。第三节第三节 存储器存储器三、物理地址的形成三、物理地址的形成第三节第三节 存储器存储器三、物理地址的形成三、物理地址的形成l问题一:观察下面的地址,有什么发现?l结论:CPU可以用不同的段地址和偏移地址形成同一个物理地址。第三节第三节 存储器存储器三
28、、物理地址的形成三、物理地址的形成l问题二:如果给定一个段地址,仅通过变化问题二:如果给定一个段地址,仅通过变化偏移地址来进行寻址,最多可以定位多少内偏移地址来进行寻址,最多可以定位多少内存单元?存单元?l结论:偏移地址结论:偏移地址16位,变化范围为位,变化范围为0FFFFH,仅用偏移地址来寻址最多可寻仅用偏移地址来寻址最多可寻64K个内存单元。个内存单元。l比如:给定段地址比如:给定段地址1000H,用偏移地址寻址,用偏移地址寻址,CPU的寻址范围为:的寻址范围为:10000H1FFFFH。第四节第四节 堆栈堆栈一、堆栈的组织一、堆栈的组织堆栈指针堆栈指针SP始终指向堆栈的顶部。始终指向堆
29、栈的顶部。堆栈中存取数据的原则堆栈中存取数据的原则先进后出。先进后出。LIFOFIFO第四节第四节 堆栈堆栈二、二、8086/8088的堆栈操作的堆栈操作1、设置堆栈、设置堆栈STACK1 SEGMENT PARA STACKDB 100 DUP(?)STACK1 ENDS第四节第四节 堆栈堆栈二、二、8086/8088的堆栈操作的堆栈操作2、进栈、进栈过程:过程:SP(SP)2 SP 数据数据PUSH AXPUSH DX第四节第四节 堆栈堆栈二、二、8086/8088的堆栈操作的堆栈操作2、进栈、进栈第四节第四节 堆栈堆栈二、二、8086/8088的堆栈操作的堆栈操作2、进栈、进栈l问题:如果我们将问题:如果我们将10000H1000FH 这段空这段空间当作栈,初始状态栈是空的,此时,间当作栈,初始状态栈是空的,此时,SS=1000H,SP=?lSP = 0010H第四节第四节 堆栈堆栈二、二、8086/8088的堆栈操作的堆栈操作2、进栈、进栈第四节第四节 堆栈堆栈二、二、8086/8088的堆栈操作的堆栈操作2、出栈、出栈过程:过程: R/M (SP) SP (SP)+2POP AXPOP DX第四节第四节 堆栈堆栈二、二、8086/8088的堆栈操作的堆栈操作2、出栈、出栈