《汇编原理第二章IBMPC微型计算机.ppt》由会员分享,可在线阅读,更多相关《汇编原理第二章IBMPC微型计算机.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章第二章 IBM PC IBM PC 微型计算机微型计算机8086/8088CPU8086/8088CPU的基本结构的基本结构8086/8088CPU8086/8088CPU的寄存器组的寄存器组存贮器的分段结构存贮器的分段结构8086/8088CPU8086/8088CPU堆栈的组织堆栈的组织第一节第一节 IBM PC IBM PC 微型计算机的基本结构微型计算机的基本结构一、微型计算机系统一、微型计算机系统 微型计算机硬件组成微型计算机硬件组成 微 处 理 器ROMRAM输入设备输出设备I/O接口I/O接口数据总线 DB控制总线 CB第一节第一节 IBM PC IBM PC 微型计算机的
2、基本结构微型计算机的基本结构一、微型计算机系统一、微型计算机系统微型计算机微型计算机系统系统组成组成 寄存器组寄存器组算逻运算器算逻运算器控制电路控制电路微处理器微处理器随机存储器随机存储器RAM只读存储器只读存储器ROM存储器存储器输入输出接口输入输出接口并行接口并行接口串行接口串行接口数据总线数据总线地址总线地址总线控制总线控制总线系统总线系统总线微型计算机硬件微型计算机硬件操作系统操作系统 语言处理程序语言处理程序数据库系统数据库系统其它其它系统软件系统软件应用软件应用软件微型计算机软件微型计算机软件微型计算机微型计算机系统系统第一节第一节 IBM PC IBM PC 微型计算机的基本结
3、构微型计算机的基本结构二、二、8086/8088微处理器的功能结构微处理器的功能结构负责与负责与M、I/O端口传送数据端口传送数据负责指令负责指令的执行的执行第一节第一节 IBM PC IBM PC 微型计算机的基本结构微型计算机的基本结构二、二、8086/8088微处理器的功能结构微处理器的功能结构第二节第二节 8086/8088 8086/8088寄存器组寄存器组uAX寄存器称为寄存器称为累加器累加器。使用频度最高。使用频度最高。uBX寄存器称为寄存器称为基址寄存器基址寄存器。常用于存放存储器地址。常用于存放存储器地址。uCX寄寄存存器器称称为为计计数数器器。一一般般作作为为循循环环或或串
4、串操操作作等等指指令令中的隐含计数器。中的隐含计数器。uDX寄寄存存器器称称为为数数据据寄寄存存器器。常常用用来来存存放放双双字字数数据据的的高高16位,或存放外设端口地址。位,或存放外设端口地址。第二节第二节 8086/8088 8086/8088寄存器组寄存器组一、通用寄存器一、通用寄存器1、数据寄存器、数据寄存器AX、BX、CX、DX,用来保存操作数或运算,用来保存操作数或运算结果等信息。结果等信息。第二节第二节 8086/8088 8086/8088寄存器组寄存器组一、通用寄存器一、通用寄存器2、变址和指针寄存器、变址和指针寄存器SISI是是是是源变址寄存器源变址寄存器源变址寄存器源变
5、址寄存器,DIDI是是是是目的变址寄存器目的变址寄存器目的变址寄存器目的变址寄存器,在字符,在字符,在字符,在字符串操作中,串操作中,串操作中,串操作中,SISI和和和和DIDI都具有自动增量或减量的功能。都具有自动增量或减量的功能。都具有自动增量或减量的功能。都具有自动增量或减量的功能。SPSP为为为为堆栈指针寄存器堆栈指针寄存器堆栈指针寄存器堆栈指针寄存器,用于存放当前堆栈段中栈,用于存放当前堆栈段中栈,用于存放当前堆栈段中栈,用于存放当前堆栈段中栈顶的偏移地址。顶的偏移地址。顶的偏移地址。顶的偏移地址。BPBP为为为为基址指针寄存器基址指针寄存器基址指针寄存器基址指针寄存器,用于存放堆栈
6、段中某一存,用于存放堆栈段中某一存,用于存放堆栈段中某一存,用于存放堆栈段中某一存储单元的偏移地址。储单元的偏移地址。储单元的偏移地址。储单元的偏移地址。变址和指针寄存器包括变址和指针寄存器包括SI、DI、SP、BP 等个等个16位位寄存器,主要用于存放某个存储单元的偏移地址。寄存器,主要用于存放某个存储单元的偏移地址。第二节第二节 8086/8088 8086/8088寄存器组寄存器组二、段寄存器二、段寄存器 8086CPU的个的个16位的段寄存器位的段寄存器 代码段寄存器代码段寄存器CS,数据段寄存器数据段寄存器DS,堆栈段寄存器堆栈段寄存器SS,附加数据段寄存器附加数据段寄存器ES。段寄
7、存器用来确定该段在内存中的起始地址。段寄存器用来确定该段在内存中的起始地址。代码段用来存放程序的指令序列。代码段用来存放程序的指令序列。CS存存放放代代码码段段的的段段首首址址,指指令令指指针针寄寄存存器器IP指指示示代代码段中指令的偏移地址。码段中指令的偏移地址。第二节第二节 8086/8088 8086/8088寄存器组寄存器组三、指令指针寄存器三、指令指针寄存器8086CPU8086CPU中中的的指指令令指指针针IPIP,它它总总是是保保存存下下一一次次将将要要从从主主存存中中取取出出指指令令的的偏偏移移地地址址,偏偏移移地地址址的的值值为为该该指指令令到到所所在在段段段段首首址址的的字
8、节距离。字节距离。在在目目标标程程序序运运行行时时,IPIP的的内内容容由由微微处处理理器器硬硬件件自自动动设设置置,程程序序不不能能直直接接访访问问IPIP,但但一一些些指指令令却却可可改改变变IPIP的的值值,如如转转移移指指令令、子程序调用指令等。子程序调用指令等。第二节第二节 8086/8088 8086/8088寄存器组寄存器组四、标志寄存器四、标志寄存器FLAGS控制标志控制标志状态标志状态标志lCF进位标志,运算结果最高位是否发生进(借)位。CF=1进(借)位;CF=0无进(借)位lAF辅助进位标志,低4位向前有进(借)位。AF=1进(借)位;AF=0无进(借)位lZF零标志,指
9、出当前运算结果是否为0。ZF=1当前运算结果为0;否则为非0lSF符号标志,表示补码运算结果的正负号。SF=1负值;SF=0正值lOF溢出标志,运算结果是否溢出。OF=1结果超出运算长度的补码表示范围;OF=0无溢出lPF奇/偶标志,运算结果低8位中1的个数的奇偶数。PF=1运算结果低8位中1的个数为偶数;否则为奇数状态标志状态标志第二节第二节 8086/8088 8086/8088寄存器组寄存器组第二节第二节 8086/8088 8086/8088寄存器组寄存器组四、标志寄存器四、标志寄存器FLAGSFLAGS应用举例应用举例2345H+3219H=?2345H+3219H=?0010 00
10、11 0100 01010010 0011 0100 0101+0011 0010 0001 1001+0011 0010 0001 10010101 0101 0101 11100101 0101 0101 1110SF=0SF=0PF=0PF=0CF=0CF=0AF=0AF=0ZF=0ZF=0OF=0OF=034F5H+95EBH=?34F5H+95EBH=?0011 0100 1111 01010011 0100 1111 0101+1001 0101 1110 1011+1001 0101 1110 10111100 1010 1110 00001100 1010 1110 0000S
11、F=1SF=1PF=0PF=0CF=0CF=0AF=1AF=1ZF=0ZF=0OF=0OF=0第三节第三节 存储器存储器一、存储器的组成一、存储器的组成在存储器在存储器中中以字节为单位存储信息。为了正确地以字节为单位存储信息。为了正确地存放或取得信息存放或取得信息,每一个字节单元给以一个每一个字节单元给以一个唯一唯一的存的存储器地址储器地址,称为称为物理地址物理地址。80868086、80888088的地址总线为的地址总线为2020位位,那么它们可访问那么它们可访问的字节单元地址范围为的字节单元地址范围为:00000H00000HFFFFFHFFFFFH。一个存储单元中存放的信息称为该存储单元
12、的内一个存储单元中存放的信息称为该存储单元的内容容。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第三节第三节 存储器存储器一、存储器的组成一、存储器的组成存储器存储器第三节第三节 存储器存储器一、存储器的组成一、存储器的组成 一个字存入存储器要占有相继的一个字存入存储器要占有相继的两个字节两个字节,存放时存放时低位字节存低位字节存入入低地址低地址,
13、高位字节存高位字节存入入高地址高地址。一个字怎样存入一个字怎样存入存储器呢存储器呢?机器以机器以偶偶地址访问(读地址访问(读/写)存储器。写)存储器。字单元地址用它的字单元地址用它的低低地址来表示。地址来表示。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第三节第三节 存储器存储器一、存储器的组成一、存储器的组成存储器存储器 15 14 13 12
14、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 访问两次存储器访问两次存储器第三节第三节 存储器存储器二、存储器的分段二、存储器的分段16位的寄存器如位的寄存器如何寻址何寻址1MB的地的地址空间?址空间?可把可把 1M字节地址空间划成若干逻辑段。字节地址空间划成若干逻辑段。每个逻辑段必须满足两个条件:每个逻辑段必须满足两个条件:一是逻辑段的起始地址必须是一是逻辑段的起始地址必须是16的倍数;的倍数;二是逻辑段的最大
15、长度为二是逻辑段的最大长度为64K。1M1M字节地址空间最多可划分成字节地址空间最多可划分成字节地址空间最多可划分成字节地址空间最多可划分成64K64K个逻辑段,最少也要个逻辑段,最少也要个逻辑段,最少也要个逻辑段,最少也要划分成划分成划分成划分成1616个逻辑段。个逻辑段。个逻辑段。个逻辑段。逻辑段与逻辑段可以相连,也可以不连,还可以重叠。逻辑段与逻辑段可以相连,也可以不连,还可以重叠。逻辑段与逻辑段可以相连,也可以不连,还可以重叠。逻辑段与逻辑段可以相连,也可以不连,还可以重叠。第三节第三节 存储器存储器二、存储器的分段二、存储器的分段16位的寄存器如位的寄存器如何寻址何寻址1MB的地的地
16、址空间?址空间?可把可把 1M字节地址空间划成若干逻辑段。字节地址空间划成若干逻辑段。每个逻辑段必须满足两个条件:每个逻辑段必须满足两个条件:一是逻辑段的起始地址必须是一是逻辑段的起始地址必须是16的倍数;的倍数;二是逻辑段的最大长度为二是逻辑段的最大长度为64K。1M1M字节地址空间最多可划分成字节地址空间最多可划分成字节地址空间最多可划分成字节地址空间最多可划分成64K64K个逻辑段,最少也要个逻辑段,最少也要个逻辑段,最少也要个逻辑段,最少也要划分成划分成划分成划分成1616个逻辑段。个逻辑段。个逻辑段。个逻辑段。逻辑段与逻辑段可以相连,也可以不连,还可以重叠。逻辑段与逻辑段可以相连,也
17、可以不连,还可以重叠。逻辑段与逻辑段可以相连,也可以不连,还可以重叠。逻辑段与逻辑段可以相连,也可以不连,还可以重叠。第三节第三节 存储器存储器二、存储器的分段二、存储器的分段相连的段:相连的段:C C和和D D段段不相连的段:不相连的段:A A和和B B段段相互重叠的段:相互重叠的段:B B和和C C段段 第三节第三节 存储器存储器三、物理地址的形成三、物理地址的形成2020位物理地址由位物理地址由1616位段地址和位段地址和1616位偏移地址组成位偏移地址组成。物理地址物理地址:每个存储单元的唯一的每个存储单元的唯一的20位地址位地址 段基值段基值:段起始地址的高段起始地址的高16位位 偏
18、移量偏移量:段内相对于段起始地址的偏移值段内相对于段起始地址的偏移值 (16位)位)(有效地址有效地址 EA)物理地址物理地址 =16 段基值段基值+偏移量偏移量第三节第三节 存储器存储器三、物理地址的形成三、物理地址的形成2020位物理地址由位物理地址由1616位段地址和位段地址和1616位偏移地址组成位偏移地址组成。IBM PC中有4个专门存放段地址的段寄存器(16位)代码段代码段 段寄存器段寄存器 CS数据段数据段 段寄存器段寄存器 DS堆栈段堆栈段 段寄存器段寄存器 SS附加段附加段 段寄存器段寄存器 ES 例例:(DS)=3000H,EA=1234H,物理地址=16 (DS)+EA
19、=31234 H 存储器存储器 8K代码 2K数据 256堆栈02000H04800H04000H0200H0400H0480H逻辑段第三节第三节 存储器存储器三、物理地址的形成三、物理地址的形成物理地址:物理地址:C21A0H。第三节第三节 存储器存储器三、物理地址的形成三、物理地址的形成例:给定一个存放数据的内存单元的偏移例:给定一个存放数据的内存单元的偏移地址是地址是20C0H20C0H,(,(DSDS)=0C00EH=0C00EH,求出,求出该内存单元的物理地址。该内存单元的物理地址。第四节第四节 堆栈堆栈一、堆栈的组织一、堆栈的组织堆栈指针堆栈指针SP始终指向堆栈的顶部。始终指向堆栈的顶部。堆栈中存取数据的原则堆栈中存取数据的原则先进后出。先进后出。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、出栈、出栈过程:过程:R/M (SP)SP (SP)+2POP AXPOP DX
限制150内