1、指令
---- 指令就是控制计算机执行某种操作(如加、减、传送、转移等)的命令。
指令系统/指令集:一台计算机所能执行的全部指令的集合,称为该计算机的指令系统或指令集。
---- 由于指令系统既是计算机硬件设计的主要依据,又是计算机软件设计的基础,因此,一台计算机的指令系统的优劣直接
影响着计算机系统的性能。
2、机器指令
---- 在计算机中,指令用于直接表示对计算机硬件实体的控制信息,是计算机硬件唯一能够直接理解并执行的命令,故也称为
机器指令。利用机器指令设计的编程语言称为机器语言。通常一条机器语言语句就是一条机器指令。
---- 用机器语言编制的程序称为机器语言程序。由于机器语言是计算机硬件惟一能够直接理解并执行的语言,所以任何用其他
语言编制的程序都必须经过“翻译”,翻译为机器语言程序,才能在机器中正确的运行。指令系统是面向机器的,不同的计算机
系统具有不同的指令集,即每一个计算机系统都有自己的指令系统。
3、机器指令格式
---- 在计算机中,指令与数据一样是采用二进制代码表示的。通常把表示一条指令的一串二进制代码称为指令码或指令字。
为了说明机器硬件应完成的操作,一条指令中应指明指令要执行的操作和作为操作对象的操作数的来源以及操作结果的去向。
指令的基本格式分为:OP(operation code/opcode操作码字段)和A(地址码字段)。
---- 在机器指令中,操作码OP表示指令应执行的操作和应具有的功能,是一条指令中不可缺少的部分,不同的指令应有不同的
操作码;地址码A是一个广义的概念,用于表示与操作数据相关的地址信息。地址码既可以表示参与操作的操作数的存放地址或
操作结果的存放地址,也可以表示操作数本身。一条指令可以具有多个地址码字段,也可以没有地址码。
---- 指令格式与指令功能、机器字长及存储器容量有关。设计指令格式时,需要指定指令中编码字段的个数、各个字段的位数及
编码方式。指令格式的设计内容主要包括确定指令字的长度和划分指令字的字段并对各字段加以定义两个方面。
4、指令字的长度
---- 指令字的长度是指一个指令字中包含的二进制代码的位数。在一个指令系统中,如果各种指令字的长度均为固定的,则称为
定长指令字结构;如果各种指令字的长度随指令功能而异,则称为可变长指令字结构。
---- 定长指令字的指令长度固定,结构简单,指令译码时间短,有利于硬件控制系统的设计,多用于机器字长较长的大、中型及
超小型计算机;在精简指令集计算机中也多采用定长指令。但定长指令字存在指令平均长度长、容易出现冗余码点、指令不易
扩展的问题。
---- 可变长指令字的指令长度不定,结构灵活,能充分利用指令的每一位,所以指令的码点冗余少,平均指令长度短,易于扩展。
但指令格式不规整,取指令时可能需要多次访存,从而导致不同指令的执行时间不一致,硬件控制系统复杂。
---- 虽然不同指令系统的指令长度各不相同,但因为指令与数据都是存放在存储器中的,所以无论是定长还是可变长指令,其长度
都不能随意确定。为了便于存储,指令长度与机器字长之间具有一定的匹配关系。由于机器字长通常等于字符长度的整倍数,而
一个字符一般占有一个字节的长度,因此指令长度通常设计为字节的整倍数。
----根据指令长度与机器字长的匹配关系,通常将指令长度等于机器字长的指令,称为单字长指令;指令长度等于两个机器字长的
指令,称为双字长指令;根据需要,有的指令系统中还有更多倍字长的指令以及半字长指令等。由于短指令占用存储空间少,有利于
提高指令执行速度,通常把最常用的指令(算术逻辑运算指令、数据传送指令等)设计成短指令格式。