RISC-V汇编语言入门

一个完整的RISC-V汇编程序是多条语句组成。

一条典型的RISC-V汇编语句由三部分组成:[label:] [operation] [comment]

1
2
_start:#可以将_start这个label理解为地址
li x6 ,5

汇编指令编码格式

指令长度:ILEN1 = 32bits(RV32I)

指令对齐:IALIGN=32bits(RV32I)

指令在内存中按照小端序排列

机器源码和汇编指令的对应关系

1730710785146

比如机器源码0110011,每个机器源码是7位,最后2位都是11,[6:5]的是纵坐标,[4:2]的是横坐标,所以对应关系是OP指令

![](C:\Users\71027\Desktop\笔记文件\屏幕截图 2024-11-04 170738.png)

补码/反码、零扩展和符号位扩展(Zero extension and Sign extension)-CSDN博客

  1. 符号扩展(Sign Extension)

符号扩展用于扩展有符号数(例如,有符号的整数)。在扩展时会保持原数值的符号位。

  • 方法:在扩展位上填充原数值的符号位。例如,如果原数的最高位是1(负数),那么在高位填充1;如果最高位是0(正数),则填充0。
  • 举例
    • 8位二进制数 1110 0101 (表示负数)进行符号扩展到16位:扩展为 1111 1111 1110 0101
    • 8位二进制数 0010 1010 (表示正数)进行符号扩展到16位:扩展为 0000 0000 0010 1010
  1. 零扩展(Zero Extension)

零扩展用于扩展无符号数,不会关心符号,直接在高位填充零。

  • 方法:在扩展的高位填充0,以保持原始值的数值大小不变。
  • 举例
    • 8位二进制数 1110 0101 进行零扩展到16位:扩展为 0000 0000 1110 0101
    • 8位二进制数 0010 1010 进行零扩展到16位:扩展为 0000 0000 0010 1010