您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 第2章_计算机组织结构
§28086微计算机组织结构汇编语言程序设计主讲:刘政2009年3月第2章80X86计算机组织结构§28086微计算机组织结构两款用于工业的AllinOneCPU板PentiumCPU486CPU§28086微计算机组织结构28086CPU和寄存器组2.1计算机系统的构成2.1.1Intel8086CPU内部结构2.1.2寄存器组2.1.3标志寄存器2.2内存(存储器)组织2.3堆栈技术2.48086寻址方式2.5汇编语言程序设计过程§28086微计算机组织结构2.1计算机系统的构成P14硬件:中央处理机CPU总线控制逻辑接口接口存储器大容量存储器I/O设备I/O子系统系统总线......软件:系统软件用户软件计算机系统由硬件和软件两大部分组成§28086微计算机组织结构翻译程序机器语言汇编语言高级语言编译型高级语言解释型高级语言BASICCPASCALFORTRAN直接解释运行编译编译汇编翻译程序包括:汇编程序(masm)、解释程序和编译程序连接程序(linker):与库文件连接生成可执行文件装入程序(loader):用来把要执行的程序从外存传送到内存调试程序(debug):是系统提供的,用以监控用户程序的一种工具返回本章首页§28086微计算机组织结构2.1.1Intel8086CPU内部结构P14返回本章首页段寄存器通用寄存器控制寄存器§28086微计算机组织结构2.1.28086寄存器组P158086CPU寄存器分组§28086微计算机组织结构寄存器组数据寄存器共有4个寄存器AX、BX、CX、DX,每个16位寄存器可拆分成两个8位寄存器,用来保存操作数或运算结果等信息。AX寄存器称为累加器。使用频度最高,用于算术、逻辑运算以及与外设传送信息等。BX寄存器称为基址寄存器。常用于存放存储器地址。CX寄存器称为计数器。一般作为循环或串操作等指令中的隐含计数器。DX寄存器称为数据寄存器。常用来存放双字数据的高16位,或存放外设端口地址。1通用数据寄存器P15§28086微计算机组织结构变址和指针寄存器包括SI、DI、SP、BP4个16位寄存器,主要用于存放某个存储单元的偏移地址。SI是源变址寄存器,DI是目的变址寄存器,在字符串操作中,SI和DI都具有自动增量或减量的功能。SP为堆栈指针寄存器,用于存放当前堆栈段中栈顶的偏移地址;BP为基址指针寄存器,用于存放堆栈段中某一存储单元的偏移地址。2.变址和指针寄存器P15§28086微计算机组织结构3.段寄存器P168086CPU的4个16位的段寄存器分别称为代码段寄存器CS,数据段寄存器DS,堆栈段寄存器SS,附加数据段寄存器ES。段寄存器用来确定该段在内存中的起始地址。代码段用来存放程序的指令序列。CS存放代码段的段首址,指令指针寄存器IP指示代码段中指令的偏移地址。§28086微计算机组织结构4.指令指针P178086CPU中的指令指针IP,它总是保存下一次将要从主存中取出指令的偏移地址,偏移地址的值为该指令到所在段段首址的字节距离。在目标程序运行时,IP的内容由微处理器硬件自动设置,程序不能直接访问IP,但一些指令却可改变IP的值,如转移指令、子程序调用指令等。返回本章首页§28086微计算机组织结构2.1.3标志寄存器P158086CPU中有一个很重要的16位标志寄存器,它包含9个标志位,主要用于保存一条指令执行后,CPU所处状态信息及运算结果的特征。1.条件标志2.状态控制标志§28086微计算机组织结构标志寄存器(FLAGS/PSW)P151514131211109876543210条件码标志:控制标志:OF溢出标志DF方向标志SF符号标志IF中断标志ZF零标志TF陷阱标志CF进位标志AF辅助进位标志PF奇偶标志OFDFIFTFSFZFAFPFCF例:ADDAX,BXJO/JCERROR?§28086微计算机组织结构1.条件标志(1)进位标志CF(2)零标志ZF(3)符号标志SF(4)溢出标志OF(5)奇偶标志PF(6)辅助进位标志AF§28086微计算机组织结构2.状态控制标志(1)方向标志DF(2)中断允许标志IF(3)陷阱标志TF返回本章首页§28086微计算机组织结构2.2内存组织及存储器物理地址的形成2.2.1存储器2.2.2存储器单元的地址和内容2.2.3物理地址的形成返回本章首页§28086微计算机组织结构2.2.1存储器P17存储器是计算机的记忆部件,用来存放程序和数据。按所在的位置,存储器可以分成主存储器和辅助存储器,高速缓冲存储器。主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成,其成本高,容量小,但速度快。高速缓冲存储器(cache):速度高,容量小辅助存储器可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低,容量大,但速度较慢。返回本节§28086微计算机组织结构2.2.2存储器单元的地址和内容P18存储器以字节(8bit)为编程单位每个字节单元都有唯一的地址编码地址用无符号整数来表示(编程用十六进制表示)一个字要占用相继的两个字节低位字节存入低地址,高位字节存入高地址字单元地址用它的低地址来表示§28086微计算机组织结构图中表明了存储器中部分存储单元存放信息情况。从图中可看到,地址为34560H的字节的存储单元中的内容是34H,而地址为34561H的字节存储单元中的内容是12H。返回本节§28086微计算机组织结构2.2.3物理地址的形成P198086,80286的字长是16位。80386到PII机的字长为32位。8086,8088的地址线是20位的,这样最大可寻址空间应为220=1MB,其物理地址范围从00000H~FFFFFH。80286的地址总线宽度为24位80386,80486,Pentium的地址总线宽度为32位PentiumPro和PentiumII的地址总线宽度为36位§28086微计算机组织结构实模式存储器寻址P19实模式下的最大寻址空间为1MB,8086/8088只能在实模式下工作。逻辑地址=段地址:偏移地址1.存储器地址的分段根据要求可把1M字节地址空间划成若干逻辑段。每个逻辑段必须满足两个条件:一是逻辑段的起始地址(简称段首址)必须是16的倍数;二是逻辑段的最大长度为64K。按照这两个条件,1M字节地址空间最多可划分成64K个逻辑段,最少也要划分成16个逻辑段。逻辑段与逻辑段可以相连,也可以不连,还可以重叠。§28086微计算机组织结构【例2-1】各独立段的分配情况示例。P20设CS=B000H、DS=1CDEH、SS=4200H、ES=0150H,它们分别为代码段、数据段、堆栈段和附加段的段首址。自每个段首址开始,各段均占64KB的范围,各段之间互不重叠。如下图所示。§28086微计算机组织结构cs图2.1各段不重叠存储单元分配图§28086微计算机组织结构【例2-2】各段相互重叠情况示例。设CS=0200H、DS=0400H、SS=0480H,这样代码段、数据段和堆栈段的物理首地址分别为02000H、04000H和04800H。其中代码段占8KB地址空间,数据段占2KB,堆栈段占256B,SP=0100H。如下图所示。§28086微计算机组织结构图2.2各段重叠存储单元分配图§28086微计算机组织结构2.实模式寻址的物理地址=16d*段地址+偏移地址0000B16位段地址16位偏移地址20位物理地址返回本节§28086微计算机组织结构2.3堆栈技术1.堆栈描述P24堆栈是内存种的一块特定区域,先进后出、后进先出的存储空间,存储地址由高到低存放。堆栈指针SS:SP。2.堆栈操作堆栈操作遵循“先进后出、后进先出”的原则。例:SS=2000H,SP=100H,用PUSH指令将数据1234H压入栈,堆栈操作示意图如下。§28086微计算机组织结构堆栈段地址2000H:0000H2000H:0100H栈底地址SP……34H12H……内存堆栈指针SP2000H:00FEH进栈出栈入栈时,SP指针先减2,数据再入栈。出栈时,数据先出栈,SP指针再加2。返回本章首页§28086微计算机组织结构§2.480X86寻址方式和指令系统1、立即寻址2、寄存器寻址与存储器有关的寻址方式3、直接寻址4、寄存器间接寻址5、寄存器相对寻址6、基址变址寻址7、基址变址相对寻址跨段问题§28086微计算机组织结构8086CPU指令的共同的规律l大多数数据传送类指令、算术运算类指令、位操作类指令及串操作类指令,其双操作数指令有相同的语句格式和操作规定。语句格式[标号:]操作符OPD,OPS[;注释]OPD--目的操作数OPS--源操作数again:AX=0x1200;//c语言语句lagain:MOVAX,1200H;AX=1200H目的操作数源操作数标号助记符注释区§28086微计算机组织结构有效地址EA和物理地址PA存储器分段管理物理地址(PA,20位,与CPU的地址线宽度相等)、逻辑地址(LA,形如1000H:2000H)、四个段地址(SA,16位,包括CS、DS、ES、SS)、有效地址(EA,16位,又叫偏移地址)的关系:LA=SA:EA,我们使用逻辑地址编写程序,而计算机访问存储器时输出的是物理地址,即物理地址由逻辑地址形成:PA=SA*10H+EA§28086微计算机组织结构1立即寻址P26立即寻址方式中,指令操作码和操作数都在存储器代码段中。汇编格式:n(n为立即操作数,是用8位或16位二进制补码表示的有符号数)功能:操作数存放在存储器,指令下一单元的内容为立即操作数n。图形表示:例:ADDAX,100C语言:AX+=100;内存中的代码立即数§28086微计算机组织结构【例2.3】【例2.3】MOVAX,10;C语言AX=10;执行后(AX)=?该例中源操作数为立即寻址方式,立即数为10,存放在指令的下一单元。图形表示:执行:10→AX执行后:(AX)=000AH返回本节内存中的代码立即数10§28086微计算机组织结构2寄存器寻址P27寄存器寻址方式的操作数在指令指明的寄存器中。汇编格式:R其中R表示寄存器名。功能:操作数直接存放在寄存器R中。图形表示:R指令→操作数ADDAX,BXAX+=BX;//c语言内存中的代码R操作数§28086微计算机组织结构【例2.4】下列程序执行后,(AX)=?,(BX)=?MOVAX,1234HMOVBX,5678HADDAX,BX该程序中MOV指令为数据传送指令操作符,ADD指令为加法指令操作符,三条指令皆为双操作数指令。第一、二条指令中AX、BX为目的操作数,为寄存器寻址方式;源操作数为立即寻址。第三条指令中,AX为目的操作数地址,BX为源操作数地址。源地址和目的地址皆为寄存器寻址方式。§28086微计算机组织结构图形表示:MOVAX,1234HMOVBX,5678HADDAX,BX执行:1234H→AX5678H→BX(AX)+(BX)→AX执行后:(AX)=68ACH,(BX)=5678H返回本节§28086微计算机组织结构3直接寻址P28汇编格式:①含有变量的地址表达式。②段寄存器名:[EA]。功能:指令下一字单元的内容是操作数的偏移地址EA。图形表示:§28086微计算机组织结构【例2.5】寄存器和存储器内容为:(AX)=1212H,BUF为数据段定义的变量,其偏移地址是2000H,(DS)=3000H,(32000H)=45ABH。执行指令:MOVAX,BUF或MOVAX,[2000H]执行后:(AX)=?执行:(32000H)→AX执行后:(AX)=45ABH返回本节内存数据物理地址§28086微计算机组织结构4寄存器间接寻址P29寄存器间接寻址方式中,寄存器的内容为操作数的偏移地址EA,操作数在存储器中。汇编格式:[R]功能:操作数存放在存储器,寄存器R存放操作数的偏移地址EA。能够作为寄存器间接寻址的寄存器:基址寄存器:BX、BP和变址寄存器:SI、DI其中:[BX]、[S
本文标题:第2章_计算机组织结构
链接地址:https://www.777doc.com/doc-859671 .html