《chapter优秀课件》由会员分享,可在线阅读,更多相关《chapter优秀课件(36页珍藏版)》请在金锄头文库上搜索。
1、汇汇编语言程序设计编语言程序设计第二章第二章 80x86计算机组织计算机组织chapter优秀 计算机系统计算机系统 存储器存储器 中央处理机中央处理机 外部设备外部设备chapter优秀 教学目标教学目标存储器的分段管理机制CPU中的寄存器分类及其常用功能chapter优秀2.1计算机系统构成chapter优秀chapter优秀chapter优秀基本概念:KB 、MB字节、字、双字字节、字、双字多字节在存储器中的存储:高字节占高地址,低字节多字节在存储器中的存储:高字节占高地址,低字节占低地址。占低地址。两个字节单元构成一个字单元,字单元的地址以它的两个字节单元构成一个字单元,字单元的地址以
2、它的低地址来表示。举例:将低地址来表示。举例:将1234H 存入存入2000H字单元中。字单元中。chapter优秀存储器的管理8086/8088有20根地址线,可寻址的内存空间为1M,可是在16位的机器中,如何来提供20位的地址呢?采用存储器地址分段的方法。chapter优秀段的要求段段不能起始于任意地址,必须从任一不能起始于任意地址,必须从任一小段小段的首地址开始的首地址开始每个段最大为每个段最大为64K,为什么?为什么?小段:从小段:从0地址开始,每地址开始,每16个字节为一小段个字节为一小段00000,00001,0000E,0000F00010,00011,0001E,0001F .
3、 . .FFFF0,FFFF1,FFFFE,FFFFF其中,其中,第一列第一列就是每个小段的首地址。就是每个小段的首地址。小段首地址的特征:在小段首地址的特征:在16进制表示的地址中,最低位为进制表示的地址中,最低位为0(20位地址的低位地址的低4位为位为0)chapter优秀段的要求由于存储单元在段内的偏移地址也只能用由于存储单元在段内的偏移地址也只能用16位来位来表示,因此每个段最大为表示,因此每个段最大为64KBchapter优秀chapter优秀chapter优秀实模式实模式在实模式中内存被划分成段,每个段的大小为64KB,而这样的段地址可以用16位来表示。内存段的处理是通过和段寄存器
4、相关联的内部机制来处理的。chapter优秀保护模式保护模式在保护模式下,段是通过一系列被称之为“描述符表”的表所定义的。段寄存器存储的是指向这些表的指针。用于定义内存段的表有两种:全局描述符表(GDT)和局部描述符表(LDT)。chapter优秀chapter优秀chapter优秀寄存器(位于处理器内的寄存器(位于处理器内的“内存内存”)与程序执行有关的基本寄存器包括:8个通用寄存器(32bits).6个段寄存器(16位).1个标志(EFLAGS)寄存器(32bits).1个指令指针(EIP)寄存器(32bits).8位、16位及32位的不同称呼chapter优秀8086的通用寄存器8086
5、8086的的1616位通用寄存器是位通用寄存器是AX BXAX BX CX DX SI DI BP SP CX DX SI DI BP SP 其其中中前前4 4个个数数据据寄寄存存器器还还可可以以分分成成高高8 8位位和和低低8 8位位两两个独立的寄存器个独立的寄存器80868086的的8 8位通用寄存器是位通用寄存器是AH AL BH BL CH CL DH DLAH AL BH BL CH CL DH DL对其中某对其中某8 8位的操作,并不影响另外对应位的操作,并不影响另外对应8 8位的数据位的数据chapter优秀数据寄存器数数据据寄寄存存器器是是用用来来存存放放计计算算的的结结果果和
6、和操操作作数数,也也可可以以存存放地址放地址每个寄存器又有它们各自的专用目的每个寄存器又有它们各自的专用目的AXAX:(Accumulator)Accumulator)累累加加器器,使使用用频频度度最最高高,用用于于算算术术、逻辑运算以及与外设传送信息等逻辑运算以及与外设传送信息等BX:BX:(Base)(Base)基址寄存器,常用存放存储器地址基址寄存器,常用存放存储器地址CXCX:(Count)(Count)计计数数器器,作作为为循循环环和和串串操操作作等等指指令令中中的的隐隐含含计数器计数器DXDX:(Data)(Data)数数据据寄寄存存器器,常常用用来来存存放放双双字字长长数数据据的
7、的高高1616位,或存放外设端口地址位,或存放外设端口地址chapter优秀变址寄存器变址寄存器常用于存储器寻址时提供地址变址寄存器常用于存储器寻址时提供地址SISI:(Source Index)(Source Index)源变址寄存器源变址寄存器DIDI:(Destination Index)(Destination Index)目的变址寄存器目的变址寄存器串操作类指令中,串操作类指令中,SISI、DIDI具有特殊的功能具有特殊的功能chapter优秀指针寄存器指针寄存器用于寻址内存堆栈内的数据SP:(StackPointer)堆栈指针寄存器,指示栈顶的偏移地址BP:(BasePointer
8、)基址指针寄存器,表示数据在堆栈段中的基地址SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址chapter优秀堆栈(Stack)堆栈是主存中一个特殊的区域堆栈是主存中一个特殊的区域它它采采用用先先进进后后出出FILOFILO或或后后进进先先出出LIFOLIFO的的原原则则进进行行存存取操作,而不是随机存取操作方式取操作,而不是随机存取操作方式堆堆栈栈通通常常由由处处理理器器自自动动维维持持。在在80868086中中,由由堆堆栈栈段段寄存器寄存器SSSS和堆栈指针寄存器和堆栈指针寄存器SPSP共同指示共同指示chapter优秀指令指针IPIP:(Instruction)指令指针
9、寄存器,指示代码段中指令的偏移地址它与代码段寄存器CS联用,确确定定下下一一条条指指令令的的物物理地址理地址计算机通过CS:IP寄存器来控制指令序列的执行IP寄存器是一个专用寄存器chapter优秀chapter优秀标志(控制、程序状态字)寄存器标志(控制、程序状态字)寄存器标志寄存器中的标志分为两大类:标志寄存器中的标志分为两大类:条件码标志:用来记录程序中指令运行结果的状态信息,由条件码标志:用来记录程序中指令运行结果的状态信息,由CPU根据计算的结果自动设置。根据计算的结果自动设置。OF、SF、ZF、CF、AF、PF控制标志:由程序根据需要用指令来设置的,用来控制指令控制标志:由程序根据
10、需要用指令来设置的,用来控制指令的执行。的执行。DF、IF、TFchapter优秀CF 进位和借位标志进位和借位标志CF用于记录两个数相加或相减时,最高位最高位向外的进位或借位。表示表示无符号无符号数加减运算时结果超出数加减运算时结果超出范围。若范围。若CF=1表示此结果出错。表示此结果出错。若参与运算的数据为16位,则指D15位是否产生了进位或借位。若数据为8位,则指D7位是否产生了进位或借位。如果有进位或借位时,CF=1,否则,CF=0。0 1 1 1 1 0 0 0+ 1 1 0 0 0 1 01 1 0 0 1 1 1 1 0 1CF0 0 0 1 1 1 0 0+1 0 0 0 0
11、0 0 01 0 0 1 1 1 0 0CF0chapter优秀SF符号标志符号标志SF表示两个有符号数运算结果的符号数,加减运算时,最高位的值被复制到SF中。0 1 1 1 1 0 0 0+ 1 1 0 0 0 1 01 1 0 0 1 1 1 1 0 10 0 0 1 1 1 0 0+1 0 0 0 0 0 0 01 0 0 1 1 1 0 0 SFSFchapter优秀OF溢出标志溢出标志OF标志表示两个有符号数进行加减运算时,结果是否超出范围(溢出)。若超出范围,OF=1,否则,OF=0。加法中产生溢出的判断条件:两个加数的符号相同,而结果的符号与之相反。说明产生溢出。即:正+正=负负
12、+负=正两个加数的符号相反,不会产生溢出。为什么?0-128+127chapter优秀ZF零标志零标志如果运算结果为零,则ZF=1,否则,ZF=0。chapter优秀段寄存器(Segment)DS:(Data Segment)数据段寄存器,存放数据段数据段寄存器,存放数据段的首地址的的首地址的高高16位。位。ES:(Extra Segment)附加段寄存器,存放附加的附加段寄存器,存放附加的数据段的首地址的数据段的首地址的高高16位位SS:(Stack Segment)堆栈段寄存器,存放堆栈段堆栈段寄存器,存放堆栈段的首地址的的首地址的高高16位位CS:(Code Segment)代码段寄存器
13、,存放代码段代码段寄存器,存放代码段的首地址的高的首地址的高16位位chapter优秀chapter优秀chapter优秀chapter优秀授课要求熟练掌握熟练掌握8086/80888086/8088的结构的结构熟练掌握熟练掌握80868086寄存器组寄存器组熟练掌握实模式下的存储器的管理熟练掌握实模式下的存储器的管理熟悉掌握计算存储器物理地址的方法熟悉掌握计算存储器物理地址的方法chapter优秀 习题一、已知一个16个字节数组起始于逻辑地址F000:1070H,请问最后一个字节所在的物理地址?二、偏移地址2000H-2003H的4 个字节单元依次存放如下数据10H、20H、30H、40H,问偏移地址2000H处的字节、字和双字单元内容分别是什么?三、8086/8088确定下一条执行指令的物理地址的计算表达式为:chapter优秀习题四、某存储单元的逻辑地址为3A80:13EBH,其中3A80H是 地址,13EBH是 地址 ;此存储单元的物理地址为 。 若第一个地址改变为 30D4H,则此存储单元的第二个地址为 。五、在标志寄存器中,OF的作用是 ,ZF的作用是。六、8088具有20根地址线,所以其主存容量可达。chapter优秀