calling-convention 相关问题

调用约定是指函数将参数传递给被调用函数并从中接收返回值的方式。

如何访问在进入 DLL 时在堆栈上传递的参数?

我正在从 ctypes 调用 NASM 64 位 DLL。该 dll 有五个输入参数。在 Windows 调用约定中,前四个在 rcx、rdx、r8 和 r9 中传递,第五个在

回答 1 投票 0

记住 x86-64 System V arg 寄存器顺序的最佳方法是什么?

我经常忘记系统调用中每个参数需要使用的寄存器,每次我忘记时我都会访问这个问题。 整数/指针参数到 x86_64 用户空间函数的正确顺序...

回答 2 投票 0

可变参数函数的调用约定[关闭]

初始化可变参数列表时,您可以使用宏 va_start 并在 va 列表开始之前传递 list_name 和最后一个固定参数,因为“最后一个固定参数与

回答 1 投票 0

LDS 导致无限循环,而 LES 工作正常

这是我唯一的代码code.asm。我正在从 .c 文件执行此函数。但通过这个简单的代码,使用 lds 而不是 les 会导致无限循环...... _COD 段字节公共“代码” 假设...

回答 1 投票 0

Lds 导致无限循环,而 les 工作正常

这是我唯一的代码code.asm。我正在从 .c 文件执行这个函数。但是用这个简单的代码,uding lds 而不是 les 会导致无限循环...... _COD 段字节公共“代码” 阿苏姆...

回答 1 投票 0

通过 EBP 和 ESP 清理了解 STDCALL 与 CDECL 的概念

我相信我理解 STDCALL 和 CDECL 之间的区别,但我想知道是否可以在这段代码中找到一些说明。 我知道在 STDCALL 中,CALLEE 负责清理...

回答 1 投票 0

为什么 MSVC 从不为成员函数返回 RAX 中的结构体?

我在 MSVC 代码生成中偶然发现了一个奇怪的现象,涉及用作返回值的结构。考虑以下代码(此处为现场演示): 结构结果 { uint64_t 值; }; 结果

回答 2 投票 0

从内联汇编和调用约定中调用 Rust 函数

我正在编写一些已在我的 Rust 项目中进行汇编的代码。我和一位同事正在讨论调用约定,但我一直无法为此找到明确的资源。 一个...

回答 1 投票 0

Python“调用函数”不会打印星形图案

我不知道从下面的程序中调用多个函数来打印星形图案中的完整单词的功能是什么。这是我从我的计划中练习的另一件事。 原来...

回答 1 投票 0

回调函数和普通函数有什么区别?

好的,我将给出两个使用 CALLBACK 和常规函数的函数示例。 注意:这些例子不是我写的。 常规功能 int sum示例 (int a, int b) { 返回a+b; } int主要...

回答 3 投票 0

glibc scanf 从未对齐 RSP 的函数调用时出现分段错误

编译以下代码时: 全球主要 外部 printf、scanf .data 节 msg: db "请输入数字:",10,0 格式:db“%d”,0 .bss 节 编号 RESB 4 节.文本 主要的: mov rdi,女士...

回答 2 投票 0

如何避免汇编中函数调用的无限循环?

我正在为64位模式下的x86-64微处理器编写一个汇编程序,该程序在循环中调用函数f 5次,然后在循环中调用puts 3次以显示“hello” 世界”....

回答 1 投票 0

MFC MDI 函数调用与 SendMessage。 C 程序员试图理解一个基本概念

作为一名高级硬件 EE,我的大部分编程时间根据需要使用 C 来进行固件和内联汇编。我一直在开发 MFC MDI,你们中的一些人很好地帮助了我。我是创造者...

回答 2 投票 0

ROP - jmp esp 的使用

我今天玩了一些 picoCTF 挑战赛,发现自己陷入了挑战。 在互联网上挖掘,我在网上找到了一个我无法完全掌握的解决方案。 挑战(我的名字是...

回答 1 投票 0

为什么gcc将8字节格式的char类型传递给函数汇编

为了学习汇编,我正在查看 GCC 使用 -S 命令为一些简单的 c 程序生成的汇编。我有一个 add 函数,它接受一些整数和一些字符并将它们添加在一起。 ...

回答 2 投票 0

“%d”在哪里 " 存储的格式字符串以及 GCC 如何将其传递给 x86-64 上的 printf?

所以我正在调试一个简单的c程序,如下在gdb中查看程序集 #包括 #包括 int main() { 整数a=12; printf("%d “, A); }

回答 1 投票 0

有关 intel cpu 上的 x86-64 linux 上的程序集调用约定的问题

所以我正在调试一个简单的c程序,如下在gdb中查看程序集 #包括 #包括 int main() { 整数a=12; printf("%d “, A); }

回答 1 投票 0

如何从 C 调用模板化的 C++ 自由函数?

我想将函数模板实例的指针传递给 C 函数作为回调。将模板声明为 extern "C" 显然是不可能的。 是否可以保证 C++ 我们...

回答 2 投票 0

想要从 Main 调用一个方法两次并显示两个输出

我想调用一个方法两次,用户必须输入两个正双精度数。 然后我希望将它们返回到 main() 并显示。 我不确定如何从 main 中调用该方法...

回答 1 投票 0

为什么使用 %ebx 寄存器会导致我的汇编代码出现分段错误

我正在编写一小段 i386 汇编代码,在使用 %ebx 寄存器时遇到分段错误。我希望能了解一些关于为什么会发生这种情况的见解。 我有两个版本...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.