无题
RISC-V汇编语言入门
一个完整的RISC-V汇编程序是多条语句组成。
一条典型的RISC-V汇编语句由三部分组成:[label:] [operation] [comment]
1 | _start:#可以将_start这个label理解为地址 |
汇编指令编码格式
指令长度:ILEN1 = 32bits(RV32I)
指令对齐:IALIGN=32bits(RV32I)
指令在内存中按照小端序排列
机器源码和汇编指令的对应关系
比如机器源码0110011,每个机器源码是7位,最后2位都是11,[6:5]的是纵坐标,[4:2]的是横坐标,所以对应关系是OP指令

补码/反码、零扩展和符号位扩展(Zero extension and Sign extension)-CSDN博客
- 符号扩展(Sign Extension)
符号扩展用于扩展有符号数(例如,有符号的整数)。在扩展时会保持原数值的符号位。
- 方法:在扩展位上填充原数值的符号位。例如,如果原数的最高位是1(负数),那么在高位填充1;如果最高位是0(正数),则填充0。
- 举例
- 8位二进制数
1110 0101
(表示负数)进行符号扩展到16位:扩展为1111 1111 1110 0101
。 - 8位二进制数
0010 1010
(表示正数)进行符号扩展到16位:扩展为0000 0000 0010 1010
。
- 8位二进制数
- 零扩展(Zero Extension)
零扩展用于扩展无符号数,不会关心符号,直接在高位填充零。
- 方法:在扩展的高位填充0,以保持原始值的数值大小不变。
- 举例
- 8位二进制数
1110 0101
进行零扩展到16位:扩展为0000 0000 1110 0101
。 - 8位二进制数
0010 1010
进行零扩展到16位:扩展为0000 0000 0010 1010
。
- 8位二进制数
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 涵风 Blog!