计算机是通过执行指令来处理各种数据的。
为了指出数据的来源、操作结果的去向及所执行的操作,一条指令一般包含下列信息。
(1)操作码:(operation code)
具体说明操作的性质及功能。每一条指令都有一个相应的操作码,计算机通过识别操作码来完成不同操作。
(2)操作数的地址:
CPU通过地址就可以取得所需的操作数。
(3)操作结果的存储地址:
把对操作数的处理所产生的结果保存到该地址中。
(4)下一条指令的地址:
当程序顺序执行时,下一条指令的地址由程序计数器(PC)给出,仅当改变程序的运行顺序(如转移)时,下一条指令的地址才由指令给出。
从上述分析可知,一条指令包括两种信息即操作码和地址码。
操作码表示该指令所要完成的操作,其长度取决于指令系统中的指令条数;
地址码描述该指令的操作对象,或直接给出操作数,或指出操作数的存储器地址或寄存器地址。
根据地址码部分所给出地址的个数,指令格式分为如下几种:
1.零地址指令 [OPCODE]
OPCODE———操作码
指令中只有操作码,没有操作数或操作数地址,这种指令有两种可能:
(1)无须任何操作数。如空操作指令、停机指令等。
(2)操作数地址默认。(如寄存器)
2.一地址指令 [OPCODE | A]
A———操作数的存储器地址或寄存器地址
指令中只给出一个地址,该地址既是操作数的地址,又是操作结果的存储地址。如加1、减1和移位等单操作数指令均采用这种格式。
在某些字长较短的微型机中(Intel 8080等),大多数算数逻辑运算指令也采用这种格式,第一个源操作数由地址码A给出,第二个源操作数在一个默认的寄存器中,运算结果仍送回到这个寄存器中,替换基原寄存器内容,通常把这个寄存器称为累加器。
3.二地址指令 [OPCODE | A1 | A2]
A1———第一个源操作数的存储器地址或寄存器地址
A2———第二个源操作数和存放操作结果的存储器地址或寄存器地址
这是最常见的指令格式,两个地址指出两个源操作数地址,其中一个还是存放结果的目的地址。对两个源操作数进行操作码所规定的操作后,将结果存入目的地址。
4.三地址指令[OPCODE | A1 | A2 | A3]
对A1、A2地址指出的两个源操作数进行操作,结果存入A3中。
5.多地址指令
在某些性能较强的计算机中,往往设置处理成批数据的指令,如字符串处理指令。为了描述一批数据,指令中需要多个地址来指出源数据存放的首地址、长度以及运算结果存放的地址等。
网友评论