版权归原作者所有,如有侵权,请联系我们

[科普中国]-算术逻辑运算指令

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

算术逻辑运算指令包括算术运算指令、逻辑运算指令和移位指令。算术运算指令是计算机能够执行的基本数值计算,包括加法ADD、减法SUB、乘法MUL、除法DIV等。逻辑运算指令是对数据进行逻辑操作,包括逻辑与AND、逻辑或OR、逻辑非NOT等三种基本操作以及同或、异或等组合逻辑操作。

简介在计算机技术中,“指令”是由指令集架构定义的单个的CPU操作。在更广泛的意义上,“指令”可以是任何可执行程序的元素的表述,例如字节码。一台计算机通常有几十条到几百条指令,按其所完成的功能可分为:算术逻辑运算指令、移位指令、浮点运算指令、十进制运算指令、数据传送指令、转移指令、字符串处理指令、向量运算指令、堆栈指令、输入输出指令、特权指令和控制指令等。算术逻辑运算指令的主要功能是进行各类数据信息处理,计算机一般都具有这类指令。早期的小型计算机和微型计算机的硬件结构比较简单,一般只设置二进制定点加减法、比较和求补码(取负数)等最基本的算术指令。由于芯片集成度的提高,后来的中央处理器都支持用硬件实现的乘除法指令。计算机还具有对两个操作数进行逻辑乘、逻辑加和按位加(异或)操作的逻辑运算。有些计算机还设置位操作指令,如位测试(测试指定位的值)、 位清除(把数中的某一位置 为零)、位求反(取某位的非值)等指令。

算术运算指令算术运算指令主要包括二进制的定点、浮点的加、减、乘、除运算指令;求反、求补、加1、减1、比较指令;十进制加、减运算指令等。不同计算机对算术运算类指令的支持有很大差别。对于低档机而言,由于硬件结构相对简单,一般仅支持二进制定点加、减、比较、求补等最简单、最基本的指令。而在一些高档机中,为了提高机器性能,除了最基本的算术运算指令之外,还设置了乘、除运算指令、浮点运算指令、十进制运算指令,甚至乘方、开方指令和多项式计算指令。在一些大、巨型机中,不仅支持标量运算,还设置了向量运算指令,可以直接对整个向量或矩阵进行求和、求积运算1。

算术运算指令的操作数有多种类型,如定点数、浮点数,定点数又可以分为带符号数和无符号数,浮点数又可以分为单精度和双精度,因此,每一种运算指令也按操作数的类型分为带符号数定点运算、无符号数定点运算、单精度浮点运算、双精度浮点运算等。

浮点运算指令:浮点运算适合对数值范围变化较大的数,用于科学计算或工程计算的计算机往往设置浮点运算指令,处理的数经常为单精度或双精度数。某些计算机没有设置浮点运算指令而用子程序实现浮点运算,因而处理速度慢。

十进制运算指令:在某些数据处理系统中,输入输出数据很多,设置十进制运算指令可减少十进制数与二进制数之间的转换,提高处理速度。在通用大型计算机系统中,这些数由若干位十进制数码组成,每个十进制位用BCD码表示;在某些微处理器中设置的十进制加减法运算指令往往只对1位十进制数进行运算,对于多位的十进制数的运算则用程序实现。

移位操作指令移位操作指令是一组经常使用的指令,属于汇编语言逻辑指令中的一部分。移位指令分算术移位、逻辑移位和循环移位3种。可以对n位操作数左移或右移位。算术移位和逻辑移位的主要差别在于右移时,填入高位的数码不同,算术移位处理的是带符号的操作数所以右移时保持最高位(符号位)不变;逻辑移位处理的是不带符号的操作数, 右移时,最高位填入0。算术左移和逻辑左移的操作是相同的,低位补充0。循环左移将移出的最高位送到最低位;循环右移将移出的最低位送到最高位,使数据本身循环传送。移位还可实现对带符号数或不带符号数乘以或整除以的运算(分别左移位或右移位)。移位指令的执行时间比乘除法运算的执行时间短得多。

逻辑运算指令逻辑运算指令进行二进制数据的按位运算。例如逻辑与指令,当两个操作数的对应位都为“1”时,逻辑与操作结果中该位才为“1”,该指令常用于屏蔽或检测数据字中的某些位;逻辑或指令则是当两个操作数的对应位中有一个为“1”时,操作结果中的该位为“1”,该指令常用于将数据字中的某些位置为“1”;逻辑非就是把数据字中的所有位求反。

本词条内容贡献者为:

李嘉骞 - 博士 - 同济大学