RISC-V MCU中文社区

【分享】 简单的内联汇编介绍

发表于 全国大学生集成电路创新创业大赛 2021-06-08 22:25:48
0
2733
0

一、队伍介绍

本参赛队队名为“Supernova”,报名编号:CICC2796。本篇为蜂鸟E203系列分享第五篇,本篇介绍的内容是C程序内联汇编。

二、前言

1、在程序中我们可以嵌入汇编直接对我们加入的硬件进行相应的操作

2、在RISC-V架构中定义的CSR寄存器需要使用特殊的 CSR 指令进行访问,如果在 C/C++程序中需要使用 CSR 寄存器,只能采用内嵌汇编指令(CSR指令)的方式,才能对 CSR 寄存器进行操作。

三、内联汇编程序

内敛汇编函数格式:

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

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

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

              

四、总结

   这次主要学习了使用内联汇编完成一些较为简单的操作。我们思考接下来在程序中插入跳转指令来实现一些想要实现的操作以及对自行设计的硬件进行操作。

喜欢0
用户评论
威尔罗格

威尔罗格 实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板