一台计算机的指令系统通常有几十条至几百条指令,按其所完成的功能可分为:
(1)算术逻辑运算指令
一般计算机都具有这类指令。
通常根据算数运算的结果置状态位,一般有Z(结果为0)、N(结果为负)、V(结果溢出)、C(产生进位或借位)4个状态位。当满足括号内所提出的条件时,相应位置成1,否则为0。例如,结果为0时,Z = 1,否则Z=0。
(2)移位操作指令
移位操作指令分为算术移位、逻辑移位和循环移位3种,可以将操作数左移或右移若干位。
算术移位与逻辑移位很类似,但由于操作对象不同(前者的操作数带符号,后者的操作数为无符号)而移位操作有所不同。它们的主要差别在于右移时填入最高位的数据不同。算术右移保持最高位(符号位)不变,而逻辑右移最高位补零。
(3)浮点运算指令
主要用于科学计算的计算机应该设置浮点运算指令,一般能对单精度(32位)和双精度(64位)数据进行处理。
(4)十进制运算指令
在人机交互作用时,输入输出的数据都是以十进制表示的。在不具有十进制运算指令的计算机中,首先将十进制数据转换成二进制数,再在机器内运算;后又转换成十进制数据输出。因此,在输入输出数据频繁的计算机系统中,设置十进制运算指令能提高数据处理的速度。
(5)字符串处理指令
是一种非数值处理指令,一般包括字符串传送、字符串比较、字符串查询和字符串转换等指令。
(6)数据传送指令
用以实现寄存器与寄存器、寄存器与存储器(主存)单元、存储器单元与存储器单元之间的数据传送。一次可以传送一个数据或一批数据。
数据传送时,数据从源地址传送到目的地址,而源地址中的数据保持不变,因此实际上是数据复制。
有些机器设置了数据交换指令,完成源操作数与目的操作数交换,实现了双向数据传送。
(7)转移指令
用以控制程序流的转移。
a. 无条件转移指令(jump)与条件转移指令
无条件转移指令不受任何条件约束,直接把程序转移到指令所规定的目的地,在那里继续执行。
条件转移指令则根据计算机处理结果来决定程序如何执行。
标志:
b. 调用指令(call)与返回(return)指令
c. 陷阱(trap)与陷阱指令
(8)堆栈(stack)及堆栈操作指令
压入指令(PUSH),弹出指令(POP)
(9)输入输出(I/O)指令
(10)特权指令
(11)其他指令
向量指令(对向量或矩阵数据求和、求积的指令)
多处理机指令
控制指令(停机指令等)
网友评论