论坛
门户
内部优惠
喜欢
话题
VIP会员
搜索
新浪微博
登录
注册
100%
100%
首页
>
软件开发
>
汇编语言
>
经典汇编语言教程:11.3.4 比较类指令等
回复
« 返回列表
111111
精灵王
注册日期
2010-12-08
发帖数
640
QQ
火币
1103枚
粉丝
120
关注
75
加关注
写私信
打招呼
阅读:
9367
回复:
0
经典汇编语言教程:11.3.4 比较类指令等
楼主
#
更多
只看楼主
倒序阅读
发布于:2013-01-29 11:52
保存
100%
100%
[]
1
使用比较指令是将栈顶中的数与其它操作数进行比较,比较结果存于状态寄存器的条件编码位C3~C0处(参阅表11.2)。具体的比较运算指令及其功能描述如表11.5所列。
表11.5 比较运算指令及其功能
指令格式
指令的功能
FCOM
将栈顶数据与另一个操作数进行比较,该操作数可以存储在堆栈寄存器中,也可存储在
内存
中。
当在指令中不指定操作数时,其默认的操作数是ST和ST(1)。
FCOMP/FCOMPP
此指令的比较功能与FCOM相一致,所不同的是指出从堆栈中弹出一个,还是二个数据。
FICOM MemInt
FICOMP MemInt
栈顶数据与内存单元进行整数比较。指令FICOMP还要弹出栈顶数据。
FUCOM [STReg]
FUCOMP [STReg]
FUCOMPP
反向比较,其功能与上面同类指令类似。
FTST
栈顶数据与0进行比较。比较结果对条件编码位的影响如表11.2所示。
FXAM
检测栈顶数据是正数、负数,还是规格化数。比较结果对条件编码位的影响如表11.2所示。
11.3.5 超越函数运算指令
超越函数运算指令是用来实现三角函数或一些特殊的算术表达式而设置的,具体的指令及其功能说明如表11.6所列。
表11.6 超越函数运算指令及其功能
指令格式
指令的功能
FPTAN
求部分Y/X=tanθ,角度θ存于栈顶,其结果:
ST=X,ST(1)=Y
(1)、在8087-80287中,角度θ的范围上是0~π/4;
(2)、在80387以后的协处理器中,角度θ的范围上是0~263;
如果交度超过其取值范围,则状态IE标定为非法错误。
FPATAN
求部分反正切值θ=arctan(X/Y),X取自ST,Y取自ST(1);
其中:X和Y必须满足:0≤Y<X<∞;
指令执行时进行一次弹出操作,结果存入栈顶。
F2XM1
求2X-1的值,X取自栈顶,结果也存放栈顶,X的取值范围:-1~1。
FCOS或FSIN
求栈顶ST中角度的正弦或余弦值,ST中存放的是弧度。
运算结果也存于ST。
FSINCOS
求栈顶ST中角度的正弦和余弦值,ST中存放的是弧度。
运算结果:ST=正弦值,ST(1)=余弦值。
FYL2X
计算Ylog2X的值,X=ST,Y=ST(1),其中:X>0。
结果存入有一个弹出操作后的栈顶。
FYL2XP1
计算Ylog2(X+1)的值,X=ST,Y=ST(1),其中:0<X<1-2-0.5。
结果存入有一个弹出操作后的栈顶。
喜欢
0
评分
0
最新喜欢:
回复
100%
发帖
回复
« 返回列表
普通帖
您需要登录后才可以回帖,
登录
或者
注册
100%
返回顶部
关闭
最新喜欢