Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 在程序集中声明具有多个变量的函数。(大会问题)_Assembly_X86_Nasm_Att_Calling Convention - Fatal编程技术网

Assembly 在程序集中声明具有多个变量的函数。(大会问题)

Assembly 在程序集中声明具有多个变量的函数。(大会问题),assembly,x86,nasm,att,calling-convention,Assembly,X86,Nasm,Att,Calling Convention,我是新来组装的,所以如果其中一些看起来是基本的,请容忍我。我已经环顾了很多地方,但还没有找到我所问问题的超级相对答案。我正在写一些汇编代码,我需要写一个函数,它接受多个变量并声明一个局部变量。(下面的代码)我还想知道这些变量放在哪里,以及如何在函数中访问它们。我对语言(C,C++,java,python,SWIFT)有丰富的经验,但是汇编和我学到的任何东西都有很大的不同。 我发现一些简单的源代码说我需要使用诸如“function(int,int,int,int):”之类的函数,但是查看gcc-S

我是新来组装的,所以如果其中一些看起来是基本的,请容忍我。我已经环顾了很多地方,但还没有找到我所问问题的超级相对答案。我正在写一些汇编代码,我需要写一个函数,它接受多个变量并声明一个局部变量。(下面的代码)我还想知道这些变量放在哪里,以及如何在函数中访问它们。我对语言(C,C++,java,python,SWIFT)有丰富的经验,但是汇编和我学到的任何东西都有很大的不同。 我发现一些简单的源代码说我需要使用诸如“function(int,int,int,int):”之类的函数,但是查看gcc-S中编译的汇编代码,我没有看到任何这样声明的函数。下面是我想模拟的代码示例

int func(int w,int x,int y,int z){

INTA=89

返回a

}


显然,这段C代码毫无价值,并且不使用任何传递的变量。我只是举个例子。然而,关于如何传递变量、如何声明函数以及如何访问它们(变量)的任何信息都将非常有用。我理解这些代码在章节中的位置,但我想了解一些关于上述问题的信息。

您基本上是在要求一个汇编教程。这对于堆栈溢出问题的范围来说有点大。考虑阅读一本书或教程。在ASM中,实现调用约定是由你决定的。它不是语言的一部分;除非通过注释,否则您不会“声明”它。汇编没有函数,只有标签,它仍然是一种语言抽象,但最接近您将得到的。创建一个作为入口点的标签,定义调用约定(参数传入和输出的方式和位置),然后简单地编写代码。