首页 > 解决方案 > 从 x86 向 C 函数传递参数

问题描述

我正在学习汇编,但我无法理解我的代码出了什么问题。我正在尝试将一个值(在本例中为 4)传递给 C 中的一个函数,该函数只打印该值。但是,当我运行代码时,它会打印 1 而不是 4。我在 Ubuntu 上运行 64 位,并且正在使用 GCC 进行编译。

这是组装:

.extern myprint

  .text
  .global main
main:   
        push  $4
        call   myprint 

        mov    $1, %eax
        int    $0x80

这是C中的函数:

#include <stdio.h>

int myprint(int n) {
  printf("%d\n", n);
  return 0;
}

标签: assemblyx86

解决方案


推荐阅读