当前位置: 首页 > news >正文

Intel汇编-函数使用堆栈传递数据

# An example of using stack variables in functions. (函数使用堆栈传递数据)
#
# 计算给定半径的圆的面积
#

    .section .data
precision:
    .byte 0x7f, 0x00

    .section .bss
.lcomm result, 4

    .section .text
    .globl main
main:
    nop
    finit
    fldcw precision

    push $10
    call area
    addl $4, %esp
    movl %eax, result

    push $2
    call area
    addl $4, %esp
    movl %eax, result

    push $120
    call area
    addl $4, %esp
    movl %eax, result

    movl $1, %eax
    movl $0, %ebx

.type area, @function
area:
    push %ebp
    movl %esp, %ebp
    subl $4, %esp
    fldpi
    filds 8(%ebp)
    fmul %st(0), %st(0)
    fmulp %st(0), %st(1)
    fstps -4(%ebp)
    movl -4(%ebp), %eax
    movl %ebp, %esp
    pop %ebp
    ret

# gcc -g -o 03 03-stack.s -m32
#

相关文章:

  • 【Android程序开发】常用布局--线性布局LinearLayout
  • 基于Dijkstra、A*和动态规划的移动机器人路径规划(Matlab代码实现)
  • 国产EDA与FPGA芯片验证方案
  • 一种更优雅书写Python代码的方式
  • 自定义类型(结构体、位段、联合体、枚举)
  • 如何基于 GORM 实现 CreateOrUpdate 方法
  • Spring Boot核心之基本配置、日志配置、自动配置、条件注解
  • ArcGIS校园3D展示图制作详细教程
  • 【算法 | 实验6-1】n*n的网格,从左上角开始到右下角结束遍历所有的方块仅一次,总共有多少种不同的遍历路径
  • c++数据结构:图(邻接表)
  • SCOUT MINI Pro松灵机器人j建图定点步骤
  • 10个Pandas的小技巧
  • 广度优先遍历解决迷宫问题
  • 掌握 Microsoft Excel 宏和 Excel VBA
  • springboot框架中如何整合mybatis框架?
  • Angular 2 DI - IoC DI - 1
  • Docker入门(二) - Dockerfile
  • iOS小技巧之UIImagePickerController实现头像选择
  • js
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • PHP 小技巧
  • Spring框架之我见(三)——IOC、AOP
  • 扑朔迷离的属性和特性【彻底弄清】
  • 区块链将重新定义世界
  • 数据结构java版之冒泡排序及优化
  • 应用生命周期终极 DevOps 工具包
  • PostgreSQL之连接数修改
  • 数据库巡检项
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​Spring Boot 分片上传文件
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • (30)数组元素和与数字和的绝对差
  • (AngularJS)Angular 控制器之间通信初探
  • (二)斐波那契Fabonacci函数
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (篇九)MySQL常用内置函数
  • (顺序)容器的好伴侣 --- 容器适配器
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • *p++,*(p++),*++p,(*p)++区别?
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .a文件和.so文件
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .gitignore文件设置了忽略但不生效
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET Core 项目指定SDK版本
  • .NET 回调、接口回调、 委托
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • [AI]文心一言出圈的同时,NLP处理下的ChatGPT-4.5最新资讯