ARM汇编语言与嵌入式C语言混合编程内嵌汇编在嵌入式程序设计中,有些场合(如对具体的硬件资源进行访问)必须用汇编语言来实现,可以采用在嵌入式C语言程序中嵌入汇编语言或嵌入式C语言调用汇编语言来实现。
内嵌汇编
内嵌的汇编指令与通常的ARM指令有所区别,是在嵌入式C程序中嵌入一段汇编代码,这段汇编代码在形式上表现为独立定义的函数体,遵循过程调用标准。
1.语法格式.
在嵌入式C程序中内嵌汇编使用关键字“__asm”。在ARM开发工具编译环境下与GNUARM编译环境下的内嵌汇编在格式上略有差别。1ARM开发工具编译环境下内嵌汇编语法格式在ARM开发工具编译环境下的内嵌汇编语言程序段,可以直接引用C语言中的变量定义。具本的语法格式如下:__asm指令;[指令]指令;[指令]…指令示例:示例:mai
cvoid__mai
voidi
tvar0xAA__asmMOVR1varCMPR10xAAwhile1
注释
内嵌汇编标识
2GNUARM环境下内嵌汇编语法格式在GNUARM编译环境下内嵌汇编语言程序段,不能直接引用C语言中的变量定义。如果有多条汇编指令需要嵌入,则可用“”将它们归为一条语句。具本的语法格式如下:__asm(“指令;[指令;]指令;[指令;]…指令;”);示例:示例:
fmai
cvoid__mai
voidi
tvar0xAA__asm