[RISC-V MCU 应用开发] RISC-V 汇编语言的基本格式

[复制链接]
 楼主| 小小蚂蚁举千斤 发表于 2024-5-22 17:35 | 显示全部楼层 |阅读模式
  一个完整的RISC-V汇编程序有多条语句(statement)组成,汇编文件一般由.s结尾(不包含预处理语句,是纯粹的汇编语句)。一条典型的RISC-V汇编语句由3部分组成,分为标签、操作和注释:

  1. [label:] [operation] [comment]

1
label(标号): GNU汇编中,任何以冒号结尾的标识符都被认为是一个标号。标号相当于给一个指令所在的地址起的一个名字。
operation 可以有以下多种类型:
instruction(指令): 直接对应二进制机器指令的字符串,例如add。
pseudo-instruction(伪指令): 一些指令的组合。它并不对应二进制机器指令,只是为了提高编写代码的效率,可以用一条伪指令指示汇编器产生多条实际的指令(instructions),方便程序的使用,例如li。在理解和做法上与自定义的函数类似。
directive(指示/伪操作): 通过类似指令的形式(以“.”开头),通知汇编器如何控制代码的产生等,不对应具体的RISC-V指令,由汇编器自身定义,例如.text、.global、.end、.macro、.endm等。在理解和应用上类似C语言中的#define语句。
macro(宏):采用指示/伪操作 .macro/.endm 自定义的宏,汇编器碰到宏时会自动将宏替换成对应定义的内容。
comment(注释): 常用方式,#开始到当前行结束,也有些汇编器定义;或//开头的注释格式。
  下面是一个简单的RISC-V的汇编语言程序:

  1. # fitst RISC-V Assemble Sample

  2. .macro do_nothing
  3.     nop
  4.     nop
  5. .endm

  6.     .text
  7.     .global _start

  8. _start:
  9.     li x6, 5 # x6 = 5
  10.     li x7, 4 # x7 = 4

  11.     add x5, x6, x7 # x5 = x6 + x7
  12.     do_nothing

  13. stop:
  14.     j stop  # jump to stop
  15.     .end



OKAKAKO 发表于 2024-6-22 19:54 | 显示全部楼层
一条典型的RISC-V汇编语句由3部分组成,分为标签、操作和注释
中国龙芯CDX 发表于 2024-6-26 14:09 | 显示全部楼层
一个完整的RISC-V汇编程序有多条语句(statement)组成,汇编文件一般由.s结尾(不包含预处理语句,是纯粹的汇编语句)
LOVEEVER 发表于 2024-7-15 14:46 | 显示全部楼层
注释常用方式,#开始到当前行结束,也有些汇编器定义;或//开头的注释格式
szt1993 发表于 2024-7-17 19:24 | 显示全部楼层
完整的RISC-V汇编程序有多条语句(statement)组成
您需要登录后才可以回帖 登录 | 注册

本版积分规则

225

主题

2536

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部