《汇编语言程序设计》教学课件.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言程序设计 第11章 数值运算协处理器 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 5、其它数学运算指令  在协处理器中,除了完成具体的数学运算指令外,还设置了若干个与数学运算有关的运算指令。具体的运算指令及其功能描述如表11.4所列。 第11章 数值运算协处理器 例如: .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 第11章 数值运算协处理器 ST=-ST,即:改变栈顶数据的符号。 FCHS ST=|ST|,即:求栈顶数据的绝对值。 FABS 将栈顶数据分成二部分:无偏阶码和尾数。尾数存入栈顶,无偏阶码存入ST(1)。它常用将浮点数转换成小数形式打印输出。 FXTRACT 对栈顶数据进行舍入运算,使之转换成整数。 FRNDINT ST=ST%ST(1),80387及其以后协处理器支持FPREM1。 FPREM/FPREM1 将ST(1)中的数(转换成整数)加上ST的阶码,该指令能快速完成乘/除2n的运算。ST(1)中的数必须在2-15到215之间。 FSCALE 求栈顶数据的平方根。如果对负数求其平方根,则会发生错误,并可通过检测状态寄存器的标志位IE来确定。 FSQRT 指令的功能 指令格式 第11章 数值运算协处理器  使用比较指令是将栈顶中的数与其它操作数进行比较,比较结果存于状态寄存器的条件编码位C3~C0处表。具体的比较运算指令及其功能描述如表11.5所列。 11.3.4 比较运算指令 检测栈顶数据是正数、负数,还是规格化数。比较结果对条件编码位的影响如表11.2所示。 FXAM 栈顶数据与0进行比较。比较结果对条件编码位的影响如表11.2所示。 FTST 反向比较,其功能与上面同类指令类似。 FUCOM [STReg] FUCOMP [STReg] FUCOMPP 栈顶数据与内存单元进行整数比较。指令FICOMP还要弹出栈顶数据。 FICOM MemInt FICOMP MemInt 此指令的比较功能与FCOM相一致,所不同的是指出从堆栈中弹出一个,还是二个数据。 FCOMP/FCOMPP 将栈顶数据与另一个操作数进行比较,该操作数可以存储在堆栈寄存器中,也可存储在内存中。 当在指令中不指定操作数时,其默认的操作数是ST和ST(1)。 FCOM 指令的功能 指令格式 第11章 数值运算协处理器 11.3.5 超越函数运算指令 计算Ylog2(X+1)的值,X=ST,Y=ST(1),其中:0<X<1-2-0.5。 结果存入有一个弹出操作后的栈顶。 FYL2XP1 计算Ylog2X的值,X=ST,Y=ST(1),其中:X>0。 结果存入有一个弹出操作后的栈顶。 FYL2X 求栈顶ST中角度的正弦和余弦值,ST中存放的是弧度。 运算结果:ST=正弦值,ST(1)=余弦值。 FSINCOS 求栈顶ST中角度的正弦或余弦值,ST中存放的是弧度。运算结果也存于ST。 FCOS或FSIN 求2X-1的值,X取自栈顶,结果也存放栈顶,X的取值范围:-1~1。 F2XM1 求部分反正切值θ=arctan(X/Y),X取自ST,Y取自ST(1); 其中:X和Y必须满足:0≤Y<X<∞; 指令执行时进行一次弹出操作,结果存入栈顶。 FPATAN 求部分Y/X=tanθ,角度θ存于栈顶,其结果: ST=X,ST(1)=Y 在8087-80287中,角度θ的范围上是0~π/4; 在80387以后的协处理器中,角度θ的范围上是0~263; 如果交度超过其取值范围,则状态IE标定为非法错误。 FPTAN 指令的功能 指令格式 第11章 数值运算协处理器 11.3.6 常数操作指令  为了计算的方便,协处理器提供了几个将常用常数压栈的指令。 表11.7 常数压栈指令及其常数值 ST= loge2 FLDLN2

您可能关注的文档

文档评论(0)

xwbj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档