att格式汇编指令_我们一起学RISC-V——10-C和汇编语言混合编程

154c18fb9742d8f571a99ffd95ac647d.png

本期内容如下:

  1. GCC内联汇编简述
  2. GCC内联汇编“输出操作数”和“输入操作数”部分
  3. GCC内联汇编“可能影响的寄存器或存储器”部分
  4. GCC内联汇编参考实例一
  5. GCC内联汇编参考实例二
  6. 在汇编中调用C/C++函数

一、GCC内联汇编简述


由于本文介绍的是GCC的RISC-V工具链,因此在C/C++程序中嵌入汇编程序遵循GCC内联汇编(inline asm )语法规则,其格式由如下部分组成:

asm volatile {  汇编指令列表  :输出操作//非必要  :输入操作//非必要  :可能影响的寄存器或存储器                     //非必要};

各组成部分简述如下:

“关键字asm”,为GCC的关键字,表示进行内联汇编操作。

注意:也可以使用前后各带两个下划线的asm__,_asm_是GCC 关键字asm 的宏定义。

“关键字volatile”,或者_volatile_。_volatile_或volatile 是可选的,如果添加了该关键字,则要求编译器对后续括号内添加汇编程序不进行任何优化以保持其原状;如果没有添加此关键字,则编译器可能会将某些汇编指令优化掉。

注意:也可以使用_volatile_,__volatile是GCC 关键字volatile 的宏定义。

“汇编指令列表”,即需要嵌入的汇编指令,每条指令必须被双引号括起来(作为字符串),两条指令之前必须以“”或者“;”作为分隔符,如果没有添加分隔符的两个字符串将会被合并成为一个字符串。

注意:“汇编指令列表”中的编写语法和普通的汇编程序编写一样,可以在其中定义标签(Label)、定义对齐(.align n )、定义段(.section name )等。

“输出操作数”,用来指定当前内联汇编程序的输出操作符列表。

有关“输出操作数”部分的详细介绍,本文后续内容详细介绍。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值