Linux下OK6410平台C和汇编混合编程

来源:互联网 发布:淘宝上的diy耳机 编辑:程序博客网 时间:2024/05/18 04:38

C与汇编混合编程

1.汇编调用C语言函数

在汇编中用ldr  pc,  =函数名

用这个指令。

 

2.C语言调用汇编函数

在汇编中把符号申明为全局的,

 

C语言中直接调用这个符号

 

3.C内嵌汇编

__asm__(

汇编语句部分

:输出部分

:输入部分

:破坏部分

);

C内嵌汇编以关键字”__asm__”或”asm”开始,下辖四个部分,各部分之间使用":"分开第一部分是必须写的,后面三部分是可以省略,但是分号:不能省略!

1.汇编语句部分:汇编语句的集合,可以包含多条汇编语句,每条语句之间需要使用换行符 “\n”隔开或使用分号“ ”隔开。

2.输出部分:在汇编中被修改的C变量列表

3.输入部分作为参数输入到汇编中的变量列表

4.破坏描述部分执行汇编指令会破坏的寄存器描述

实例:

1.

 

p15 写入数据

%0:表示这是一个参数,0号参数

“r”(value),表示输入为通用寄存器,系统选择一个通用寄存器,把value赋给这个通用寄存器,让通用寄存器充当参数

2.

 

读取C1的值,往寄存器写入数据值。

“=r”,表示往寄存器写入,,只写。

3.

 

0 0
原创粉丝点击