从另一个文件调用汇编函数

自己

我有以下代码来计算一个完美运行的数字的平方:

        .section .data

        .section .text

        .globl _start
        .globl square

_start:
        pushl $10

        call square
        addl $4, %esp

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

        .type square,@function

square:
        pushl %ebp
        movl %esp, %ebp
        movl 8(%ebp), %eax

        imull %eax, %eax

end_square:
        movl %ebp, %esp
        popl %ebp
        ret     

我想square从另一个名为square_test.s. 这是我的尝试:

        .section .data

        .section .text

        .globl _start

_start:

        pushl $12
        call square
        addl $4, %esp

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

但是当链接它时会抛出这个错误:

$ as --32 square_test.s -o square_test.o
$ as --32 square.s -o square.o
$ ld -m elf_i386 square.o square_test.o -o square_test
square_test.o: In function `_start':
(.text+0x0): multiple definition of `_start'
square.o:(.text+0x0): first defined here

我应该如何解决这个问题?

自己

感谢上面的评论,我终于让它工作了。这是两个文件:

# file name: isolated_square.s

        .section .data

        .section .text

        .globl square

        .type square,@function

square:
        pushl %ebp
        movl %esp, %ebp
        movl 8(%ebp), %eax

        imull %eax, %eax

end_square:
        movl %ebp, %esp
        popl %ebp
        ret     

这是另一个文件:

        # file name: square_test.s
        .section .data

        .section .text

        .globl _start

_start:

        pushl $12
        call square
        addl $4, %esp

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

这就是您需要执行它的方式:

$ as --32 isolated_square.s -o isolated_square.o
$ as --32 square_test.s -o square_test.o
$ ld -m elf_i386 isolated_square.o square_test.o -o square_test
$ ./square_test
$ echo $?
144

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从一个JavaScript文件调用需要另一个函数的函数

来自分类Dev

从BrightScript中的另一个文件调用函数

来自分类Dev

如何从另一个QML文件调用QML文件中定义的Javascript函数?

来自分类Dev

rcpp函数调用另一个rcpp函数

来自分类Dev

PHP如何从另一个类和另一个文件调用函数?

来自分类Dev

通过Matlab中的另一个函数文件调用.m文件

来自分类Dev

汇编32位-从另一个程序调用一个程序

来自分类Dev

从头文件中声明的另一个文件中调用函数

来自分类Dev

在另一个函数中调用JS函数

来自分类Dev

在python中另一个文件中的另一个类中调用函数

来自分类Dev

AngularJS从另一个文件调用函数

来自分类Dev

在另一个函数内调用随机函数

来自分类Dev

如何从一个js文件调用函数到另一个

来自分类Dev

AWS Lambda函数可以从python文件调用另一个普通的python函数吗?

来自分类Dev

从另一个.swift文件调用ViewController函数

来自分类Dev

如何获取调用另一个文件的函数的Python文件的名称?

来自分类Dev

反应:无法从另一个文件调用函数

来自分类Dev

Python从另一个文件调用函数

来自分类Dev

从BrightScript中的另一个文件调用函数

来自分类Dev

如何从另一个QML文件调用QML文件中定义的Javascript函数?

来自分类Dev

在另一个Lisp文件中调用函数

来自分类Dev

从另一个文件和另一个类调用未指定的函数

来自分类Dev

从另一个文件调用一个函数到另一个函数C ++

来自分类Dev

如何从另一个PHP文件调用一个PHP函数

来自分类Dev

从另一个文件调用函数的输出?

来自分类Dev

汇编32位-从另一个程序调用一个程序

来自分类Dev

从另一个函数C#调用另一个函数

来自分类Dev

无法从另一个 JS 文件调用函数

来自分类Dev

Matlab:从另一个 .m 文件调用 .m 文件的函数

Related 相关文章

  1. 1

    从一个JavaScript文件调用需要另一个函数的函数

  2. 2

    从BrightScript中的另一个文件调用函数

  3. 3

    如何从另一个QML文件调用QML文件中定义的Javascript函数?

  4. 4

    rcpp函数调用另一个rcpp函数

  5. 5

    PHP如何从另一个类和另一个文件调用函数?

  6. 6

    通过Matlab中的另一个函数文件调用.m文件

  7. 7

    汇编32位-从另一个程序调用一个程序

  8. 8

    从头文件中声明的另一个文件中调用函数

  9. 9

    在另一个函数中调用JS函数

  10. 10

    在python中另一个文件中的另一个类中调用函数

  11. 11

    AngularJS从另一个文件调用函数

  12. 12

    在另一个函数内调用随机函数

  13. 13

    如何从一个js文件调用函数到另一个

  14. 14

    AWS Lambda函数可以从python文件调用另一个普通的python函数吗?

  15. 15

    从另一个.swift文件调用ViewController函数

  16. 16

    如何获取调用另一个文件的函数的Python文件的名称?

  17. 17

    反应:无法从另一个文件调用函数

  18. 18

    Python从另一个文件调用函数

  19. 19

    从BrightScript中的另一个文件调用函数

  20. 20

    如何从另一个QML文件调用QML文件中定义的Javascript函数?

  21. 21

    在另一个Lisp文件中调用函数

  22. 22

    从另一个文件和另一个类调用未指定的函数

  23. 23

    从另一个文件调用一个函数到另一个函数C ++

  24. 24

    如何从另一个PHP文件调用一个PHP函数

  25. 25

    从另一个文件调用函数的输出?

  26. 26

    汇编32位-从另一个程序调用一个程序

  27. 27

    从另一个函数C#调用另一个函数

  28. 28

    无法从另一个 JS 文件调用函数

  29. 29

    Matlab:从另一个 .m 文件调用 .m 文件的函数

热门标签

归档