当前位置: 技术问答>linux和unix
求助VxWorks下C语言中如何嵌入汇编
来源: 互联网 发布时间:2016-07-26
本文导语: 现在有个需求是在一个c函数里嵌入一段汇编,实现调用可变形参的c函数, 根据输入可以解析出要调用的函数指针,及形参,形参个数, 然后用汇编把解析出来的函数参数先压到堆栈中,再跳到要调用的函数指针,...
现在有个需求是在一个c函数里嵌入一段汇编,实现调用可变形参的c函数,
根据输入可以解析出要调用的函数指针,及形参,形参个数,
然后用汇编把解析出来的函数参数先压到堆栈中,再跳到要调用的函数指针,从堆栈中
取出参数,完成函数调用。
方案应该是可行的,就是不知道怎么写汇编,请教各位大牛指点,谢谢!
根据输入可以解析出要调用的函数指针,及形参,形参个数,
然后用汇编把解析出来的函数参数先压到堆栈中,再跳到要调用的函数指针,从堆栈中
取出参数,完成函数调用。
方案应该是可行的,就是不知道怎么写汇编,请教各位大牛指点,谢谢!
|
函数指针不能满足你的需求吗?可以动态调用函数,
参数总有规律吧,把参数定义为数组或指针,可以加上表示参数格式(包括长度、个数)的变量,
跟性能无关的事情,我觉得没必要嵌入汇编,
参数总有规律吧,把参数定义为数组或指针,可以加上表示参数格式(包括长度、个数)的变量,
跟性能无关的事情,我觉得没必要嵌入汇编,
|
c语言本身也能实现变长参数的处理,如printf
没用过VxWorks
看样子用的也是gcc,内嵌汇编格式应该按照gnu的语法来
http://blog.csdn.net/iamwsg/archive/2008/01/19/2053909.aspx
没用过VxWorks
看样子用的也是gcc,内嵌汇编格式应该按照gnu的语法来
http://blog.csdn.net/iamwsg/archive/2008/01/19/2053909.aspx
|
内嵌汇编跟跟CPU和编译器有非常非常密切的关系
CPU决定汇编的指令集,编译器决定C内嵌的时候的语法。所以你这个问题得看具体的编译器是什么,不能一概而论
CPU决定汇编的指令集,编译器决定C内嵌的时候的语法。所以你这个问题得看具体的编译器是什么,不能一概而论