一、指令系统的发展 1、指令系统基本概念
①、指令:就是要计算机执行某种操作的命令。从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。 微指令是微程序级的命令,它属于硬件;
②、宏指令:由若干条机器指令组成的软件指令,它属于软件; 机器指令:介于微指令与宏指令之间,通常简称为指令,每一 条指令可完成一个独立的算术运算或逻辑运算操作。
③、一台计算机中所有机器指令的集合,称为这台计算机的指令系统。
④、指令系统是表征一台计算机性能的重要因素,它的格式与功能 不仅直接影响到机器的硬件结构,而且也直接影响到系统软件, 影响到机器的适用范围。 2、发展情况 ①、复杂指令系统计算机,简称CISC。但是如 此庞大的指令系统不但使计算机的研制周期 变长,难以保证正确性,不易调试维护,而 且由于采用了大量使用频率很低的复杂指令 而造成硬件资源浪费。
②、精简指令系统计算机:简称RISC,人们又 提出了便于VLSI技术实现的精简指令系统计 算机。
二、指令系统的性能要求 ①、完备性:完备性是指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件 来实现。完备性要求指令系统丰富、功能齐全、使 用方便。一台计算机中最基本、必不可少的指令是不多的。许多指令可用最基本的指令编程来实现。 例如,乘除运算指令、浮点运算指令可直接用硬件 来实现,也可用基本指令编写的程序来实现。采用 硬件指令的目的是提高程序执行速度,便于用户编 写程序。
②、有效性:有效性是指利用该指令系统所编写的程序 储空间小、执行速度快。一般来说, 能够高效率地运行。高效率主要表现在程序占据存 一个功能更强、 更完善的指令系统,必定有更好的有效性。 ③、规整性:规整性包括指令系统的对称性、匀齐性 指令格式和数据格式的一致性。对称性是指:在指 令系统中所有的寄存器和存储器单元都可同等对待, 所有的指令都可使用各种寻址方式;匀齐性是指: 一种操作性质的指令可以支持各种数据类型,如算 术运算指令可支持字节、字、双字整数的运算,十进制数运算和单、双精度浮点数运算等;指令格式 和数据格式的一致性是指:指令长度和数据长度有 数据长度通常是字节长度的整数倍。定的关系,以方便处理和存取。例如指令长度和数据长度通常是字节长度的整数倍。
④、兼容性:系列机各机种之间具有相同的基本结构和 共同的基本指令集,因而指令系统是兼容的,即各 机种上基本软件可以通用。但由于不同机种推出的 时间不同,在结构和性能上有差异,做到所有软件 都完全兼容是不可能的,只能做到“向上兼容”, 即低档机上运行的软件可以在高档机上运行。
三、 低级语言与硬件结构的关系 低级语言与高级语言关系
四、指令格式1、操作码 设计计算机时,对指令系统的每一条指令都要规定一个操作码。 指令的操作码OP表示该指令应进行什么性质的操作,如进行加 法、减法、乘法、除法、取数、存数等等。不同的指令用操作 码字段的不同编码来表示,每一种编码代表一种指令。
组成操作码字段的位数一般取决于计算机指令系统的规模。较 大的指令系统就需要更多的位数来表示每条特定的指令。
等长(指令规整,译码简单)
例如IBM 370机,该机字长32位,16个通用寄存器R0~ R15,共有183条指令;指令的长度可以分为16位、32位 和48位等几种,所有指令的操作码都是8位固定长度。
固定长度编码的主要缺点是:信息的冗余极大,使程序的 总长度增加。 2、地址码 根据一条指令中有几个操作数地址,可将该指 令称为几操作数指令或几地址指令。
三地址指令
二地址指令
单地址指令
零地址指令①、三地址指令
指令格式如下:
操作码op 第一操作数A1第二操作数A2结果 A3
功能描述:
(A1) op(A2)→>A3
(PC) +1→>PC
这种格式虽然省去了一个地址,但指令长度仍比较 长,所以只在字长较长的大、中型机中使用,而小. 型、微型机中很少使用。 ②、二地址指令
指令格式如下:
操作码op 第一操作数A1第二操作数A2
功能描述:
(A1) op(A2)→>A1
(PC) +1→>PC
二地址指令在计算机中得到了广泛的应用,但是在使用时有一点必须注意:指令执行之后,A1中原存的内容已经别新的运算结果替换了。 ③、一地址指令
指令格式如下:
操作码op 第一操作数A1
功能描述:
(AC) op(A1)→>A1
(PC) +1→>PC 单操作数运算指令,如“+1”、“-1”、“求反” 指令中给出一个源操作数的地址
④、零地址指令
指令格式如下:
操作码op “停机”、 “空操作”、 “清除”等控制类 指令。
五 、 指令字长度
①、概念
指令字长度(一个指令字包含二进制代码的位数)
机器字长:计算机能直接处理的二进制数据的位数。
单字长指令
半字长指令
双字长指令
②、多字长指令的优缺点
优点提供足够的地址位来解决访问内存任何单元的寻址问题; 缺点必须两次或多次访问内存以取出一整条指令,降低了CPU的 运算速度,又占用了更多的存储空间。
③、指令系统中指令采用等长指令的优点:各种指令字长度是相等的, 指令字结构简单,且指令字长度是不变的;
④、采用非等长指令的的优点:各种指令字长度随指令功能而异,
结构灵活,能充分利用指令长度,但指令的控制较复杂。
六、指令助记符
由于硬件只能识别1和0,所以采用二进制操作 码是必要的,但是我们用二进制来书写程序却 非常麻烦。
为了便于书写和阅读程序,每条指令通常用3 个或4个英文缩写字母来表示。这种缩写码叫 做指令助记符
用3~4个英文字母来表示操作码,一般为英文缩写不同的计算机系统,规定不一样必须用汇编语言翻译成二进制代码。
七、 操作数类型
1、一般的数据类型
2、Pentium数据类型
3、PowerPC数据类型
八、指令的寻址方式 1、顺序方式 2、跳跃方式
九、操作数的基本寻址方式 形成操作数有效地址的方法,称为寻址方式。 例如,一种单地址指令的结构如下:操作数OP、变址C、简间址I、形式地址A
1、隐含寻址 指令中隐含着操作数的地址 如某些运算,隐含了累加器AC作为源和目的寄存器 如8086汇编中的STC指令,设置标志寄存器的C为1
2、立即寻址 立即寻址是一种特殊的寻址方式,指令中在操作码字 段后面的部分不是通常意义上的操作数地址,而是操 作数本身,也就是说数据就包含在指令中,只要取出 指令,就取出了可以立即使用的操作数,因此,这样 的操作数被称为立即数。 指令格式:操作码OP 操作数A
3、直接寻址 指令中地址码字段给出的地址A就是操作数的 有效地址EA(EffectiveAddress),即EA=A。4、间接寻址
间接寻址意味着指令的地址码部分给出的 地址A不是操作数的地址,而是存放操作数 地址的主存单元的地址,简称操作数地址的 地址。操作数的有效地址的计算公式为:
5、寄存器寻址 在指令的地址码部分给出CPU内某一通用寄存器的 编号,指令的操作数存放在相应的寄存器中,即 EA=Ri优点
(1)由于寄存器在CPU的内部,指令在执行时从寄 存器中取操作数比访问主存要快得多;
(2)由于寄存器的数量较少,因此寄存器编号所占位 数也较少,从而可以有效减少指令的地址码字段的长 6、寄存器间接寻址 为了克服间接寻址中多次访存的缺点,可采用寄存器间接寻址, 即将操作数放在主存储器中,而操作数的地址放在某一通用寄 存器中,然后在指令的地址码部分给出该通用寄存器的编号, 这时有EA=(Ri)这种寻址方式的指令较短,并且在取指后只需一次访存便可得到操作 数,因此指令执行速度较前述的间接寻址方式要快,也是目前在计算 机中使用较为广泛的一种寻址方式。 7、偏移寻址
①、相对寻址:由程序计数器PC提供基准地址,而指令的地址码部分给出相对的位移量D,两者相加后 作为操作数的有效地址,即:EA=(PC)+D。
②基本寻址基址寄存器的位数可以设置得很长,从而可以在较 大的存储空间中寻址。
③、变址寻址变址寻址就是将指令的地址码部分给出的基准地 址A与CPU内某特定的变址寄存器Rx中的内容相 加,以形成操作数的有效地址。
8、段寻址方式
存储空间划分为多段 分寄存器堆栈,存储器堆栈以先进后出原理存储数据