嵌入式汇编的使用

原创 2013年12月02日 15:53:27

嵌入汇编语句的基本格式:

asm(“汇编语句”

:输出寄存器

:输入寄存器

:会被修改的寄存器);

嵌入式编程规定把输出和输入寄存器统一按顺序编号,

顺序是从输出到输入,从左到右,从上到下,以“%0”开始。

“=a”中a为加载代码,“=”表示这是输出寄存器;

如输入寄存器的代码是0或为空时,则说明使用与输出一样的寄存器。


在执行代码时,如果不希望汇编语句被GCC优化而作修改,就需要在asm符号后面添加关键词volatile:

asm volatile(....);

或 __asm__ __volatile__(....);


组合语句({.....})中最后一条语句必须是后面跟随一个分号的表达式,且这个表达式的值即作整个圆括号括住语句的值。

相关文章推荐

C 关键字 register 和嵌入式汇编联合使用的讨论

C 关键字 register 和嵌入式汇编联合使用的讨论                           register 是C99 的keyword之一. ...

之三:三步法解析内核中的嵌入式汇编

三步法解析内核中的嵌入式汇编 1.汇编指令格式 在windows领域386汇编都以intel定义的指令格式来编写,而在unix领域,采用的却是AT&T格式。先来看看这两种格式的简要区别。 1. ...

嵌入式汇编的基本格式

本节是第一次在内核源程序中接触到C语言中的嵌入式汇编代码。由于我们在通常的C语言程序的编制过程中一般是不会使用嵌入式汇编程序的,因此这里有必要对其基本格式进行简单的描述,详细的说明可参见GNU gcc...

GCC 嵌入式汇编

2.6.3 Gcc嵌入式汇编       在Linux的源代码中,有很多C语言的函数中嵌入一段汇编语言程序段,这就是gcc提供的“asm”功能,例如在include/asm-i386/system....

嵌入式xworks系统初始化(PowerPC汇编)

系统初始化 系统初始化对不同的CPU,基本步骤是类似的. 系统初始化的主要步骤以 下启动 关闭中断 放boot type到堆栈 清空缓存 VxWorks 系统的 PowerPC BSP,系统开...

__asm__ volatile 之 C语言嵌入式汇编

  在linux/include/unistd.h中定义的系统调用嵌入汇编宏函数_syscall0。 其实展开不难发现就是一个函数,只不过用宏定义了。其中关键的是怎么理解 __asm__...

gcc 嵌入式汇编(asm)实现bsr(位扫描)指令

在c/c++语言中,如果你想获取一个二进制数为1的最高位的位置(比如40的最高位位置是5,1的最高位位置是0),该怎么办?c语言实现最笨的办法就是下面的代码//对一个64位无符号整数进行位扫描(从高位...
  • 10km
  • 10km
  • 2015年10月09日 11:07
  • 1275

MIPS GCC 嵌入式汇编

1. GCC 内嵌汇编的基本格式 asm("assembly code"); 如: asm("syscall"); //触发一个系统调用 如果有多条指令,则需在指令尾部添加'\...
  • jiahuip
  • jiahuip
  • 2016年02月14日 16:53
  • 72

Linux汇编语言及嵌入式汇编(转载)

Linux汇编语言及嵌入式汇编(转载)   汇编语言的优点是速度快,可以直接对硬件进行操作。Linux是用C语言开发的操作系统,可以在Linux中直接使用汇编这一底层语言来优化程...

MIPS GCC 嵌入式汇编(龙芯适用)

作者: comcat 发表日期: 2007-04-09 18:06     http://comcat.blog.openrays.org/blog.php?do=showone&tid=329 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:嵌入式汇编的使用
举报原因:
原因补充:

(最多只允许输入30个字)