假如汇编语言要实现如下C语言的功能,编译环境Ubuntu14.04(32位)。

#include<stdio.h>
int fact_for(int n)
{int i;int result = 1;for(i = 2; i <= n; i++)result *= i;return result;
}int main(){printf("%d\n", fact_for(3));return 0;
}

  • 代码for.s
.section .datan: .int 3format: .asciz "%d\n"
.section .text
.global _start
_start:pushl %ebpmovl %esp, %ebpsubl $8, %espmovl n, %ecx        movl %ecx, (%esp)call fact_forpushl %eaxpushl $formatcall printfmovl $0, (%esp)call exitfact_for:pushl %ebpmovl %esp, %ebppushl %ebxmovl 8(%ebp), %edx    #get nmovl $1, %eax        #init resultmovl $2, %ecx        #init icmp %ecx, %edxjl .done.loop:imul %ecx, %eaxinc %ecxcmp %ecx, %edxjge .loop.done:popl %ebxpopl %ebpret        

  • 编译

as for.s -o for.o

  • 链接

ld -lc -I /lib/ld-linux.so.2 for.o -o for

  • 执行

./for

转载于:https://www.cnblogs.com/csu_xajy/p/4271171.html

汇编语言学习系列 for循环实现相关推荐

  1. Python学习系列(五)(文件操作及其字典)

    Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件      在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出 ...

  2. Java命令学习系列(一)——Jps

    转载自 Java命令学习系列(一)--Jps jps位于jdk的bin目录下,其作用是显示当前系统的java进程情况,及其id号. jps相当于Solaris进程工具ps.不象"pgrep ...

  3. 【汇编语言学习之路】第一章 汇编语言核心方法论

    版权声明:本学习笔记是本人根据小甲鱼"汇编语言学习课程"和<汇编语言>(王爽)的书籍,来记录笔记的 1 汇编语言核心方法论 1.1 学习汇编语言的必要性 汇编语言与机器 ...

  4. Java学习系列及数据结构博客全目录

    Java学习系列 Java学习系列(一)Java的运行机制.JDK的安装配置及常用命令详解 Java学习系列(二)Java注释.标识符.基本数据类型及其转换易错点详解 Java学习系列(三)Java运 ...

  5. python系列文章(基础,应用,后端,运维,自动化测试,爬虫,数据分析,可视化,机器学习,深度学习系列内容)

    python基础教程 python基础系列教程--Python的安装与测试:python解释器.PyDev编辑器.pycharm编译器 python基础系列教程--Python库的安装与卸载 pyth ...

  6. Android学习系列(7)--App轮询服务器消息

    这篇文章是android开发人员的必备知识. 1.轮询服务器      一般的应用,定时通知消息可以采用轮询的方法从服务器拿取消息,当然实时消息通知的话,建议采用推送服务.     其中需要注意轮询的 ...

  7. Java云同桌学习系列(十九)——Linux系统

    本博客java云同桌学习系列,旨在记录本人学习java的过程,并与大家分享,对于想学习java的同学,我希望这个系列能够鼓励大家一同与我学习java,成为"云同桌". 每月预计保持 ...

  8. python鼠标点击事件event_opencv-python教程学习系列5-处理鼠标事件

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍opencv-python处理鼠标事件,坚持学习,共同进步. 系统环境 系统:win_x64; p ...

  9. 数字电视业务PSI-SI学习系列

    目录 MPEG-2简介 TS流的生成与结构 DVB的分类 DVB SIPSI分析和处理 PATProgram Association Table节目关联表 PMTProgram Map Table节目 ...

最新文章

  1. RedHat、CentOS设置静态IP、主机名、关闭防火墙(虚拟机VMware客户机)
  2. The following packages will be SUPERCEDED by a higher-priority channel
  3. Linux上使用shell脚本查看内存情况(超实用)
  4. c++学习总结:extern声明全局变量
  5. 敏捷的项目启动-尽早启动!
  6. [POJ2420]A Star not a Tree?(模拟退火)
  7. 应用指定显示到副屏_LED灯杆屏广泛应用逐渐成为智慧城市信息化的重要窗口
  8. UVA10285 Longest Run on a Snowboard【DFS+记忆化搜索】
  9. 我的电脑缩略图模式盘符名字不见了
  10. 新鲜出炉,Amazon SDE 面经(电面+Onsite)
  11. Charles使用手册
  12. 亚马逊kindle设置_亚马逊的新款Kindle Fire平板电脑:极客评论
  13. jQuery实现button按钮提交表单
  14. RC / RL并联电路计算
  15. RocksDB Compaction(一)介绍
  16. Java多线程面试题:子线程循环10次,接着主线程循环100,接着又回到子线程循环10次, 接着再回到主线程又循环100,如此循环50次
  17. 基于以太坊的58同城 | DApp开发与应用案例
  18. python生成二维码教程_使用Python生成个性二维码
  19. C语言 从键盘输入圆的半径,计算并输出圆的正内接六边形的面积,以及这个正六边形面积占圆面积之百分比
  20. log4j 配置详解(超详细)

热门文章

  1. 征信一个月查40次,还能贷款吗?
  2. 哪些行为会影响个人征信?
  3. .classpath文件有什么用_干货分享:Windows目录结构剖析,C盘目录常见文件夹都有什么用?...
  4. android+建模工具,什么是适用于Android Studio的3D模型环境的最佳工具
  5. 神雕侠侣2服务器维护,《神雕侠侣2》手游10月22日停服维护公告
  6. 服务器损坏mysql修复_云服务器mysql数据库损坏修复mysql
  7. Unity中date相关问题
  8. bootstraptable获得所有行_2020广汽本田安全中国行·首届道路安全创新大赛成功举办...
  9. HMM前向算法,维比特算法,后向算法,前向后向算法代码
  10. Linux下设置环境变量