第五章 指令系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

计算机学院§5指令系统计算机学院本章内容:指令基本概念指令格式数据表示寻址方式RISC和CISC指令系统举例计算机学院§5.1基本概念指令就是要计算机执行某种操作的命令。指令系统是一台计算机中所有机器指令的集合。系列计算机是指基本指令系统相同,基本体系结构相同的一系列计算机。系列机能解决软件兼容问题的必要条件是该系列的各机种有共同的指令集,而且新推出的机种的指令系统一定包含旧机种的所有指令,因此在旧机种上运行的各种软件可以不加任何修改地在新机种上运行。计算机学院§5.2指令格式指令格式指令操作码的扩展技术指令长度与字长的关系计算机学院§5.2.1指令格式指令由表示操作性质的操作码和表示操作对象的地址码两部分组成。操作码字段地址码字段操作码指出指令中该指令应该执行什么性质的操作和具有何种功能。地址码指出该操作数所在的存储器地址或寄存器地址。根据指令中的操作数地址码的数目的不同,可将指令分成零地址指令、一地址指令、二地址指令、三地址指令和多地址指令等多种格式。计算机学院OP指令中只给出操作码,没有显地址。这种指令有两种可能:①不需要操作数的指令。②隐含对累加器AC内容进行操作(1)零地址指令格式计算机学院OPA其功能:OP(A)→A或(AC)OP(A)→AC一地址指令有两种常见的形态,根据操作码含义确定它究竟是哪一种。①只有目的操作数的单操作数指令②隐含约定目的地址双操作数指令注意:采用隐地址(隐含约定)可以简化指令地址结构,即减少指令中的显地址数。(2)一地址指令格式计算机学院(3)二地址指令格式:OPA1A2其功能:(A1)OP(A2)→A1(4)三地址指令格式:OPA1A2A3其功能:(A1)OP(A2)→A3计算机学院(5)多地址指令在某些性能较好的大、中型机甚至高档小型机中,往往设置一些功能很强的,用于处理成批数据的指令,如字符串处理指令,向量、矩阵运算指令等。为了描述一批数据,指令中需要多个地址来指出数据存放的首地址、长度和下标等信息。计算机学院零地址、一地址和两地址指令具有指令短,执行速度快,硬件实现简单等特点,多为结构较简单,字长较短的小型、微型机所采用;两地址、三地址和多地址指令具有功能强,便于编程等特点,多为字长较长的大、中型机所采用。指令的地址是由程序计数器(PC)规定的,而数据的地址是由指令规定的。计算机学院§5.2.2指令操作码的扩展技术通常在指令字中用一个固定长度的字段来表示基本操作码,而对于一部分不需要某个地址码的指令,把它们的操作码扩充到该地址字段,这样既能充分地利用指令字的各个字段,又能在不增加指令长度的情况下扩展操作码的长度,使它能表示更多的指令。计算机学院例5.1:指令字长为16位,每个地址码为4位,采用扩展操作码的方式,设计15条三地址指令、15条二地址指令、15条一地址指令和16条零地址指令。①画出扩展图②画出指令译码逻辑。【例题分析】每个地址码为4位:三地址占12位,15条三地址指令的操作码为4位;二地址占8位,15条二地址指令的操作码为8位;一地址占4位,15条一地址指令的操作码为12位;16条零地址指令的操作码为16位;计算机学院0000××××××××××××15条三地址指令1110××××××××××××11110000××××××××15条二地址指令11111110××××××××111111110000××××15条一地址指令111111111110××××111111111111000016条零地址指令1111111111111111①操作码的扩展如下:计算机学院指令寄存器××××××××××××××××4:16译码器4:16译码器4:16译码器4:16译码器…………15条三地址指令15条二地址指令15条一地址指令16条零地址指令译码开始②指令译码逻辑如图所示:计算机学院例5.2:指令字长为16位,每个地址码为4位,采用扩展操作码的方式,设计15条三地址指令、14条二地址指令、31条一地址指令和16条零地址指令。①画出扩展图②画出指令译码逻辑。【例题分析】每个地址码为4位:三地址占12位,15条三地址指令的操作码为4位;二地址占8位,14条二地址指令的操作码为8位;一地址占4位,31条一地址指令的操作码为12位;16条零地址指令的操作码为16位;计算机学院0000××××××××××××15条三地址指令1110××××××××××××11110000××××××××14条二地址指令11111101××××××××111111100000××××31条一地址指令111111111110××××111111111111000016条零地址指令1111111111111111①操作码的扩展如下:计算机学院指令寄存器××××××××××××××××4:16译码器4:16译码器5:32译码器4:16译码器…………15条三地址指令14条二地址指令31条一地址指令16条零地址指令译码开始②指令译码逻辑如图所示:计算机学院例5.3:某计算机指令长度为32位,有3种指令:双操作数指令、单操作数指令、无操作数指令。今采用扩展操作码的方式来设计指令,假设操作数地址为12位,己知有双操作数指令K条,单操作数指令L条,问无操作数指令有多少条?【例题分析】对于双操作数指令,操作码长度为(32-12×2)=8位;最多有28条,现已有K条,所以留有(28-K)个编码用于扩展到单操作数指令;对于单操作数指令,可扩展位为20-8=12位;最多有(28-K)×212条,现已有L条,所以留有[(28-K)×212-L]个编码用于扩展到无操作数指令;对于无操作数指令,可扩展位为32-20=12位,所以无操作数指令条数=[(28-K)×212-L]×212计算机学院扩展操作码编码的原则:对使用频度(指在程序中出现的概率)较高的指令,分配较短的操作码字段;对使用频度较低的指令,分配较长的操作码字段。计算机学院见P131表5.1指令使用频率操作码操作码长度I145%002I228%012I317%102I45%11004I53%11014I61%11104I71%11114这种表示法的平均长度=45%×2+28%×2+17%×2+5%×4+3%×4+1%×4+1%×4=2.23计算机学院§5.2.3指令长度与字长的关系字长是指计算机能直接处理的二进制数据的位数;字长决定了计算机的运算精度,字长越长,计算机的运算精度越高;一般机器的字长都是字节长度(即8位)的l,2,4或8倍,也就是8,16,32或64位。指令的长度主要取决于操作码的长度、操作数地址的长度和操作数地址的个数。由于操作码的长度、操作数地址的长度及指令格式不同,各指令的长度可以是固定的,也可以是不固定的,但也不是任意的。为了充分地利用存储空间,指令的长度通常为字节的整数倍。指令的长度与机器的字长没有固定的关系,它既可以小于或等于机器的字长,也可以大于机器的字长。计算机学院§5.3数据表示存储器的地址,一般按字节编址。计算机的指令系统可支持对字节、半字、字、双字的运算;有些计算机有位处理指令。为便于硬件实现,一般要求多字节数据对准边界,如图所示。当所存数据不能满足此要求时,则填充一个至多个空白字节。也有的计算机不要求对准边界,但可能增加访问存储器次数。计算机学院计算机学院假如存储器与运算部件间数据通路的宽度为32位(一个字),在不按边界对准的计算机中,访存指令所要求存取的数据(例如一个字),可能在两个存储单元中,因此需要访问两次存储器,而且还要对高低字节的位置进行调整,图5.2(b)的阴影部分即属这种情况。在数据对准边界的计算机中,当以二进制来表示地址时,半字地址的最低位恒为零,字地址的最低两位为零,双字地址的最低三位为零。计算机学院§5.4寻址方式所谓寻址方式,就是寻找指令或操作数的有效地址的方式。1.指令的寻址方式指令寻址的基本方式有两种,一种是顺序寻址方式,另一种是跳转寻址方式2.操作数寻址方式操作数的寻址方式就是形成操作数有效地址的方法。设某计算机具有如下所示的单地址指令结构。其中,OP为操作码;X为寻址特征码;D为形式地址,或称偏移量。寻址过程就是把X和D的不同组合变换成有效地址的过程。计算机学院例如,一种单地址指令的结构如下所示,其中X,I,D组成该指令的操作数地址。操作码变址间址形式地址OPXID其中:D称为形式地址,也称位移量;I为间址特征;X为寻址方式特征位;寻址过程就是把操作数的形式地址D变换为操作数的有效地址的过程。计算机学院(1)隐含寻址指令中隐含着操作数的地址,EA=(PC)。(2)立即寻址操作数在指令中,Data=D,这种寻址方式称为立即寻址。立即寻址方式的特点是指令执行时间很短,因为它不需要访问内存取数,从而节省了访问内存的时间。计算机学院(3)直接寻址指令中的形式地址D就是操作数的有效地址EA,即EA=D,Data=(D)。(4)间接寻址指令地址字段中的形式地址D不是操作数的真正地址,而是操作数地址的地址,或者说D单元的内容才是操作数的有效地址,即:EA=(D),Data=((D)),如图所示。计算机学院内存内存OPXDOPXD操作数地址操作数操作数采用间接寻址可扩大的寻址范围。设D为8位,存储器字长为16位,则:直接寻址:EA=D(8位),寻址范围是28=256;间接寻址:EA=(D)(16位),寻址范围是216=64K。计算机学院(5)寄存器寻址操作数在寄存器中。即:EA=R,Data=(R),此时指令中给出的操作数地址不是内存的地址单元号,而是通用寄存器的编号。(6)寄存器间接寻址操作数地址在寄存器中。即:EA=(R),Data=((R))。采用寄存器间接寻址可提高机器的寻址速度。采用寄存器间接寻址也可扩大的寻址范围,若寄存器长为16位,则:EA=(R)(16位),寻址范围是216=64K。(7)变址寻址操作数地址为变址寄存器中的内容与位移量D之和,即:EA=(R)变址+D,变址寻址一般用于数组的操作。计算机学院(8)基址寻址指令中给出一个形式地址(作为修改量),并给出基址寄存器号,基址寄存器内容(作为基址)与形式地址相加得到操作数有效地址。即:EA=(R)基址+D基址寻址中如果用通用寄存器作为基址寄存器,与变址寻址没有区别,变址寄存器与通用寄存器都可以变化;但如果用专用寄存器作为基址寄存器,它与变址寻址是有区别的,这时基址寄存器提供基准量,是不能变化的;计算机学院(9)相对寻址EA=(PC)+D。采用相对寻址方式的好处是程序员勿需用指令的绝对地址编程,因而所编程序可以放在内存任何地方,相对寻址一般用于转移指令中。计算机学院(10)复合寻址方式复合寻址方式是把间接寻址方式同相对寻址方式或变址方式相结合而形成的寻址方式。它分为先间接方式与后间接方式两种。相对间接寻址操作数的有效地址EA数学形式为:EA=((PC)+D)间接相对寻址操作数的有效地址EA数学形式为:EA=(PC)+(D)变址间接寻址操作数的有效地址EA数学形式为:EA=((R)+D)间接变址寻址操作数的有效地址EA数学形式为:EA=(R)+(D)基址+变址寻址:操作数的有效地址EA数学形式为:EA=(R)基址+(R)变址+D计算机学院(11)段寻址方式段寄存器中的16位数左移4位,然后与16位偏移量相加,形成内存所需的20位物理地址。这种寻址方式的实质还是基值寻址。计算机学院指令系统的设计举例:例1某机主存容量为64k×l6位,采用单字长、单地址指令,共有60条。试采用立即、直接、寄存器、寄存器间接、变址、变址间接、相对、相对间接这八种寻址方式设计指令格式。并说明每一种寻址方式的寻址范围及有效地址计算方法。【例题分析】60条指令操作码字段(OP)至少需占用6位;寻址方式有八种,所以寻址字段3位(其中I为间接特征,X为寻址模式);形式地址(D)7位。其指令格式如下:151098760OPIXD计算机学院寻

1 / 52
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功