一、队伍介绍
本参赛队队名为“Supernova”,报名编号:CICC2796。本篇为蜂鸟E203系列分享第五篇,本篇介绍的内容是C程序内联汇编。
二、前言
1、在程序中我们可以嵌入汇编直接对我们加入的硬件进行相应的操作
2、在RISC-V架构中定义的CSR寄存器需要使用特殊的 CSR 指令进行访问,如果在 C/C++程序中需要使用 CSR 寄存器,只能采用内嵌汇编指令(CSR指令)的方式,才能对 CSR 寄存器进行操作。
三、内联汇编程序
内敛汇编函数格式:
asm volatile (
汇编指令列表
: 输出操作数 // 非必需
: 输入操作数 // 非必需
: 可能影响的寄存器或存储器 // 非必需
);
“关键字 asm”为 GCC 的关键字,表示进行内联汇编操作。
“关键字 volatile”或“ __volatile__”。 __volatile__或 volatile 是可选的。如果添加了该关键字,则要求编译器对后续括号内添加的汇编程序不进行任何优化以保持其原状;如果没有添加此关键字,则编译器可能会将某些汇编指令优化掉。
四、总结
这次主要学习了使用内联汇编完成一些较为简单的操作。我们思考接下来在程序中插入跳转指令来实现一些想要实现的操作以及对自行设计的硬件进行操作。