zoukankan      html  css  js  c++  java
  • 汇编基础学习---浮点运算

    ((43 .65 / 22 ) + (76.34 * 3.1))  /  ( (12.34 * 6 ) - (140.2 / 94.21) )

     1 .section .data
     2 value1:
     3     .float 43.65
     4 value2:
     5     .int 22
     6 value3:
     7     .float 76.34
     8 value4:
     9     .float 3.1
    10 value5:
    11     .float 12.34
    12 value6:
    13     .int 6
    14 value7:
    15     .float 140.2
    16 value8: 
    17     .float 94.21
    18 output:
    19     .asciz "The result is %f 
    "
    20 .section .text
    21 .globl _start
    22 _start:
    23 nop
    24     finit
    25     flds value1
    26     flds value2
    27     flds value3
    28     flds value4
    29     fmul %st(1), %st(0)
    30     fmul %st(2), %st(0)
    31     flds value5
    32     fmul value6
    33     flds value7
    34     flds value8
    35     fdivrp
    36     fsubr %st(1), %st(0)
    37     fdivr %st(2), %st(0)
    38     subl  $8, %esp
    39     pushl $output
    40     call  printf
    41     add $12, %esp
    42     pushl $0
    43     call exit
    as -o yunsuan.o yunsuan.s
    yunsuan.s: Assembler messages:
    yunsuan.s:40: 错误: invalid instruction suffix for `push'
    yunsuan.s:43: 错误: invalid instruction suffix for `push'

    错误原因是,在64位系统和32位系统的as命令对于某些汇编指令的处理支持不一样造成的。

    在文件.s中,包含指令:pushl  %ebp,该指令在64位系统下就编译不过

    决方法:在callee.s中,在代码头部添加.code32即可

  • 相关阅读:
    浏览器跨域访问WebApi
    外部主机无法访问IIS发布的网站
    在VisualStudio中远程调试IIS站点
    关于跨域请求的一些解决方案
    MVC与WebApi中的异常过滤器
    委托与事件
    C#中的属性
    C#中的索引
    Equals与==的区别
    关于跨域响应头Access-Control-Allow-Headers的一些说明
  • 原文地址:https://www.cnblogs.com/mysky007/p/11247740.html
Copyright © 2011-2022 走看看