• 汇编 fsub ,fmul,fdiv,fild,CVTTPS2PI 指令


    知识点:
     浮点指令 fsub
    
    一、浮点指令fsub
       格式
       fsub memvar // st0=st0-memvar
    
    知识点:
     浮点指令 fmul
    
    一、浮点指令fmul
       格式
       fmul  memvar // st0=st0*memvar
       
    int _tmain(int argc, _TCHAR* argv[])
    {
    	double f1,f2;//float;
    	f1=3.333f;
    	f2=6.366f;
    	f1=f1*f2;
    
    //00401003  |.  83EC 10       SUB ESP,10                               ;  double f1,f2;
    //00401006  |.  DD05 F0204000 FLD QWORD PTR DS:[4020F0]
    //0040100C  |.  DD5D F0       FSTP QWORD PTR SS:[EBP-10]               ;  f1=[4020f0]=3.333;
    //0040100F  |.  DD05 E8204000 FLD QWORD PTR DS:[4020E8]
    //00401015  |.  DD5D F8       FSTP QWORD PTR SS:[EBP-8]                ;  f2=[4020e8]=6.366
    //00401018      DD45 F0       FLD QWORD PTR SS:[EBP-10]
    //0040101B      DC4D F8       FMUL QWORD PTR SS:[EBP-8]                ;  st0=st0*f2=6.366*3.33
    //0040101E      DD5D F0       FSTP QWORD PTR SS:[EBP-10]               ;  f1=21.21788
    return 0;
    }
    
    知识点:
     038-浮点指令FDIV(除)
    一、浮点指令FDIV   格式
       FDIVmemvar // st0=st0 / memvar
    
    int _tmain(int argc, _TCHAR* argv[])
    {
      float f1,f2;
      f1=3.33;
      f2=2.00;
      f1=f1/f2;
     
    //00401003  |.  83EC 08       SUB ESP,8                                ;  float f1,f2;
    //00401006  |.  D905 E8204000 FLD DWORD PTR DS:[4020E8]
    //0040100C  |.  D95D F8       FSTP DWORD PTR SS:[EBP-8]                ;  f1=3.33
    //0040100F  |.  D905 E4204000 FLD DWORD PTR DS:[4020E4]
    //00401015  |.  D95D FC       FSTP DWORD PTR SS:[EBP-4]                ;  f2=2.00
    //00401018  |.  D945 F8       FLD DWORD PTR SS:[EBP-8]
    //0040101B  |.  D875 FC       FDIV DWORD PTR SS:[EBP-4]                ;  st0=st0/f2
    //0040101E  |.  D95D F8       FSTP DWORD PTR SS:[EBP-8]                ;  f1=1.665
    
    
    	return 0;
    }
    
    知识点:
     038-浮点指令FILD
    一、浮点指令FILD格式
      整数入栈指令 //fld
      FILD memvar // st0=(double)memvar
    
    与之相似的指令有FIST 把st0的数转换成整数放置到变量中
    
    浮点指令CVTTPS2PI
    
    一、浮点指令CVTTPS2PI 
         把mem这个浮点数截断取整 后放到通用寄存器里边
        CVTTPS2PI mm0,mem// mm0
     
      CVTTPS2PI MM0,DQWORD PTR SS:[ebp]  //[eax]
      CVTTPS2PI MM0,DQWORD PTR SS:[ESP]
    
  • 相关阅读:
    Docsify 如何在一个 MD 文件中嵌入另外一个文件
    集合与条件、循环语句
    字典(当索引不好用时)
    序列(列表、元组、字符串)
    变量、数据类型和运算符
    Python基础知识
    计算机基础知识
    Windows环境下Python2和Python3的安装
    操作系统基础
    计算机硬件基础知识
  • 原文地址:https://www.cnblogs.com/whzym111/p/6370648.html
Copyright © 2020-2023  润新知