LIB文件的调用
汇编语言怎么用KEIL调用lib文件?能实现这个功能么 不会汇编,只会C,帮顶 把lib 加入工程,然后包含头文件,头文件里声明了函数的,直接调用头文件里的函数即可 山外メ雲ジ 发表于 2013-7-6 15:13 static/image/common/back.gif把lib 加入工程,然后包含头文件,头文件里声明了函数的,直接调用头文件里的函数即可 ...
汇编也可以包含头文件么?怎么弄呀 ? 609178658 发表于 2013-7-6 15:20 static/image/common/back.gif
汇编也可以包含头文件么?怎么弄呀 ?
汇编,像调用其他函数就好了 本帖最后由 609178658 于 2013-7-6 22:26 编辑
山外メ雲ジ 发表于 2013-7-6 20:54 static/image/common/back.gif
汇编,像调用其他函数就好了
有那么容易么?能说具体点么,那个LIB是个库文件,好多函数都在里面,怎么调? 609178658 发表于 2013-7-6 22:23 static/image/common/back.gif
有那么容易么?能说具体点么,那个LIB是个库文件,好多函数都在里面,怎么调? ...
汇编我不太熟悉,不过跟调用其他的.s 函数一样的,你如何在本.s文件里调用其他 .s 的函数,就等同于那样调用 lib
我记得 IAR 里面 EXPORT 声明一下外部调用函数即可调用那个函数 山外メ雲ジ 发表于 2013-7-7 01:00 static/image/common/back.gif
汇编我不太熟悉,不过跟调用其他的.s 函数一样的,你如何在本.s文件里调用其他 .s 的函数,就等同于那样 ...
还真不知道 汇编可以调用外部函数,没研究过 汇编调用外部函数,还得搞定清楚外部函数对寄存器、堆栈等资源的修改情况。不然会有意想不到的情况发生 younge 发表于 2013-7-7 10:19 static/image/common/back.gif
汇编调用外部函数,还得搞定清楚外部函数对寄存器、堆栈等资源的修改情况。不然会有意想不到的情况发生 ...
谢谢,您能指点一下怎么调用么?一直没有调用过 609178658 发表于 2013-7-7 10:33 static/image/common/back.gif
谢谢,您能指点一下怎么调用么?一直没有调用过
您看这个程序可以调用么 先用EXTERN CODE ()声明外部的函数,然后你要知道你调用的函数有没有参数,如果有参数,你要知道这几个参数分别在哪几个寄存器里,然后直接用LCALL调用即可 信天游 发表于 2013-7-7 10:44 static/image/common/back.gif
先用EXTERN CODE ()声明外部的函数,然后你要知道你调用的函数有没有参数,如果有参数,你要知道这几个参数 ...
51单片机也可以么?调用LIB也可以这样么
可以的, 信天游 发表于 2013-7-7 12:51 static/image/common/back.gif
可以的,
怎么弄得 能给点提示不? 我在KEIL c51的启动文件里试过,调用外部文件的函数就是这么做的,我也不知道在51的汇编中行不行 609178658 发表于 2013-7-7 10:33 static/image/common/back.gif
谢谢,您能指点一下怎么调用么?一直没有调用过
我大三时候专门研究过,当时据说只有一个老师以前常用混合编程,结果我去找他,他说好几年没用了不会了
于是我接着琢磨了好久也没搞定,遂放弃…… 首先要声明标号,然后要搞清楚怎么传递参数. 17楼说的有理,做过bootloader的朋友应该都会这种混合编程吧,不过本人不会,没有跟师傅学成就走了! younge 发表于 2013-7-9 22:00 static/image/common/back.gif
我大三时候专门研究过,当时据说只有一个老师以前常用混合编程,结果我去找他,他说好几年没用了不会了
...
为什么说是混合编程 C 和汇编的混编么?不是吧 LIB不分的吧 609178658 发表于 2013-7-10 14:42 static/image/common/back.gif
为什么说是混合编程 C 和汇编的混编么?不是吧 LIB不分的吧
哦。不好意思,我可能误会你的问题了 山外メ雲ジ 发表于 2013-7-6 15:13 static/image/common/back.gif
把lib 加入工程,然后包含头文件,头文件里声明了函数的,直接调用头文件里的函数即可 ...
声明函数?是不是有很多的规矩? 我弄了好久都没弄出来 younge 发表于 2013-7-10 23:48 static/image/common/back.gif
哦。不好意思,我可能误会你的问题了
简单看了下你打包的程序,貌似就是要C和汇编混合编程吧...
看你的.h文件里有好多的C函数声明
要想在汇编里调用的话应该就得混合编程了
基于本人也不会混合编程,所以建议朋友搜索一些bootloader的资料看下
应该可以学到混合编程。 mvpgpz 发表于 2013-7-11 17:29 static/image/common/back.gif
简单看了下你打包的程序,貌似就是要C和汇编混合编程吧...
看你的.h文件里有好多的C函数声明
要想在汇编 ...
不是啊。反正我是没学会混合编程 mvpgpz 发表于 2013-7-11 17:29 static/image/common/back.gif
简单看了下你打包的程序,貌似就是要C和汇编混合编程吧...
看你的.h文件里有好多的C函数声明
要想在汇编 ...
汇编调用LIB库需要声明,是通过,INC来声明,不是那个.H文件
不是混合编程
我现在有了新问题,就是在INC里如何声明函数 609178658 发表于 2013-7-11 23:08 static/image/common/back.gif
汇编调用LIB库需要声明,是通过,INC来声明,不是那个.H文件
不是混合编程
我现在有了新问题,就是在INC里 ...
好吧 我表示无能为力了
问题解决了一定要贴出来让大家都学习一下额 mvpgpz 发表于 2013-7-12 08:55 static/image/common/back.gif
好吧 我表示无能为力了
问题解决了一定要贴出来让大家都学习一下额
你用汇编么?现在用汇编的不多了 609178658 发表于 2013-7-12 09:05 static/image/common/back.gif
你用汇编么?现在用汇编的不多了
刚学的时候用过几次,后来全用C了,唉! mvpgpz 发表于 2013-7-12 18:48 static/image/common/back.gif
刚学的时候用过几次,后来全用C了,唉!
是啊 过时的东西了 可是我还在用没办法 还是C 好用 參數傳遞的規則在Keil C51 Compiler手冊中寫得很清楚, 如果你不想看,
那麼下面這個方法是最快的了.
假設你要呼叫xxx.lib中的一個Add函式, 它的宣告是這樣的:
int Add(int a, int b);
你就寫個test.c加到Project中. 它的內容就只是:
include xxx.h
void main() {
Add(0x1234, 0x5678);
}
在"Option for Target->Listing->Assembler Listing"這項打勾產生test.lst檔
照著它裡面呼叫的方式依樣畫葫蘆的寫就好了
Jach 发表于 2013-7-15 16:17 static/image/common/back.gif
參數傳遞的規則在Keil C51 Compiler手冊中寫得很清楚, 如果你不想看,
那麼下面這個方法是最快的了.
谢谢您的解答不过 您好像没有看清 我问的 问题
是汇编调用LIB 文件
还有一个问题
ASM 汇编可以调用c生成的反汇编src 么
就是ASM调用src 609178658 发表于 2013-7-16 16:07 static/image/common/back.gif
谢谢您的解答不过 您好像没有看清 我问的 问题
是汇编调用LIB 文件
还有一个问题
是沒懂你的問題. "汇编调用LIB 文件", 幹嗎? 不就是為了在.asm裡呼叫LIB的函式嗎?
但是, 如果你不知道參數傳遞的規則, 就沒辦法呼叫. 我以為你的問題在這.
"ASM 汇编可以调用c生成的反汇编src 么", 這問題我就更不懂了, 還是讓別人來回答吧.
页:
[1]