调用nasm函数时,如何获取堆栈帧中变量(C)的地址和值

调用nasm函数时,如何获取堆栈帧中变量(C)的地址和值,c,assembly,nasm,C,Assembly,Nasm,以下是一个例子: 我不知道如何停止funcNASM中的循环funcNASM如何知道有3个变量?必须将变量的地址作为参数传递给NASM函数。然后像往常一样从参数中检索它。如果你真的想检查堆栈帧本身,你首先需要知道堆栈帧是如何布置的。这意味着你需要知道C编译器是如何做到这一点的,即使在同一个系统上,编译器之间以及同一编译器的不同版本之间也可能存在差异。我知道,但是funcNASM如何知道有3个变量呢?我真的不理解这个函数,因为它不能推断,它必须通过设计来知道。这意味着,作为开发人员,您将知识应用到

以下是一个例子:


我不知道如何停止funcNASM中的循环funcNASM如何知道有3个变量?

必须将变量的地址作为参数传递给NASM函数。然后像往常一样从参数中检索它。如果你真的想检查堆栈帧本身,你首先需要知道堆栈帧是如何布置的。这意味着你需要知道C编译器是如何做到这一点的,即使在同一个系统上,编译器之间以及同一编译器的不同版本之间也可能存在差异。我知道,但是funcNASM如何知道有3个变量呢?我真的不理解这个函数,因为它不能推断,它必须通过设计来知道。这意味着,作为开发人员,您将知识应用到函数中。常见的stackframes包括本地分配给基于堆栈的变量的字节数信息,但是没有关于变量数量或类型的一般信息。这个图像对我来说毫无意义。funcNASM是什么,一个C函数中使用的没有参数的CPP宏?这与汇编语言,尤其是NASM有什么关系?即使它是GAS语法(如GCC或clang中的内联asm所用),也不可能从内联asm访问本地变量而不将它们用作asm语句的操作数。我不知道这应该是什么,也不知道你在问什么。你是说funcNASM调用函数吗?没有args?