计算机组成原理指令系统课件

上传人:无*** 文档编号:242014671 上传时间:2024-08-09 格式:PPT 页数:33 大小:268.85KB
返回 下载 相关 举报
计算机组成原理指令系统课件_第1页
第1页 / 共33页
计算机组成原理指令系统课件_第2页
第2页 / 共33页
计算机组成原理指令系统课件_第3页
第3页 / 共33页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第三章 指令系统,3.1 指令系统的定义及性能要求,3.2 指令格式及指令类型,3.3 指令和数据的编码及寻址方式,3.4 堆栈寻址方式,3.5 RISC机型,第三章 指令系统3.1 指令系统的定义及性能要求,1,指令系统是指一台计算机所有机器指令的集合,构成了计算机的机器语言,是计算机硬件与上层软件的接口。计算机的指令系统决定了计算机的CPU的功能和结构。CISC和RISC是现代两大典型指令系统体系结构。设计一台机器的指令系统应考虑到其完备性和完整性、兼容性、均匀性、可扩充性。,指令系统是指一台计算机所有机器指令的集合,构,2,裸机,软件,指令系统,裸机软件指令系统,3,指令格式,操作码表示指令要完成的操作,其长度决定了指令系统可以表示的指令条数;操作数是操作的对象,对象的类型由寻址方式部分决定,操作数(D),寻址方式,地址码,数值,寄存器,内存地址,操作码(OP),指令格式 操作码表示指令要完成的操作,其长度,4,指令分类:依据操作数个数来分,OP,OP D,OP D1 D2,OP D1 D2 D3,指令分类:依据操作数个数来分 OP O,5,指令中地址个数的选取要考虑诸多的因素。从缩短程序长度,用户使用方便,增加操作并行度等方面来看,选用三地址指令格式较好;从缩短指令长度,减少访存次数,简化硬件设计等方面来看,一地址指令格式较好。对于同一个问题,用三地址指令编写的程序最短,但指令长度最长,而用二、一、零地址指令来编写程序,程序的长度一个比一个长,但指令的长度一个比一个短。,指令中地址个数的选取要考虑诸多的因素。从缩短程,6,双操作数运算类指令的执行,对于双操作数运算类指令(如加法指令)来说,每条指令中都需要包含以下 个地址信息:,第一操作数地址A;第二操作数地址A;操作结果存放地址A;下条将要执行指令的地址A。,这些地址信息可以明显地给出,称为显地址;也可以依照某种事先的约定,用隐含的方式给出,称为隐地址。,双操作数运算类指令的执行对于双操作数运算类指令(如加法指令),7,()三地址双操作数指令,三地址双操作数指令有 个显地址,指令的含义为:(A)OP(A)A假设指令存放在主存的 号单元中,第一、第二操作数分别存放在主存的 和 号单元中,结果存放在主存的 号单元,如图 所示。,执行一条三地址的加法指令需要访问 次主存。第一次从号单元中取指令,第二次从 号单元中取第一操作数,第三次从 号单元中取第二操作数,第四次将加法的结果保存到主存的号单元。,()三地址双操作数指令执行一条三地址的加法指令需要访问,8,()二地址双操作数指令,二地址双操作数指令有两个显地址,第一操作数地址同时兼作结果存放地址(目的地址),指令的含义为(A)OP(A)A,执行一条二地址的加法指令同样需要访问 次主存。第一次从 号单元中取指令,第二次从 号单元中取第一操作数,第三次从 号单元中取第二操作数,第四次将加法的结果保存到主存的 号单元。,()二地址双操作数指令执行一条二地址的加法指令同样需要访,9,()一地址双操作数指令,一地址双操作数指令只有一个显地址,参加运算的另一个操作数来自累加寄存器Acc。指令的含义为:,(Acc)OP(A)Acc,执行一条一地址的加法指令只需要访问两次主存,第一次从 号单元中取指令,第二次从 号单元中取操作数。由于第一操作数和运算结果都放在累加寄存器中,所以读取第一操作数和存放加法的结果都不需要访问主存。,()一地址双操作数指令执行一条一地址的加法指令只需要访问,10,()零地址双操作数指令,零地址双操作数指令中只有操作码字段,操作数地址都是隐含的。操作数在堆栈的栈顶位置和次栈顶位置,它们分别从堆栈中弹出,送到运算器中进行运算,运算的结果再压入堆栈。执行一条零地址的加法指令访问主存的次数取决于堆栈的结构。,()零地址双操作数指令,11,举例,例:分别利用三地址、二地址、一地址和零地址指令编制计算算术表达式x (ab c d)(e f)的程序。,解:假设a、b、c 表示操作数,A、B、C 表示操作数所在存储地址。,()三地址指令程序,MUL A,B,X,ADD X,C,X SUB X,D,X,ADD E,F,Y,DIV X,Y,X,共需 条三地址指令,每条指令 次访存,执行此程序共访存 次。,举例例:分别利用三地址、二地址、一地址和零地址指令编制计算算,12,()二地址指令程序,MOV X,A,MUL X,B,ADD X,C,SUB X,D,MOV Y,E,ADD Y,F,DIV X,Y,共需 条二地址指令,MOV 指令 次访存,算术运算指令 次访存,执行此程序共访存 次。,()二地址指令程序,13,()一地址指令程序LOAD E,ADD F,STORE XLOAD AMUL BADD CSUB DDIV XSTORE X,共需 条一地址指令,每条指令 次访存,执行此程序共访存 次。,()一地址指令程序LOAD E,14,()零地址指令程序PUSH APUSH BMULPUSH CADDPUSH DSUBPUSH EPUSH FADDDIVPOP X,共需 条指令,其中 条一地址的进、出栈指令,条零地址的算术运算指令。进、出栈指令 次访存,算逻指令 次访存,执行此程序共访存 次。,()零地址指令程序PUSH APUSH B,15,例:某一机器的指令系统,操作码 位,地址码均为 位,CPU 与主存之间每次传送 位数据。A、B、C、D、E 表示字地址,存放 位数据。,()分别用三地址、二地址、一地址和零地址指令编写程序,计算A (B C)(D E)(不允许覆盖任何操作数,可以使用暂存单元)。,()分别计算所写程序的总字节数。,()分别计算程序执行时的访存次数。,例:某一机器的指令系统,操作码 位,地址码均为 位,16,三地址指令程序,SUB B,C,A,SUB D,E,Tmp,MUL A,Tmp,A,因为操作码 位,地址码 位,所以:三地址指令程序中每条指令占 个字节,程序的字节总数为 个字节;,因为三地址指令占 个字节,每条指令需访存 次才能取出,接下来每条指令还需要访存 次,所以 条指令共访存 次。,三地址指令程序,17,二地址指令程序,MOV A,B,SUB A,C,MOV Tmp,D,SUB Tmp,E,MUL A,Tmp,二地址指令程序中每条指令占 个字节,程序的字节总数为 个字节;,因为二地址指令占 个字节,每条指令需访存 次才能取出。除取指令外,传送指令还需访存 次,运算指令还需访存 次,所以总的访存次数为:次。,二地址指令程序,18,指令分类:依据指令功能来分,算术逻辑运算类指令(ADD、AND),移位指令和循环指令(CLR、RL),传送类指令(MOV),串指令(CWB),顺序控制类指令(JMP),特权指令(CHMOD),输入输出指令(IN OUT或利用访存指令),指令分类:依据指令功能来分算术逻辑运算类指令(ADD、AND,19,指令系统的设计,指令的编/译码,:操作码编码、操作数编码,指令及操作数的寻址,指令系统的设计指令的编/译码:操作码编码、操作数编码,20,操作码编码方式,固定长度、区域集中:可表示的指令个数有限,译码简单、快速,可变长度、区域分散:控制器复杂,可表示的指令多,通常采用两者结合的方式进行设计,选择设计方案的原则是常用的指令尽量分配简短的操作码,以降低占用的存储空间,缩短译码时间,从而提高程序运行速度,例:指令格式如下:如何表示61条指令,其中三地址、两地址、一地址指令各15条,零地址指令16条?能否表示更多条指令?,4位,4位,4位,4位,操作码编码方式固定长度、区域集中:可表示的指令个数有限,译码,21,OP,A,1,A,2,A,3,4位,4位,4位,4位,OP,15条三地址指令,0000 XXXX YYYY ZZZZ,1110 XXXX YYYY ZZZZ,1111,15条二地址指令,1111,0000 XXXX YYYY,1111 1110 XXXX YYYY,1111 1111,15条一地址指令,1111 1111,0000 XXXX,1111 1111 1110 XXXX,1111 1111 1111,16条零地址指令,1111 1111 1111,0000,1111 1111 1111 1111,扩展窗口,扩展窗口,扩展窗口,OP,A1,A2,OP,A1,OP,OPA1A2A34位4位4位4位OP15条三地址指令000,22,操作数的编码方式,立即数:直接将数据表示成二进制形式,寄存器/存储器:直接给出寄存器或存储器的地址码(名称)即可;,注:,寄存器(CPU内部或外围设备内部)及存储器的编址方式:1)字编址、字节编址、位编址;2)统一编址、非统一编址,操作数的编码方式立即数:直接将数据表示成二进制形式,23,操作数的编码方式,例:设某机主存容量为MB,机器字长 位,若最小寻址单位为字节(按字节编址),其地址码为多少位?若最小寻址单位为字(按字编址),其地址码又为多少位?,解:若按字节编址,地址码应为 位(MB);若按字编址,地址码只需 位。,操作数的编码方式例:设某机主存容量为MB,机器字长,24,操作数的编码方式,例:假设某外设接口中有 个寄存器,它们通过数据总线与CPU 相连,其总线地址如下:,数据寄存器FFH,命令字寄存器FFH,状态字寄存器FFH下列 条指令完成的操作分别是什么?()MOV FFH,R()MOV R,FFH()MOV R,FFH()MOV FFH,R,操作数的编码方式 例:假设某外设接口中有 个寄存,25,常用操作数寻址方式,立即寻址 imme,直接寻址 EA=D,间接寻址 EA=(D),寄存器直接寻址 EA=R,寄存器间接寻址 EA=(R),寄存器变址寻址 EA=R+D,相对寻址 EA=PC+D,基址寻址 EA=BX+D,隐含寻址,其他寻址方式(块寻址、段寻址)注:内存寻址时存在的对齐方式:大端序、小端序,常用操作数寻址方式立即寻址 imme,26,例:设寄存器R 中的数值为H,地址为H 的存储单元中存储的内容为H,地址为H 的存储单元中存储的内容为H,PC 的值为H,问以下寻址方式下访问到的操作数的值是什么?()寄存器寻址R;()寄存器间接寻址(R);()直接寻址H;()间接寻址(H);()相对寻址 H(PC);()立即寻址 H。,解:,(),采用寄存器寻址,,操作数在寄存器中,S (R)H。,(),采用寄存器间接寻址,,操作数的有效地址在寄存器中,EA (R),操作数S(R)(H)H。,(),采用直接寻址,,操作数的有效地址在指令中给出,EA H,操作数S(H)H。,()采用间接寻址,,操作数有效地址在主存单元中,EA (H)H,操作数S (H)H。,()采用相对寻址,,操作数有效地址为PC 中的内容与指令中的位移量D 之和,即EA (PC)D H H H,操作数S (H)H。,()采用立即寻址,,操作数直接在指令中给出,S H。,例:设寄存器R 中的数值为H,地,27,常用指令寻址方式,顺序寻址方式,跳跃寻址方式:直接、相对、间接,常用指令寻址方式顺序寻址方式,28,1、栈的分类:用寄存器实现堆栈(,串联堆栈,),内存中开辟,堆栈区,自底向上生成堆栈,自顶向下生成堆栈,2、栈的建立:,将栈顶地址传送到SP中,3、栈的操作:,PUSH/POP、MOV,栈及相关概念,1、栈的分类:用寄存器实现堆栈(串联堆栈)内存中,29,从“20-80律”出发,人们开始了对指令系统合理性的研究,提出了精简指令系统的想法,出现了精简指令系统计算机,简称,RISC,。,80%不常用指令,复杂指令系统,20%常用指令,精简指令系统,RISC机型,从“20-80律”出发,人们开始了对指令系统合理性的研究,30,RISC机:,指令数少,长度固定,格式少、寻址方式少,大多数指令一个机器周期可完成,通用寄存器多,只有存数/取数指令访问存储器,RISC机:指令数少,31,指令格式,指令格式,32,计算机组成原理指令系统课件,33,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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