汇编语言学习系列 for循环实现
假如汇编语言要实现如下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循环实现相关推荐
- Python学习系列(五)(文件操作及其字典)
Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件 在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出 ...
- Java命令学习系列(一)——Jps
转载自 Java命令学习系列(一)--Jps jps位于jdk的bin目录下,其作用是显示当前系统的java进程情况,及其id号. jps相当于Solaris进程工具ps.不象"pgrep ...
- 【汇编语言学习之路】第一章 汇编语言核心方法论
版权声明:本学习笔记是本人根据小甲鱼"汇编语言学习课程"和<汇编语言>(王爽)的书籍,来记录笔记的 1 汇编语言核心方法论 1.1 学习汇编语言的必要性 汇编语言与机器 ...
- Java学习系列及数据结构博客全目录
Java学习系列 Java学习系列(一)Java的运行机制.JDK的安装配置及常用命令详解 Java学习系列(二)Java注释.标识符.基本数据类型及其转换易错点详解 Java学习系列(三)Java运 ...
- python系列文章(基础,应用,后端,运维,自动化测试,爬虫,数据分析,可视化,机器学习,深度学习系列内容)
python基础教程 python基础系列教程--Python的安装与测试:python解释器.PyDev编辑器.pycharm编译器 python基础系列教程--Python库的安装与卸载 pyth ...
- Android学习系列(7)--App轮询服务器消息
这篇文章是android开发人员的必备知识. 1.轮询服务器 一般的应用,定时通知消息可以采用轮询的方法从服务器拿取消息,当然实时消息通知的话,建议采用推送服务. 其中需要注意轮询的 ...
- Java云同桌学习系列(十九)——Linux系统
本博客java云同桌学习系列,旨在记录本人学习java的过程,并与大家分享,对于想学习java的同学,我希望这个系列能够鼓励大家一同与我学习java,成为"云同桌". 每月预计保持 ...
- python鼠标点击事件event_opencv-python教程学习系列5-处理鼠标事件
前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍opencv-python处理鼠标事件,坚持学习,共同进步. 系统环境 系统:win_x64; p ...
- 数字电视业务PSI-SI学习系列
目录 MPEG-2简介 TS流的生成与结构 DVB的分类 DVB SIPSI分析和处理 PATProgram Association Table节目关联表 PMTProgram Map Table节目 ...
最新文章
- RedHat、CentOS设置静态IP、主机名、关闭防火墙(虚拟机VMware客户机)
- The following packages will be SUPERCEDED by a higher-priority channel
- Linux上使用shell脚本查看内存情况(超实用)
- c++学习总结:extern声明全局变量
- 敏捷的项目启动-尽早启动!
- [POJ2420]A Star not a Tree?(模拟退火)
- 应用指定显示到副屏_LED灯杆屏广泛应用逐渐成为智慧城市信息化的重要窗口
- UVA10285 Longest Run on a Snowboard【DFS+记忆化搜索】
- 我的电脑缩略图模式盘符名字不见了
- 新鲜出炉,Amazon SDE 面经(电面+Onsite)
- Charles使用手册
- 亚马逊kindle设置_亚马逊的新款Kindle Fire平板电脑:极客评论
- jQuery实现button按钮提交表单
- RC / RL并联电路计算
- RocksDB Compaction(一)介绍
- Java多线程面试题:子线程循环10次,接着主线程循环100,接着又回到子线程循环10次, 接着再回到主线程又循环100,如此循环50次
- 基于以太坊的58同城 | DApp开发与应用案例
- python生成二维码教程_使用Python生成个性二维码
- C语言 从键盘输入圆的半径,计算并输出圆的正内接六边形的面积,以及这个正六边形面积占圆面积之百分比
- log4j 配置详解(超详细)
热门文章
- 征信一个月查40次,还能贷款吗?
- 哪些行为会影响个人征信?
- .classpath文件有什么用_干货分享:Windows目录结构剖析,C盘目录常见文件夹都有什么用?...
- android+建模工具,什么是适用于Android Studio的3D模型环境的最佳工具
- 神雕侠侣2服务器维护,《神雕侠侣2》手游10月22日停服维护公告
- 服务器损坏mysql修复_云服务器mysql数据库损坏修复mysql
- Unity中date相关问题
- bootstraptable获得所有行_2020广汽本田安全中国行·首届道路安全创新大赛成功举办...
- HMM前向算法,维比特算法,后向算法,前向后向算法代码
- Linux下设置环境变量