ARM如何实现汇编程序嵌套

如题所述

原文地址:关于c语言和汇编语言相互嵌套调用的学习总结(转)作者:shindow
下周就要做实验了,由于听老师说机房位子可能比较少,对我这种蹭课的学生来说也就不敢奢望同选这门课的同学一样能够正常的在机房调试程序了,因此,我决定提前先在自己的工作室里把实验内容给过一遍。第一个实验是关于嵌入式编程的,这个实验目的一方面是为了让我们熟悉ARM下编程的编译环境ADS和调试器ATX,另一方面是让我们掌握如何将c语言和汇编语言在实际编程中相互调用。经过这两天靠自己不断的摸索,终于掌握了如何在编译环境中进行ARM编程,另外,还学会了在c中调用汇编程序的方法,以及如何通过linux自带的gcc编译嵌有汇编的c程序,总之,收获还是蛮多的哦,下面就总结一下吧。

1、c嵌汇编

首先说一下关于GCC编译嵌有汇编语言的c语言吧,GCC编译的汇编语言不是我们上课时学的Intel x86汇编,而是AT&T汇编,两者的区别可以查看《Gcc使用的内嵌汇编语法格式小教程》。

下面是内嵌汇编的几种格式:

语法

__asm__(“instruction
......
instruction”);
//Linux gcc中支持(注意asm的下划线均为两个否则GCC将会无法编译)

__asm{instruction
......
instruction }; //ADS中支持(注意asm的下划线均为两个否则GCC将会无法编译)
asm(“instruction [; instruction]”); //ARM C++中使用
温馨提示:答案为网友推荐,仅供参考
相似回答