void task_b_main()
{
do_something...
}
#define appjmpTest(addr) \
__asm__ ("jmp %%eax" \
: \
:"a" (addr))
appjmpTest(&task_b_main);//这里调用函数task_b_main,但是并不行,哪里错了吗
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
汇编用jmp指令调用C语言函数
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
0条回答 默认 最新
报告相同问题?
提交
- 2008-06-10 13:54汇编语言是一种低级编程语言,它的指令与计算机硬件的机器语言紧密对应,而C语言则是一种中级语言,提供了更高级的抽象,使得程序员能更高效地编写程序。 **汇编语言指令集** 汇编语言是计算机可以直接理解的语言...
- 2016-11-29 19:15- **C语言**:使用`extern`声明外部函数,直接调用函数名。 - **参数传递**: - **汇编语言**:可以通过寄存器、栈等方式传递参数。 - **C语言**:支持通过值传递和引用传递。 - **返回值**: - **汇编语言**...
- 2009-01-15 18:07字典中可能会解释如何使用C语言的函数调用、数组、结构体、指针等特性,并可能包含与汇编语言相对应的部分,如如何使用汇编代码进行内联优化。 学习汇编语言可以帮助开发者理解计算机硬件的底层运作,这对于系统...
- 2019-01-25 12:02教程中会介绍基本的指令,如数据转移指令(如MOV)、算术运算指令(如ADD、SUB)和控制流程指令(如JMP、CALL)等,这些都是汇编语言的核心组成部分。 接着,教程将讲解如何在nasm中编写程序并进行编译和链接。nasm...
- 2010-06-05 10:11总之,51单片机的汇编语言指令集是其程序开发的基础,掌握这些指令的用法,结合程序库中的实用函数,将使你在51单片机的开发过程中更加得心应手。这个压缩包中的汇编语言常用指令代码无疑是一个宝贵的参考资料,对于...
- 2021-10-04 10:19汇编语言的学习并不止于指令集,还包括如何使用汇编编写函数、调用标准库、与高级语言交互(如C语言的汇编接口)等内容。实际应用中,汇编语言常用于编写系统启动代码、设备驱动、性能敏感的算法以及对硬件直接操作...
- 2021-10-01 06:48在C语言中,我们可以通过结构化编程和函数调用来实现复杂的逻辑,但在汇编语言中,我们需要直接与处理器的指令集打交道,如Intel x86或ARM架构。汇编语言提供了对内存、寄存器和运算指令的精确控制,这对于理解...
- 2010-09-25 21:447. **汇编与高级语言的交互**:了解如何在汇编程序中调用C语言函数,或者反过来在C程序中嵌入汇编代码。 8. **调试技巧**:学习如何使用DEBUG工具或其它调试器分析和调试汇编代码,找出程序中的错误。 9. **优化...
- 2022-09-24 16:384. **使用JMP指令**:在替代函数中,使用JMP汇编指令跳转到原始API的地址,这样可以保持API原有的功能,并在调用前后执行自定义操作。 5. **处理钩子事件**:当API被调用时,你的钩子函数会先被触发,然后通过JMP...
- 2022-01-07 09:44此外,调用C语言函数(如`printf`和`puts`)需要利用系统调用,这通常涉及到设置特定的寄存器,如`edi`、`eax`等,然后执行`call`指令。 总的来说,这个实验报告提供了一个实际的汇编语言编程示例,涵盖了基本的...
- 2018-06-28 11:47由于64位汇编中的`jmp`指令是14字节长(相对于32位系统的5字节),因此在64位环境中进行Hook时,需要格外小心。不仅要正确地替换这14字节,还要在完成钩子处理后恢复原始的14字节代码,以避免破坏程序的正常执行。 ...
- 2014-04-27 22:49例如,你可以用C语言编写大部分程序,然后在需要优化性能的部分使用汇编。这要求你懂得如何在C/C++代码中嵌入汇编语句,以及如何使用汇编调用C/C++编写的函数。 总的来说,学习汇编语言不仅需要理解基本指令,还要...
- 2011-06-22 11:46C语言中的函数、结构体、指针等概念与汇编语言中的概念有着直接的对应关系,这使得我们可以用C语言来调用汇编代码。 将汇编与C结合主要有以下几种方式: 1. **内联汇编**:C语言允许在源代码中插入汇编语句,通过`...
- 2010-08-12 14:03例如,通过查看汇编代码,我们可以判断是否过度使用了函数调用,或者是否需要减少不必要的内存操作。 在《一点汇编研究.doc》文档中,可能会详细阐述这些概念,并通过具体的C/C++代码示例和对应的汇编输出,帮助...
- 2013-05-31 15:53《汇编源代码大全》中的实例还可能涉及汇编语言与其他编程语言的交互,如C语言调用汇编函数,或者使用汇编实现C语言无法直接处理的功能,如处理器特定的优化。这涉及到函数调用约定、参数传递规则以及返回值的处理。...
- 2021-10-29 15:29例如,C语言风格的函数调用可能使用EAX和EDX传递参数,JMP指令跳转到函数入口。为了在函数返回后恢复执行点,需要保存调用点的地址,通常压入栈中,然后使用CALL指令,它会自动完成这一操作。函数内部需要确保栈平衡...
- 2021-09-30 21:50本实验的目的是了解MSP430G2xxx汇编格式指令和常用寻址方式,了解C语言函数调用过程,通过反汇编了解C编译器实现初始化变量的方法,掌握计算机中数的表示和编码。 二、实验任务 1. 汇编格式指令和寻址方式的学习 ...
- 2014-07-07 20:19掌握如何使用CALL和RET指令进行子程序调用,以及如何使用JMP和条件跳转指令控制流程至关重要。 7. **调试技巧**:汇编代码的调试通常依赖于反汇编器和调试器,如使用GDB。了解如何设置断点、单步执行、查看寄存器...
- 2011-05-01 20:37##### 4.6.3 举例分析C语言函数调用是如何使用堆栈的 假设有一个简单的C函数调用示例: ```c int add(int a, int b) { return a + b; } ``` 当调用`add(5, 3)`时,C语言运行时会执行以下步骤: 1. 将函数参数`5...
- 2022-09-24 13:13通过学习,你会知道如何直接控制CPU执行任务,比如通过AX寄存器传递参数,用JMP指令实现条件跳转,以及如何调用INT中断服务。 在Windows环境下,汇编语言编程则涉及到Windows API的使用。这需要对Win32 API有深入的...
- 没有解决我的问题, 去提问