上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
整数传送指令
作者:未知 申领版权
2010年12月12日 共有 1910 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:

    整数传送指令
    1、FILD
    指令格式:FILD  MemInt
    其中:MemInt是定义为整型数据类型的内存单元,但不能是用DB定义的存储单元。下同,不再叙述。
    2、FIST/FISTP
    

 
    
指令格式:
    
FIST  MemInt
    FISTP  MemInt
    
其中:
    
Mem是定义整型数据类型的内存单元,但不能是用DB定义的存储单元。
    
指令功能:
    
将协处理器堆栈栈顶的数据传送到目标存储单元中。在进行数据传送时,系统自动根据控制寄存器中舍入控制位的设置把栈顶浮点数舍入成整型数据。
    

指令FIST和FISTP的区别在于堆栈操作,详细请见11.3.1中的命名规则说明
    11.3.3 数学运算指令
    在协处理器的指令系统中,有关数学运算指令有:加法指令、减法指令、乘法指令、除法指令和求平方根指令等。涉及数学运算的指令有比例运算、舍入运算、求绝对值运算和改变数值符号运算等指令。
    1、加法指令
    

 
    
指令格式:
    
FADD
    
[STReg1, STReg2](*)
    
FADD
    
MemReal
    
FADDP
    
STReg, ST
    
FIADD
    
MemInt
    

(*) 在此指令格式下,如果同时指定了二个堆栈寄存器,那么,其中一个寄存器必须是ST。其它指令的同类格式与此同理。
    指令FADD含有二个隐含操作数ST(1)和ST,其运算功能是:从堆栈中弹出这二个操作数,然后把计算的“和”压入堆栈,即:ST=ST(1) ST。
    指令“FADD MemReal”的功能:ST=ST MemReal
    指令“FADDP STReg, ST”的功能:STReg=STReg ST,并弹出堆栈的栈顶
    指令“FIADD MemInt”的功能:ST=ST MemInt
    2、减法指令
    

 
    
指令格式:
    
FSUB
    
[STReg1, STReg2]
    
FSUB
    
MemReal
    
FSUBP
    
STReg, ST
    
FISUB
    
MemInt
    
FSUBR
    
[STReg1, STReg2]
    
;后四条指令是前四条指令的反模式形式
    
FSUBR
    
MemReal
    
FSUBRP
    
STReg,ST
    
FISUBR
    
MemInt
    

指令FSUB含有二个隐含操作数ST(1)和ST,其运算功能是:从堆栈中弹出这二个操作数,然后把计算的“差”压入堆栈,即:ST=ST(1)-ST。
    指令“FSUB MemReal”的功能:ST=ST-MemReal
    指令“FSUBP STReg, ST”的功能:STReg=STReg-ST,并弹出堆栈的栈顶
    指令“FISUB MemInt”的功能:ST=ST-MemInt
    反模式的四条指令的功能在此从略,请参阅11.3.1中的有关说明
    3、乘法指令
    

 
    
指令格式:
    
FMUL
    
[STReg1, STReg2]
    
FMUL
    
MemReal
    
FMULP
    
STReg, ST
    
FIMUL
    
MemInt
    

4、除法指令
    

 
    
指令格式:
    
FDIV
    
[STReg1, STReg2]
    
FDIV
    
MemReal
    
FDIVP
    
STReg, ST
    
FIDIV
    
MemInt
    
FDIVR
    
[STReg1, STReg2]
    
;后四条指令是前四条指令的反模式形式
    
FDIVR
    
MemReal
    
FDIVRP
    
STReg, ST
    
FIDIVR
    
MemInt
    

例如:
    

 
    
.387
    
word1
    
DW  20
    
data1
    
REAL8  8
    
data2
    
REAL8  -2
    
data3
    
REAL8  -12
    
……
    
FLD
    
data1
    
;本例只是显示指令的使用方法,无具体的实际功能
    
FLD
    
data2
    
FLD
    
data3
    
FDIV
    
ST(2), ST
    
FDIV
    
data1
    
FDIVP
    
ST(2), ST
    
FIDIV
    
word1
    

5、其它数学运算指令
    在协处理器中,除了完成具体的数学运算指令外,还设置了若干个与数学运算有关的运算指令。具体的运算指令及其功能描述如表11.4所列。
    表11.4 与数学运算有关的其它指令
    
    11.3.4 比较运算指令
    使用比较指令是将栈顶中的数与其它操作数进行比较,比较结果存于状态寄存器的条件编码位C3~C0处(参阅表11.2)。具体的比较运算指令及其功能描述如表11.5所列。
    表11.5 比较运算指令及其功能
    

指令格式
    
指令的功能
    
FSQRT
    
求栈顶数据的平方根。如果对负数求其平方根,则会发生错误,并可通过检测状态寄存器的标志位IE来确定。
    
FSCALE
    
将ST(1)中的数(转换成整数)加上ST的阶码,该指令能快速完成乘/除2n的运算。ST(1)中的数必须在2-15到215之间。
    
FPREM/FPREM1
    
ST=ST%ST(1),80387及其以后的协处理器支持FPREM1。
    
FRNDINT
    
对栈顶数据进行舍入运算,使之转换成整数。
    
FXTRACT
    
将栈顶数据分成二部分:无偏阶码和尾数。尾数存入栈顶,无偏阶码存入ST(1)。它常用将浮点数转换成小数形式打印输出。
    
FABS
    
ST=|ST|,即:求栈顶数据的绝对值。
    
FCHS
    
ST=-ST,即:改变栈顶数据的符号。
    

11.3.5 超越函数运算指令
    超越函数运算指令是用来实现三角函数或一些特殊的算术表达式而设置的,具体的指令及其功能说明如表11.6所列。
    表11.6 超越函数运算指令及其功能
    

指令格式
    
指令的功能
    
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.6 常数操作指令
    为了计算的方便,协处理器提供了几个将常用常数压栈的指令。如表11.7所示。
    表11.7 常数压栈指令及其常数值
    

指令格式
    
指令的功能
    
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。
    结果存入有一个弹出操作后的栈顶。
    

 

相关新闻

正切函数
余弦函数
求正弦函数的周期
正弦函数(2)
正弦函数(1)
计算并熟记常用三角函数值
常用角的正弦值
用口诀记简化公式
简化公式
同角三角比的关系

您可能对这些感兴趣  

干货分享|10本最受国外孩子喜爱的英文词典——上
从孩子的表现看父母的缺点!请家长对号入座,看看你是哪一类?
20条制作PPT的视觉原则
培训简史:培训者必知的历史轨迹
广田丰管理培训生人才培养调查报告
第4讲 作为上司的职业经理
第3讲 作为同事的职业经理
第2讲 作为下属的职业经理
第1讲 培养经理人的管理素养
酒店前台新员工上岗培训计划

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》