`
Ydoing
  • 浏览: 105964 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

汇编语言学习系列 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 .data
        n: .int 3
        format: .asciz "%d\n"
.section .text
.global _start
_start:
        pushl %ebp
        movl %esp, %ebp
        subl $8, %esp
        
        movl n, %ecx        
        movl %ecx, (%esp)
        call fact_for

        pushl %eax
        pushl $format
        call printf
        
        movl $0, (%esp)
        call exit
        
fact_for:
        pushl %ebp
        movl %esp, %ebp
        pushl %ebx
        
        movl 8(%ebp), %edx    #get n
        movl $1, %eax        #init result
        movl $2, %ecx        #init i
        
        cmp %ecx, %edx
        jl .done
        
.loop:
        imul %ecx, %eax
        inc %ecx
        cmp %ecx, %edx
        jge .loop

.done:
        popl %ebx
        popl %ebp
        
        ret        
复制代码
  • 编译

as for.s -o for.o

  • 链接

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

  • 执行

./for

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    汇编语言循环程序设计

    汇编语言的循环程序设计是学习和掌握计算机系统运作的重要部分,它涉及到如何用有限的指令实现重复执行特定任务的能力。下面将深入探讨汇编语言中的循环程序设计。 首先,我们要理解循环的基本结构。在汇编语言中,...

    汇编语言接口程序实现打印图形的程序

    本文将深入探讨如何使用汇编语言接口程序来实现打印图形的功能,这在早期计算机系统和嵌入式系统开发中尤其常见。通过理解和掌握这个主题,开发者能够更好地理解底层计算机工作原理,提高程序执行效率。 首先,我们...

    汇编语言学习大全

     1.1 汇编语言的由来及其特点  1 机器语言  2 汇编语言  3 汇编程序  4 汇编语言的主要特点  5 汇编语言的使用领域  1.2 数据的表示和类型  1 数值数据的表示  2 非数值数据的表示  3 基本的数据类型 ...

    汇编语言上机实验报告

    3. **循环结构**:"3汇编语言—循环结构程序.docx"可能包含了如WHILE、FOR或DO-WHILE等循环结构的实现。汇编语言中的循环通常使用跳转指令(如JMP、LOOP等)来实现,循环体内的代码会被重复执行,直到满足某个终止...

    win32汇编语言实现冒泡排序

    由于汇编语言不支持高级语言中的 `for` 循环,因此需要手动构建循环逻辑。下面是一个简化的循环框架: 1. **初始化**:设置循环变量。 2. **条件检查**:检查是否达到循环结束条件。 3. **执行操作**:执行循环体内...

    汇编语言.chm 学习汇编语言入门

     1.1 汇编语言的由来及其特点  1 机器语言  2 汇编语言  3 汇编程序  4 汇编语言的主要特点  5 汇编语言的使用领域  1.2 数据的表示和类型  1 数值数据的表示  2 非数值数据的表示  3 基本的数据类型 ...

    汇编语言 汇编语言

    4. **分支和循环结构**: 汇编语言支持各种条件判断和循环控制结构,如 IF、WHILE、FOR 等,这些都是构建复杂程序的基础。 5. **子程序和函数调用**: 子程序(或称为函数)是可重复使用的代码段,可以接受参数并返回...

    汇编语言视频教程

    - **汇编语言与其他语言的交互**:探讨如何将汇编语言代码与C/C++等高级语言结合使用,实现性能优化或其他特定需求。 - **汇编语言在现代编程中的角色**:讨论尽管高级语言日益流行,但汇编语言依然在某些领域扮演着...

    Intel汇编语言程序设计(第7版)

    配合《Assembly Language for x86 Processors (7th Edition).pdf》这本书,读者可以通过实例和练习深入理解和掌握汇编语言编程。同时,附带的\no.txt文件可能是作者或出版商提供的补充信息,或者是一个空文件,具体...

    汇编语言基础知识教程

    在汇编语言中,程序设计需要掌握流程控制结构,如顺序结构、分支结构(IF-THEN-ELSE)和循环结构(FOR、WHILE)。此外,函数和子程序的使用也非常重要,它们有助于组织代码,提高可读性和重用性。汇编语言中的函数...

    汇编语言排序实验程序

    这个"汇编语言排序实验程序"是学习汇编语言和理解底层计算机制的宝贵资源。通过实际编写和运行这样的程序,学生不仅可以掌握基本的汇编语法,还能深入了解如何高效地利用硬件资源执行复杂的算法。同时,这也是锻炼...

    汇编语言学习汇编语言学习汇编语言学习汇编语言学习汇编语言学习

    5. **汇编语言第六章:循环与分支程序设计**:深入讨论如何使用汇编语言实现循环结构(如FOR、WHILE)和条件判断(IF、GOTO),这些都是程序设计的基础元素。 6. **第七章 宏定义**:宏定义允许程序员创建可重用的...

    (汇编语言)学生成绩管理系统

    这个系统采用Masm for Windows集成实验环境2015进行开发,这是一个专门为汇编语言编程者提供的高效开发工具,集成了编辑、编译、调试等功能,使得在Windows平台上编写和测试汇编代码更为便捷。 汇编语言是计算机...

    计算机汇编语言教案

    4. **程序结构**:虽然汇编语言没有高级语言那样丰富的控制结构,但依然有类似于循环(如DO-WHILE,FOR)、条件分支(IF-THEN-ELSE)和子程序(PROCEDURE或FUNCTION)的概念。理解这些结构有助于组织和编写更复杂的...

    用汇编语言实现的电子时钟

    7. **条件分支与循环**:在汇编语言中,实现时钟的各种功能会用到条件分支(如IF-THEN-ELSE结构)和循环(如FOR或WHILE结构),以便根据时间状态和用户输入执行不同操作。 8. **程序结构**:尽管汇编语言没有高级...

    汇编语言 实心组图形变换

    在IT领域,汇编语言是一...总之,“汇编语言 实心组图形变换”是一个涉及图形处理、键盘输入响应和内存操作的综合项目,它展示了汇编语言在低级控制和优化方面的优势,同时也是一个很好的学习汇编语言实际应用的实例。

    汇编语言程序设计代码

    7. **条件转移和循环**:利用分支指令和跳转指令实现程序的逻辑控制,如IF-THEN-ELSE结构和FOR-NEXT循环。 在《专业汇编语言程序设计》中,理查德·布卢姆可能详细讲解了这些内容,并通过一系列实际代码示例让读者...

    汇编语言课程设计案例

    2.2 循环结构:为了实现霓虹灯的闪烁效果,通常会使用循环结构,如DO-WHILE或FOR循环,反复改变输出信号。 2.3 延时函数:为了实现灯光的闪烁效果,需要精确控制时间。这可能涉及到计数循环或调用操作系统提供的...

Global site tag (gtag.js) - Google Analytics