首页 理论教育 数学运算指令优化

数学运算指令优化

时间:2023-06-19 理论教育 版权反馈
【摘要】:整数运算指令的执行会影响状态字中的以下位:CC1和CC0、OV和OS。表4-14 整数数学运算指令对状态的影响(续)整数数学运算指令共有9条,分别是整数加、减、乘、除指令,长整数加、减、乘、除和求余指令。图4-23 整数加法指令表4-15 整数加法指令说明2.浮点数运算指令这里所说的浮点数是指32位IEEE浮点数,属于REAL数据类型。浮点数运算分基本指令和扩展指令两类。

数学运算指令优化

1.整数数学运算指令

整数数学运算指令对两个整数(16和32位)执行加、减、乘、除等运算。整数运算指令的执行会影响状态字中的以下位:CC1和CC0、OV和OS。表4-14列出了运算结果对这些状态位的影响情况。

表4-14 整数数学运算指令对状态的影响

978-7-111-44821-1-Chapter04-50.jpg

(续)

978-7-111-44821-1-Chapter04-51.jpg

整数数学运算指令共有9条,分别是整数加、减、乘、除指令,长整数加、减、乘、除和求余指令。这些指令的梯形图形式非常相似,除了助记符,其他都相同。下面只分析整数加法指令。

在启用输入端(EN)通过一个逻辑“1”来激活ADD_I指令。IN1和IN2相加,结果可通过OUT查看。如果该结果超出了整数(16位)允许的范围,OV位和OS位将为“1”并且ENO为逻辑“0”,这样便不执行此指令后由ENO连接的其他函数。

【例】 图4-23中,如果I0.0=“1”,则激活ADD_I指令。MW0+MW2相加的结果输出到MW10。

如果结果超出整数的允许范围,ENO=“0”,取反后设置输出Q4.0。整数加(整数加法指令说明见表4-15。)、减、乘、除指令,长整数加、减、乘、除和求余指令的助记符分别是ADD_I、SUB_I、MUL_I、DIV_I、ADD_DI、SUB_DI、MUL_DI、DIV_DI和MOD_DI。(www.xing528.com)

978-7-111-44821-1-Chapter04-52.jpg

图4-23 整数加法指令

表4-15 整数加法指令说明

978-7-111-44821-1-Chapter04-53.jpg

2.浮点数运算指令

这里所说的浮点数是指32位IEEE浮点数,属于REAL数据类型。浮点数运算分基本指令和扩展指令两类。基本指令有实数加、减、乘、除和取绝对值5条指令,扩展指令有浮点数求平方和平方根、浮点数求自然对数、浮点数指数运算,还有浮点数的三角函数运算,包括正弦和反正弦、余弦和反余弦、正切和反正切。

基本指令的助记符分别为:ADD_R、SUB_R、MUL_R、DIV_R和ABS。

扩展指令的助记符分别为:SQR和SQRT、LN、EXP、SIN和ASIN、COS和ACOS、TAN和ATAN。其中对数指令LN是求浮点数的自然对数;指数运算EXP是求浮点数的以e(=2.71828183)为底的指数值。在三角函数运算中,浮点数代表一个以弧度为单位的角度,而在反三角函数运算中,求一个定义在-1≤输入值≤1范围内的浮点数的反三角函数值,结果是一个以弧度为单位的角度。对反正弦函数和反正切函数,结果在-π/2~π/2之间;对反余弦函数,结果在0~π之间。

浮点数运算指令的语法和使用比较简单,和前面讲的整数运算指令相似,只是数据类型由整数换成了浮点数。此处不再细述。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈