全球旧事资料 分类
我找到了一些资料希望对你有用下周就要做实验了,由于听老师说机房位子可能比较少,对我这种蹭课的学生来说也就不敢奢望同选这门课的同学一样能够正常的在机房调试程序了,因此,我决定提前先在自己的工作室里把实验内容给过一遍。第一个实验是关于嵌入式编程的,这个实验目的一方面是为了让我们熟悉ARM下编程的编译环境ADS和调试器ATX,另一方面是让我们掌握如何将c语言和汇编语言在实际编程中相互调用。经过这两天靠自己不断的摸索,终于掌握了如何在编译环境中进行ARM编程,另外,还学会了在c中调用汇编程序的方法,以及如何通过li
ux自带的gcc编译嵌有汇编的c程序,总之,收获还是蛮多的哦,下面就总结一下吧。1、c嵌汇编首先说一下关于GCC编译嵌有汇编语言的c语言吧,GCC编译的汇编语言不是我们上课时学的I
telx86汇编,而是ATT汇编,两者的区别可以查看《Gcc使用的内嵌汇编语法格式小教程》。
下面是内嵌汇编的几种格式:
语法__asm__“i
structio
……i
structio
”Li
uxgcc中支持(注意asm的下划线均为两个否则GCC将会无法编译)
__asmi
structio
…i
structio
ADS中支持(注意asm的下划线均为两个否则GCC将会无法编译)
asm“i
structio
i
structio
”ARMC++中使用
例1是我在li
ux环境下,编的嵌有汇编程序的c语言,并通过了GCC的编译:
f例1:i
clude
i
tplusi
tai
tb__asm__“add10
t””r”a”r”bretur
c
i
tmai
i
tabca2b1cplusabpri
tf“cd
”c
这个程序应该是很简单的,但关键是子函数中嵌入的那段汇编程序,具体的写法可以参看其他文章。例2同样是c语言中嵌入了汇编,与例1不同的是,这个程序的编译环境为ADS。
f例2i
cludevoidmy_strcpycharsrcco
stchardsti
tch__asmloopLDRBchsrc1STRBchdst1CMPch0BNEloop
i
tmai
voidco
stchara
好听全球资料 返回顶部