通常,计算机执行指令来处理数据,为了更加明确地指出指令执行过程中数据的来源以及执行结果的去向,一条完整的指令应包括下列信息。
(1)操作码:说明本条指令进行操作的性质及功能,表示该指令所要完成的操作。CPU每次从内存取出一条指令,指令中的操作码就告诉CPU应执行什么性质的操作。例如,用操作码“0000”表示“加法”操作,操作码“0001”表示“减法”操作等。
每条指令都要求它的操作码必须是独一无二的,指令不同,操作码也不同。操作码的长度取决于指令系统中的指令条数。例如,若操作码长度为4位,则指令系统中指令的个数不能多于16条。
(2)操作数的地址:也可称之为地址码。地址码用来描述该指令的操作对象,CPU通过该地址可获得需要的操作数。在地址码中可以直接给出操作数本身,也可以直接指出操作数在存储器中的地址或寄存器地址,或间接给出操作数在存储器中的地址等。
(3)操作结果的存储地址:把本条指令执行完成之后产生的结果保存在这个存储地址中,以便于再次使用。
(4)下一条指令的地址:通常在程序顺序执行的情况下,下一条指令的地址由程序计数器给出,仅在程序的运行顺序改变时(如转移指令),下一条指令的地址才由指令给出。
计算机的指令格式与机器的字长、存储器的容量以及指令的功能都有很密切的关系。从提高指令功能的角度来看,指令中所包含的信息越多越好。但是这样会出现一个问题,就是在有些指令中,一部分信息没有被充分利用,造成指令存储空间的浪费,影响访问速度。因此,一条指令往往只包括两种信息:操作码和地址码(操作数),其格式如图4-1所示。
(www.xing528.com)
图4-1 指令的组成
机器指令是CPU唯一能够直接识别并执行的指令。但是对使用者而言,机器指令在记忆、阅读和书写方面都是比较困难的。因此,在学习指令时都采用容易记忆的符号和格式来表示,也即助记符指令,或汇编语言指令。汇编语言指令的一般格式为
[标号] 指令助记符 [操作数表] [;注释]
其中,标号部分是给指令或某一存储单元地址所起的名字;指令助记符表示指令所执行的操作,为了方便记忆,一般用英文单词缩写或几个单词的第一个字符组成,如ADD表示加法指令;操作数表示参与操作的对象,可以是立即数、寄存器和存储单元。操作数可以有一个或两个,写在左边的操作数为目标操作数,右边的操作数为源操作数(也可能相反),操作数之间用逗号隔开;注释部分通常是对指令或程序功能的简要说明,目的是提高程序的可读性,它必须以分号“;”开始。
用方括号括起来的部分,是可选项。每部分之间用空格(至少一个)分开。
由于汇编语言指令易读、易记,因此下面关于指令系统的介绍都采用这一格式。当然计算机是不能直接执行汇编语言指令的,必须翻译(汇编语言指令)成机器指令才能装入存储器被计算机自动执行。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。