计算机组成 指令 系统 汇编语言

上传人:sx****84 文档编号:243385405 上传时间:2024-09-22 格式:PPT 页数:75 大小:816KB
返回 下载 相关 举报
计算机组成 指令 系统 汇编语言_第1页
第1页 / 共75页
计算机组成 指令 系统 汇编语言_第2页
第2页 / 共75页
计算机组成 指令 系统 汇编语言_第3页
第3页 / 共75页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,计算机组成原理,第,5,章 指令、指令系统和汇编语言程序设计,指令:,是计算机运行的最小的功能单元,是指挥计算机硬件运行的命令,是由二进制位组成的位串,是计算机硬件可以直接识别和执行的一个信息体。指令用于程序设计人员告知计算机执行一个最基本运算、处理功能。,指令系统:,一台计算机提供的全部指令构成该计算机的,指令系统,。多条指令可以组成一个程序,完成一项预期的任务。,5.1,指令系统概述,2,汇编语言层,操作系统层,指令系统层,微体系结构层,数字逻辑层,高级语言层,应用层,计算机系统的层次结构,指令系统层,处在硬件系统和软件系统之间,是硬、软件之间的接口部分。,硬件系统,负责用于实现每条指令的功能,解决指令之间的连接关系;,软件,由按一定规则组织起来的许多条指令组成,完成一定的数据运算或者事务处理功能。,指令系统优劣是一个计算机系统是否成功的关键因素,同时也是设计一台计算机的起点和基本依据。,微体系结构层,软 件 系 统,硬 件 系 统,回顾:指令系统在计算机中的地位,3,设计指令系统的四点要求:,完备性,:,指令齐全,编程方便。,规整性,:,指令和数据的使用规则统一简单,易学易记,高效性,:,占内存少,运行省时。,兼容性,:,同一系列机软件兼容,对设计指令系统的要求,对指令系统的要求很严格,既要支持程序设计人员,用它设计各种程序,,,越简单、方便越好,(,相同算法实现所需的指令少,),,又要容易在计算机中,用硬件实现这些指令的处理功能,,,越节省、高效越好,,但这两个方面的要求经常是有矛盾的。,4,3,个层次的程序设计语言,机器语言,是计算机,硬件能直接识别和运行的指令,的集合,是二进制码组成的指令,用机器语言设计程序,基本不可行,。,汇编语言,是对计算机机器语言进行符号化处理的结果,再增加一些为方便程序设计而实现的扩展功能。依赖编译器但效率很高。,高级语言,又称算法语言,它的实现思路,不再是过分地,“,靠拢,”,计算机硬件的指令系统,而是着重面向解决实际问题所用的算法,瞄准的是如何使程序设计人员能够方便地写出处理问题和解题过程的程序,力争使程序设计工作的效率更高。对编译器的效率要求很高。,5,确定指,令系统的两种思路,从降低硬件系统构成的复杂程度、提高指令执行的速度和并行性考虑,确定指令系统时有两种思路:,CISC,(,Complex Instruction Set Computer,)(,intel x86),通常称为复杂指令系统的计算机。其核心思想是:为了提高效率,让硬件做更多的事情。,其特点是:,指令条数多,,,格式多样,,,寻址方式复杂,,每条,指令的功能强,,优点是汇编程序设计容易些,但计算机控制器的,实现困难多(,Intel 4G,处理器的流产,/Power PC,),,很多指令被使用的机会比较少。,指令并行度差,。,RISC,(,Reduced Instruction Set Computer,),(MIPS/POWER PC),通常称为精简指令系统的计算机。,约翰,.,科克,( John Cocke ),提出了著名的“,20%-80%,定律”,(,即只有,20%,简单的指令是经常使用的,而其余,80%,的复杂指令却很少使用,),这是,RISC,技术的设计基础。,其核心思想是:让软件做更多的事情,提高简单指令的执行效率。(,Alpha,处理器),提供,数目较少,、,格式与功能简单,、,运行高效,的指令,追求的是计算机控制器实现简单,运行高速,更容易在单块超大规模集成电路的芯片内制做出来。,指令并行性好(多发射技术),。,融合趋势 :,CISC,和,RISC,融合的趋势,6,CISC,指令和,RISC,指令举例,CISC,架构乘法指令:,MUL ADDRA, ADDRB,可以将内存地址为,ADDRA,和,ADDRB,中的数相乘并将结果储存在,ADDRA,中。它完成的操作首先将,ADDRA, ADDRB,中的数据读入寄存器,相乘和将结果写回内存的操作全部依赖于,CPU,中设计的逻辑来实现。,这种架构会增加,CPU,结构的复杂性和对,CPU,工艺的要求,但对于编译器的开发十分有利。比如上面的例子,,C,程序中的,a*=b,就可以直接编译为一条乘法指令。,RISC,架构只支持简单寄存器乘法指令,MUL A, B,。,RISC,上实现相同的功能:,MOV A, ADDRA; MOV B, ADDRB; MUL A, B; STR ADDRA, A,。共需要,4,条指令。,这种架构可以降低,CPU,的复杂性以及允许在同样的工艺水平下生产出功能更强大的,CPU,,但对于编译器的设计有更高的要求。,7,指令格式,-,指令表示,指令字,:代表指令的一组二进制代码信息;,指令字长,:指令字中二进制代码的位数。,位数越多,所能表示的操作信息和地址信息也就越多,使指令功能丰富。但会占用存储空间多,读取指令的时间可能增加。,指令基本格式:一般由操作码和操作对象两部分组成,操作对象指一个或多个地址码。,OP,A 0,A 1,8,指令表示,操作码:,用来指明该指令所要完成的操作,如加法、减法、传送、移位、转移等等。,位数反映了机器的操作种类,也即机器允许的指令条数,如果操作码有,n,位二进制数,则最多可表示,2,n,种指令。,地址码:,用来寻找运算所需要的操作数(源操作数和目的操作数)。,地址码包括:源操作数地址、目的操作数地址和下一条指令的地址。,地址含义:主存的地址、寄存器地址或者,I/O,设备地址。,9,指令字长与机器字长的关系,机器字长,是指计算机能直接处理的二进制数据的位数,它与计算机的功能和用途有很大的关系,是计算机的一个重要技术指标。首先,字长决定了计算机的运算精度,字长越长计算机的运算精度越高,因此高性能的计算机字长较长。,指令的长度与机器的字长没有固定的关系,它既可以小于或等于机器的字长,也可以大于机器的字长,(,增加取指时间,),。前者称为短格式指令,后者称为长格式指令。一条指令存放在地址连续的存储单元中。同一台计算机中可能既有短格式指令又有长格式指令,但通常是把最常用的指令(如算术逻辑运算指令、数据传送指令)设计成短格式指令,以便节省存储空间和提高指令的执行速度。,10,指令的长度主要取决于操作码的长度、操作数地址的长度和操作数地址的个数。由于操作码的长度、操作数地址的长度及指令格式不同,各指令的长度不是固定的,指令的长度通常为字节的整数倍。,地址码长度决定了指令直接寻址能力,若为,n,位,则给出的,n,位直接地址寻址,2,n,字节。这对于字长较短(,8,位或,16,位)的微型机来说远远满足不了实际需要,扩大寻址能力的方法,一是通过增加机器字长来增加地址码的长度;二是采用地址扩展技术,把存储空间分成若干个段,用基地址加位移量的方法来增加地址码的长度。,在,Pentium,系列机中,指令格式也是可变的:由,8,位、,16,位、,32,位、,64,位不等。,11,5.1.1,操作码组织与编码,定长的操作码的组织方案,在指令字最高位部分分配固定若干位用于表示操作码。,这种格式便于硬件设计,指令译码时间短,广泛应用于字长较长的、大中型计算机和超级小型计算机以及,RISC,(,Reduced Instruction Set Computer,)中。如,IBM370,和,VAX-11,系列机,操作码长度均为,8,位。,变长的操作码的组织方案,(,扩展操作码,),不同的指令操作码的位数可以变化,称可变长操作码。,使用频度高的指令,采用较短的操作码,使用频度低的指令,采用较长的操作码,使得指令系统的操作码平均长度得到压缩。,由于这种格式可有效地压缩操作码的平均长度,在字长较短的微机中被广泛采用。如,PDP-11,,,Intel8086/80386,等。,12,假设某机器的指令长度为,16,位,包括,4,位基本操作码和三个,4,位地址码段。,15,12 11,8 7,4 3,0,OP A1 A2 A3,4,位基本操作码可表示,16,个状态,,如用,4,位操作码,则能表示,16,条,三地址,指令,,若用,8,位操作码,则可表示,256,条,二地址,指令,,而用,12,位操作码,则可表示,4096,条,一地址,指令,,若,16,位全用作操作码,则可表示,65536,条,零地址,指令,指令操作码的扩展技术,13,操作码扩展:指令字长,16,位,可含有,3,、,2,、,1,或,0,个地址,每个地址占,4,位。,操作码 地址码,15 12 11 8 7 4 3 0,0000,X,Y,Z,1110,X,Y,Z,.,.,.,.,1111,0000,Y Z,1111,1110,Y Z,.,.,.,.,三地址指令,15,条,二地址指令,15,条,1111,1111,0000,Z,1111 1111,1110,Z,.,.,.,.,一地址指令,15,条,1111,1111,1111,0000,1111 1111,1111,1111,.,.,.,.,零地址指令,16,条,14,前面介绍的操作码扩展方案中,每次扩展,4,位并仅保留了,一个编码,用于接下来的扩展过程,当每次扩展的位数和保留的位数变化时,后面可扩展的指令条数就可以变化。例如在,16,位字中的指令字中,可以选用如下方案支持三地址指令、二地址指令、一地址指令和零地址指令,14,、,30,、,31,、,16,条:,16,条零地址为:,111111111111,0000,111111111111,1111,14,条三地址为:,0000 1101,(,保留,1110,、,1111,两个码,),30,条二地址为:,11,10,0000 11,11,1101,(保留,2,个码),31,条一地址为:,111111,10,0000 111111,11,1110,(,保留,1,个码,),指令操作码的扩展技术,15,5.1.2,操作数个数,(,1,)三地址指令:,(,A1,),OP,(,A2,),A3,OP,A1,A2,A3,(,2,)二地址指令:,(,A1,),OP,(,A2,),A1,A1,:目的操作数,A2,:源操作数,(,3,)单地址指令:,(,ACC,),OP,(,A,),ACC,OP,(,A,),A,单目操作:如,NEG,、,INC,等指令,OP,A1,A2,OP,A,16,5.1.2,操作数个数,(,4,)零地址指令,不涉及操作数:如,NOP,、,HLT,指令,操作数隐含:如,PUSH,、,POP,指令,对于寄存器类型的操作数,地址,A,指寄存器编号。,OP,17,指令操作数来源和去向,1,、,CPU,内部的通用寄存器:,操作数存放在,CPU,的通用寄存器中,地址码,A,为寄存器号。,2,、输入输出设备(接口)的一个寄存器。,操作数存放在外设中,地址码,A,为其地址信息。(,IO,统一编址,: MIPS IO,单独编址:,x86),3,、主存储器的一个存储单元。,操作数存放在主存中,地址码,A,为其地址信息,4,、立即数。,操作数直接存放在指令中,5.1.2,指令操作数来源和去向,18,例:,X,、,Y,、,Z,是存放三个操作数的存储单元地址。分别用三地址、二地址、一地址结构的指令实现 (,X,),+,(,Y,),- Z,的程序段,并分析比较,,见下图:,指令格式,程序,特点,一地址结构,ADD X,,,Y,,,Z,只需一条指令,但指令长度较长,二地址结构,MOV Z,,,Y,ADD Z,,,X,需两条指令,但指令长度变短,三地址结构,LOAD X,ADD Y,STORE Z,需三条指令,指令长度最短,19,操作数类型与数据存储方式,(1),操作数类型,地址,数字,字符,逻辑数,无符号整数,定点数、浮点数、二,_,十进制数,ASCII,逻辑运算,,bit,(2),数据在存储器中的存放方式,字地址 为 低字节 地址,Intel,字地址 为 高字节 地址,Motorola,3,7,6,2,1,5,4,0,字地址,0,4,低字节,0,4,5,1,2,6,7,3,字地址,0,4,低字节,20,存储器中的数据存放,(,存储字长为,32,位,),地址,(,十进制,),0,4,8,12,16,20,24,28,32,36,双字,双字(地址,32,),双字,双字(地址,24,),半字(地址,20,),半字(地址,22,),半字(地址,16,),半字(地址,18,),字节,(,地址,8),字节,(,地址,9),字节,(,地址,10),字节,(,地址,11),字(地址,4,),字(地址,0,),字节,(,地址,14),字节,(,地址,15),字节,(,地址,13),字节,(,地址,12),边界对准,21,指令,是用户使用计算机和计算机本身运行的最小的功能单元:,用于设计程序,指令是由多个二进制位组成的数串,计算机硬件可直接识别和执行。通常情况下一台计算机需要提供哪些指令呢?,计算机用于计算和处理数据,为此,要在计算机硬件系统中设置,5,种类型的部件:,运算器部件,、,控制器部件,、,存储器部件,、,输入设备,、,输出设备,,各自承担,数据运算,、,系统指挥控制,、,保存当前程序和数据,、执行,输入,和执行,输出,的功能。需要在计算机中设置为使用和控制这几个部件运行的相应指令。,也可换一个角度说,写程序要使用哪些类型的指令呢?,5.1.3,指令分类,22,输入设备,输出设备,入出接口和总线,外存设备,主存储器,高速缓存,控 制 器,运 算 器,使用硬件系统用到的基本指令,ADD,SUB,AND,OR,MVRR,SHR,RCL,OUT,STORE PUSH,JUMP,JRC,JRNC,JRZ,JRNZ,CALL,RET,LOAD,POP,IN,23,指令的功能和分类,指令用于设计程序,,指令系统构成最低级别的程序设计语言,程序设计人员通过指令直接指挥计算机的硬件完成某一个基本的运算、处理功能,例如:,对数,值数据的算术运算,对逻辑数据的逻辑运算,,在计算机部件之间传送、保存数据,,从外部向计算机内输入数据,,把计算机内部计算结果输出出来,,按照某种条件控制计算机选择执行某段程序,,当然还有另外一些方面的更深层次的要求 等;,可以按照指令执行的功能对它们们进行分类。,24,指令的功能分类,-1,算术与逻辑运算指令,加、减、乘、除、变符号 等算术运算,与、或、非、异或 等逻辑运算,移位操作指令,算术移位(一般只右移)、逻辑移位、循环移位,数据传送指令,通用寄存器之间传送,通用寄存器与主存储器存储单元之间传送,主存储器不同存储单元之间传送,输入输出指令,通用寄存器与输入输出设备(接口)之间传送,25,指令的功能分类,-2,转移指令,变动程序中指令执行次序的指令,分为无条件转移指令和条件转移指令,子程序调用与返回指令,子程序调用与返回指令要配合使用,子程序的最后一条指令一定是返回指令,执行结束后返回主程序断点,堆栈操作指令,堆栈(,stack,)是由若干个连续存储单元组成的先进后出的存储区,有压入(即进栈)和弹出(即退栈)操作,其他指令,置条件码指令、开中断指令、关中断指令,停机指令、空操作指令、特权指令,26,5.2,寻址方式,什么叫寻址方式?,寻址方式,(又称编址方式)指的是确定本条指令的操作数地址及下一条要执行的指令地址的方法。,一个指令系统采用什么样的寻址方式与存储结构及其存取方式有关。,通常在指令中为每一个操作数专设一个地址字段,用来表示数据的来源或去向的地址。,在指令中给出,的操作数(或指令)的地址被称为,形式地址,,使用形式地址信息并按一定规则,计算出来,或,读操作得到的,一个数值才是数据(或指令)的,实际地址,(,有效地址、物理地址,),。,27,指令寻址,1,、顺序寻址方式,控制器中,使用程序计数器,PC,来指示指令在内存中的地址,。在程序顺序执行时,指令的地址码由,PC,自加,1,得出。,指令在内存中按顺序存放,当顺序执行一段程序时,,根据,PC,从存储器取出当前指令,,PC,自动,1,,然后执行这条指令,;接着又根据,PC,指示从存储器取出下一条指令,,PC,自动,1,, 执行,。,2,、跳跃寻址方式,当程序执行转移指令时,程序不再顺序执行,而是跳转到另一个地址去执行,此时,,由该条转移指令的地址码字段可以得到新指令地址,然后将其置入,PC,中。,28,数据寻址,指令的地址码字段,通常都不代表操作数的真实地址,把它称作形式地址,记为,A,。操作数的真实地址称为有效地址,记作,EA,,它是由寻址方式和形式地址共同来确定的。,29,5.2.1,存储结构与存取方式,一个指令系统采用什么样的寻址方式与存储结构及其存取方式有关。,1. CPU,中的寄存器,访问时只需给出寄存器号或隐含约定(根据操作码)。称为可编址寄存器。,2.,主存,访问时应给出相应的存储单元号,3.,堆栈,堆栈的操作在栈顶实现,栈顶地址有堆栈指针寄存器,SP,给出,用隐地址访问。,30,5.2.1,存储结构与存取方式,4.,外存,访问时,用户给出文件名,系统给出外存的寻址信息。通常不由指令直接给出,而由主机以命令字形式给出。,5.,外设,访问时,主机通过外设中的相关寄存器实现与外设的,I/O,传送。可将这些寄存器与主存统一编址,或为其分配专门的,I/O,端口地址。,31,5.2.1,基本寻址方式,立即寻址方式,由指令直接给出操作数。,操作码,OP,立即数,S,定长格式:,变长格式,:,基本指令,立即数,S,数在指令中,其长度固定、位数有限。,数在基本指令之后,其长度可变。,用来提供常数、设置初值等。,例如:,MOV R0,AAAA(,教学机,),MOV AL,5 MOV AX,3406H (x86),操作码,OP,立即数,S,定长格式:,变长格式,:,基本指令,立即数,S,数在指令中,其长度固定、位数有限。,数在基本指令之后,其长度可变。,操作码,OP,立即数,S,定长格式:,变长格式,:,基本指令,立即数,S,操作码,OP,立即数,S,定长格式:,变长格式,:,基本指令,立即数,S,数在指令中,其长度固定、位数有限。,32,2,、直接寻址方式,指令直接给出操作数地址,.,操作数地址为寄存器地址则称为寄存器直接寻址,操作数地址为存储器地址则称为存储器直接寻址。,存储单元号,寄存器号,(,数在,M,中,),(,数在,R,中,),操作码,OP,寄存器号,R,(,1,)寄存器直接寻址,(寄存器寻址),格式,R,所占位数少;,访问,R,比访问,M,快,但,R,数量有限,S =,(,R,),33,直接寻址方式,例,.,指令:,INC R1,1000H,R,0,2000H,R,1,3A00H,R,2,3C00H,R,3,34,直接寻址方式,(,2,)存储器直接寻址,操作码,OP,有效地址,D,(直接寻址),定长格式,变长格式,基本指令,D,L,D,H,D,的位数可覆盖,整个存储空间,S =,(,D,),用于访问固定的存储单元。指令中能给出的直接地址空间范围有限。(受指令长度限制),35,例,.,指令:,INC 2000H,1000H,1A00H,2000H,1B00H,.,M,36,3,、间接寻址方式,间接寻址方式,指令给出操作数的间接地址。目的:相对直接寻址,扩大寻址范围。,存储单元号,寄存器号,(,数在,M,中,),(,数在,M,中,),格式,(,1,)存储器间址,操作码,OP,间接地址,D,D=0030,0060,.,0060,S,.,S =(D),M,间址单元,地址指针,间址单元地址,操作数地址,操作数,M,M,37,间接寻址方式,(,2,)寄存器间址,操作码,OP,寄存器号,R,格式,R,所占位数少;,R,可提供全字长地,址码;修改,R,内容比修改,M,内容快。,S =(R),R=02,M,0040,S,.,.,.,地址指针,0040,寄存器号,操作数地址,操作数,R,M,38,4,、堆栈寻址,堆栈寻址,格式,操作码,OP,堆栈指针,S,P,SP,S =(SP),0070,栈顶,SP,既可出现在指令中,也可隐含约定。,M,低,高,堆栈向上生成,压栈:,SP,自动减,1,,再存数。,-(SP),,,自减型间址,。,先取数,,SP,再自动加,1,。,(SP)+,,,自增型间址,。,出栈,:,S,.,.,.,39,5,、变址寻址方式,变址寻址方式,指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。,变址寄存器号,S =(,(R,X,),+,D,),格式,操作码,OP,R,X,D,形式地址,变址量,基准地址(数值),40,变址寻址方式,例,.,用变址方式访问一组连续区间内的数组元素。,D=,首址,D,为存储区首址;,(RX),为所访单元距离,首址的长度;,RX,初值为,0,,每访问一,个单元,,(RX)+1,。,n-1,.,0,1,2,.,D+1,D+2,D+n-1,.,41,6,、基址寻址方式,基址寻址方式,指令给出一个寄存器号和一个地址量,寄存器内容与地址量之和为有效地址。,格式,基址寄存器号,R,b,4K,操作码,OP,R,b,D,位移量,S =(,(R,b,),+,D,),基准地址,相对于基址的位移,M,.,.,.,.,R,b,4K,D=2,D=2,42,基址寻址方式,便于访问两维数组中某类指定的元素。,比如,:,4K,4K,R,b,M,.,.,.,.,R,b,D=2,D=2,学生姓名,性别,性别,年龄,年龄,学生姓名,43,变址与基址的区别:,变址与基址的区别:,变址,:指令提供,基准量,(,不变,),,,R,提供,修改量,(,可变,),;适于处理一维数组。,基址,:指令提供,位移量,(,不变,),,,R,提供,基准量,(,可变,),;用于扩大有限字长指令的访存空间。,44,7,、相对寻址方式,相对寻址方式,指令给出位移量,,PC,内容与位移量之和为有效地址。,格式,位移量,操作码,OP,PC,D,程序计数器,由寄存器号选定或隐含指定,S =(PC),D),有效地址相对,PC,上下浮动,给编程带来方便,。,45,寻址特征:寻址方式的编码,寻址特征,R-R,指令编码例子,OP: 4bit,Ms:,源操作数寻址特征,3bit Rs:,源寄存器地址,3bit,Md:,目的操作数寻址特征,3bit Rs:,目的寄存器地址,3bit,Ms/Md: 000,寄存器直接 操作数,=,(,Rn,),001,寄存器间接 操作数,=(Rn),010,寄存器间接、自增 操作数,= (Rn),,,Rn=Rn+1,011,相对 转移目标地址,=,(,PC,),+,(,Rn,),寻址特征,单地址编码例子,操作码,OP,Ms,Rs,Md Rd,46,5.2,指令格式举例,OP,R,1,R,2,RR,格式,8 4 4,OP,R,1,X,B,D,RX,格式,8 4 4 4 12,OP,R,1,R,3,B,D,RS,格式,8 4 4 4 12,OP,B,D,I,SI,格式,8 8 4 12,OP,B,1,D,1,L,B,2,D,2,SS,格式,8 8 4 12 4 12,二地址,R R,基址加变址寻址,二地址,R,M,三地址,R,M,基址寻址,二地址,M,M,基址寻址,基址寻址,立即数,M,(1) IBM 360,指令格式,寄存器寻址,47,(2) M,IPS,计算机系统,MIPS,是上个世纪八十年代中推出的,RISC,结构的计算机系统,获得了很大的成功。,MIPS32,是,32,位字长、典型,RISC,结构的计算机,其指令格式规范,只有种,用到的寻址方式和指令条数少。,第,1,种指令称为,R,型指令,,完成寄存器之间数据运算功能,例如,,rd rs op rt,,,rd (rs rt),,即,rs,的内容比,rt,的内容小则置,1,rd,,否则清,0,;,第,2,种指令称为,I,型指令,,完成寄存器内容和立即数之间的运算功能,例如,,rt rs op immediate,,存储器读写功能,,rt memorybase+offset,,,memorybase +offset rt,,相对转移功能,若,rt = rs,转移到地址,PC+offset *4,;否则顺序执行,若,rt rs,转移到地址,PC+offset*4,;否则顺序执行。,第,3,种指令称为,J,型指令,,完成无条件跳转的操作功能。,48,MIPS,指令格式,rs,rt,rd:,源和目的寄存器,shamt:,移位次数(立即数),funct:,运算类型,所有的指令都是,32,位,长度。有,3,种,指令格式,即寄存器型、立即数型和转移型。,操作数寻址,方式有寄存器寻址、变址寻址、立即数寻址,3,种,,指令地址,支持相对寻址、伪直接地址,2,种方式。,特点:指令规整,寻址方式简单。方便流水实现。,op rs rt rd shamt funct,寄存器型,立即数型,转移型,op rs rt,address / immediate,op target,例如:,add $1, $2, $3,R3R1+R2,例如:,lw $1, $2, 100,R2MR1+100,addi $1, $2, 100,R2R1+100,例如:,j 8000,转移到,PC31.28 80004,6 5 5 5 5 6,49,MIPS,指令集具有以下特点,:,(,1,) 指令系统设计时选择一些使用频率较高的简单指令,且选择一些很有用但不复杂的指令。,(,2,) 指令长度固定,指令格式种类少,寻址方式种类少。,(,3,) 只有取数,/,存数指令访问存储器,其余指令的操作都在寄存器之间进行。,设计特点,(,RISC,的特点),50,(,4,) 采用流水线技术。超级标量及超级流水线技术,增加了指令执行的并行度,使得一条指令的平均指令执行时间小于一个机器周期。,(,5,),CPU,中通用寄存器数量相当多,可以减少访存次数。,(,6,) 以硬布线控制逻辑为主,不用或少用微码控制。,(,7,) 采用优化的编译程序,力求有效地支持高级语言程序。,设计特点,(,RISC,的特点),51,典型指令系统,-intel Pentium,CISC,代表,指令表示:,主要由两部分组成:指令前缀,指令本身。指令前缀为可选。具体含义件,P129,52,特点,主要在以下方面来对增强指令的功能,面向目标程序增强指令功能,具体方法有:,提高运算类指令的功能,提高传送类指令的功能,增强程序控制指令功能,面向编译程序目标代码生成优化的改进,提供面向操作系统优化的指令,主要特点,指令系统复杂。具体表现为指令条数多、寻址方式多、指令格式多。指令串行执行,大多数指令需要多个时钟周期完成。,采用微程序控制,因为微程序控制器适合于实现,CISC,指令执行过程的控制。,有较多的专用寄存器,大部分运算所需的数据均需访问存储器获取。,编译程序难以用优化措施生成高效的目标代码程序。,53,习题,-,巩固概念,1,指令系统中采用不同寻址方式的目的是(),A.,实现存储程序和程序控制,B.,缩短指令长度,扩大寻址空间,提高编程灵活性,C.,可以直接访问外存,D.,提供扩展操作码的可能并降低译码难度,54,2,为了缩短指令中某个地址段的位数,有效的方法是采取(),A.,立即寻址,B.,变址寻址,C.,间接寻址,D.,寄存器寻址,55,3,假定指令中地址码给出的是操作数的有效地址,则该指令采用的寻址方式是(),A.,立即,B.,直接,C.,基址,D.,相对,56,4,设指令中的地址码为,A,变址寄存器为,X,,程序计数器为,PC,,则变址寻址方式的操作数地址为(),A . (PC)+A,B. (A)+(X),C. (A+X ),D. A+(X),57,5,设指令中的地址码为,A,变址寄存器为,X,,基址寄存器为,B,程序计数器为,PC,,则变址间接寻址方式的操作数地址为(),A. (X)+(A),B. (X+B),C. (X)+A),D. (A)+(PC),58,6,某机器字长为,16,位,主存按字节编址,转移指令采用相对寻址,由两个字节组成,第一字节为操作码字段,第二字节为相对位移量字段,假设取指令时,每取一个字节,PC,自动加,1,,若某转移指令所在主存地址为,2000H,相对位移量字段的内容为,06H,则该转移指令成功转移后的目标地址是(),A 2006H B 2007H,C 2008H,D 2009H,59,7,采用相对寻址方式的转移指令占两个字节,第一字节为操作码字段,第二字节为相对位移量字段(补码表示),假设取指令时,每取一个字节,PC,自动加,1,,假设执行到该转移指令时,PC,的内容为,2003H,要求转移到,200AH,则该转移指令第二字节的内容应该为(),A 05H,B 08H,C F8H D F5H,60,8,假设某条指令的一个操作数采用一次间接寻址方式,指令中给出的地址码为,1200H,地址为,1200H,的内存单元中的内容为,12FCH,地址为,12FC,的内存单元的内容为,38B8H,而,38B8H,单元的内容为,88F9H,则该操作数的有效地址为(),A 1200H,B 12FCH,C 38B8H D 88F9H,61,9,假设某条指令的一个操作数采用两次间接寻址方式,指令中给出的地址码为,1200H,地址为,1200H,的内存单元中的内容为,12FCH,地址为,12FC,的内存单元的内容为,38B8H,而,38B8H,单元的内容为,88F9H,则该操作数的有效地址为(),A 1200H B 12FCH,C 38B8H,D 88F9H,62,10,假设某条指令的一个操作数采用寄存器间接寻址方式,指令中给出的寄存器编号为,8,,,8,号寄存器的内容为,1200H,地址为,1200H,的内存单元中的内容为,12FCH,地址为,12FC,的内存单元的内容为,38B8H,而,38B8H,单元的内容为,88F9H,则该操作数的有效地址为(),A 1200H,B 12FCH,C 38B8H D 88F9H,63,教学机的汇编语言程序设计,要设计汇编程序必须首先知道有哪些汇编语句可用(指令),每个语句实现的功能和具体使用方法,可能用到的数据或主存地址的书写方式;,最常用的程序流程控制,包括顺序执行,必转或者条件转移执行,循环执行,子程序调用与返回执行等,这些程序的流程结构对任何程序设计语言都是类似的。,程序设计的主导思想是如何用一种语言,写出解决问题的过程和具体算法,,,切不可变成试用各种语句,的一个操作过程。,64,TEC-2,机的,基本指令,(,实验手册新,),数据移动指令,MOV DR,,,SR MOV DR,,,DATA MOV DR,,,DATA,SR,MOV DR,,,SR,MOV DR,,,ADR,MOV DATA,SR,,,DR,MOV,DR,,,SR MOV,ADR,,,SR,堆栈操作指令,PSHF PUSH DR,POPF POP DR,输入输出指令,IN,、,OUT,算术逻辑运算指令,NOT DR INC DR,DEC DR,ADD DR,,,SR AND DR,,,SR SUB DR,,,SR,ADC DR,,,SR OR DR,,,SR SBB DR,,,SR,CMP DR,,,SR XOR DR,,,SR TEST DR,,,SR,ASR DR SHL DR,RCL DR,SHR SR RCR DR,MUL SR DIV SR,控制、转移指令,JR ADR JP SR JP ADR,JR CND,,,ADR,JP CND,,,SR,JP CND,,,ADR,IRET EI DI,STC CLS,CALL SR,CALL ADR,RET,其它指令:,NOP LDMC HALT,65,典型的汇编程序执行流程,分支执行,JR NZ,ADR,指令,指令,i,指令,i,2,指令,i,3,指令,j,指令,i,指令,i,1,指令,i,2,循环执行,JR NZ,ADR,指令,指令,i,4,指令,i,指令,i,1,指令,i,2,顺序执行,(Z=1),(Z=1),66,典型的汇编程序执行流程,指令,j,指令,j,1,子程序调用,与返回执行,指令,i,指令,i,2,指令,i,3,CALL,指令,RET,指令,i,JP/JR,指令,指令,i,2,转移执行,指令,i,3,指令,j,(i+1),67,教学计算机中的汇编程序的例子,例,1,:设计一个程序,完成,16,进制的,22+120,的计算。,A800,;,从内存,RAM,区的起始地址,16,进制的,800,开始,800: MOV R0, 0022 ;,把被加数送入,R0,802: MOV R1, 0120 ;,把加数送入,R1,804: ADD R0, R1 ;,执行加法运算并保存运算结果,805: RET ;,每个用户程序都,必须用,RET,指令结束,806,:(,按回车键即结束源程序的输入过程,),说明:,1,、程序中给出的数是,16,进制的,使得实现汇编器程序可以更简单;,2,、要完成数据运算,被运算数据要送到寄存器中之后才能进行计算;,3,、用户程序选用,RET,语句结束,与监控程序处理用户程序方法有关。,33,68,教学机的汇编程序的例子,例,2,:,例:设计一个小程序,完成在屏幕上输出,09,十个数字符。源程序如下:,A800,MOV R2,,,0A,;置计数器初值:输出字符个数,MOV R0,,,30,;,0,字符的,ASCII,码,(,804,),CALL 009B,;调用,009B,子程序:显示输出一个字符,字符存放在,R0,中,INC R0,;,R0=R0+1,形成下一个字符,DEC R2,;,R2=R2-1,JR NZ,,,804,;若未输出完,继续输出。,RET,;若输出完,返回,69,教学机汇编程序的例子,例,3,:,完成双字长整数,(R8R9/R10R11),相加,其和存放在,R8,,,R9,中。,MOV R8,,,1111,;被加数(高位),MOV R9,,,2222,;被加数(低位),MOV R10,,,3333,;加数(高位),MOV R11,,,4444,:加数(低位),ADD R9,,,R11,;低位和,ADC R8,,,R10,;高位和,RET,;返回,70,教学机汇编程序的例子,例,4,:计算,1,到,10,的累加和。,MOV R1,,,0,;置累加器初值为,0,MOV R2,,,0A,;最大加数,MOV R3,,,0,;加数初值,ADR,:,INC R,;加数,ADD R1,,,R3,;累加,CMP R3,,,R2,;判断是否累加完,JR NZ,,,ADR,;未累加完,开始下一轮累加,RET,;若完成,返回,功能:计算从,1,到,10,的累加和。,运行过后,可以用,R,命令看,R1,中的累加结果。,71,教学机汇编程序的例子,例,5,:,从键盘上键入多个属于,0,到,9,的数字符并在屏幕上显示,遇非数字符结束程序。,A0840,MOV R2,,,30,;,0,为下限值,MOV R3,,,39,;,9,为上限值,(,0844,),CALL 005A,;调,005A,子程序:输入一个字符,CMP R0,,,R2,;该字符与下限比较,JP C,,,084F,;若,9,,则停止输入返回,CALL 009B,;在,0,9,,调,009B,子程序:显示该字符,JP 0844,;直接跳转,(,084F,),RET,72,补:,移位操作,逻辑移位,:数码位置变化,1.,移位类型,算术移位,:数码位置变化,数值,变化,符号位不变。,1,0 0 1 1 1 1,算术左移:,1,0,1,1,1,1,0,(-15),(-30),73,(,1,)单符号位 :,0,0111,0,111,0,(,2,)双符号位:,00,111,0,00,0111,2.,正数补码移位规则,(,3,)移位规则,左移,右移,右移,0,0111,0,0011,左移,左移,右移,右移,0,1 110,0,00,1110,00,0111,数符不变,(单:符号位不变;双:第一符号位不变)。,空位补,0,(右移时第二符号位移至尾数最高位)。,74,(,1,)单符号位 :,1,1011,1,011,0,(,2,)双符号位:,1,0 110,0,11,0110,3.,负数补码移位规则,(,3,)移位规则,左移,右移,右移,1,1011,1,1101,左移,右移,右移,11,0110,11,1011,数符不变,(单:符号位不变;双:第一符号位不变)。,左移空位补,0,(第二符号位移至尾数最高位)。,右移空位补,1,75,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!