|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在C语言程序中嵌入汇编语言程序可实现一些感激语言没有的功能,并可提高执行效率ARMcc和armcpp内嵌汇编器支持完整的ARM指令集;tcc和tcpp用于Thumb指令集。但是内嵌汇编器并不支持诸如直接修改PC实现跳转的底层功能。4 ^' @. i, H# _$ \" q
内嵌的汇编指令包括大部分ARM指令和Thumb指令,但是不能直接饮用C语言的变量定义,数据交换必须通过ATPCS进行。嵌入式汇编在形式上表现为独立定义的函数体。
/ P. {* H- M; b, z: D$ u
% W. I M* L; [5 g) h* u_ _asm(“指令[;指令]”);
9 H' e# W9 R, x( d2 VARM C汇编器使用关键字“_ _asm”,如果有多条汇编指令需要嵌入,则可用“{}”将它们归为一条语句。例如:
2 j& I J4 ~2 }8 {# m" j" N/ C3 X_ _asm: g% G3 S' L( M2 w) ?6 x' b9 ?7 y# F
{
& z) ^3 N! R8 F- j4 Q; L指令[;指令]% [8 v }! m1 y5 ?" ^
...
+ @- a, _# N( F" x W$ v[指令]
; E! z, s# ~7 x7 _; E6 ]1 _6 E}- }; k3 P$ u! d) H
各指令用“;”分隔。如果一条指令占据多行,除最后一行外都要使用连字符“\”。在汇编指令段内可使用C语言的注释语句。需要特别注意的是,_ _asm是两个下划线。 |
|