zoukankan      html  css  js  c++  java
  • 汇编 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]
    
  • 相关阅读:
    计算机的几种命令行
    oracle体系结构
    数字档案馆建设指南及档案业务系统归档接口规范
    ERP系统归档
    oracle ITL(事务槽)的理解
    oracle表属性
    docker+httpd的安装
    访问GitLab的PostgreSQL数据库,查询、修改、替换等操作
    docker+rabbitmq的安装
    docker+elasticsearch的安装
  • 原文地址:https://www.cnblogs.com/whzym111/p/6370648.html
Copyright © 2011-2022 走看看