用途:引导代理完成 RISC-V 汇编编程,适用于 RV32/RV64 指令集、寄存器命名与 psABI 调用约定、ISA 扩展命名、GCC/Clang 内联汇编、压缩指令(RVC)以及基于 QEMU 的模拟与 GDB 远程调试。
主要能力:
- 寄存器与调用约定:32 个整数寄存器 x0–x31 及 ABI 名(zero、ra、sp、gp、tp、t0–t2、s0/fp、s1、a0–a7、s2–s11、t3–t6),标注调用者/被调用者保存;F 扩展浮点寄存器 f0–f31(fa0–fa7 传参)。
- 基本指令:算术(add/sub/addi/mul/div/rem)、逻辑(and/or/xor/sll/srl/sra)、加载存储(lw/ld/lh/lbu/sw/sd)、分支(beq/bne/blt/bltu/bge)、跳转(j/jal/jalr,ret 为伪指令)。
- 函数示例:给出 add_numbers、factorial 的 psABI 风格汇编,含栈帧分配、保存 ra 与 s0、递归调用与恢复。
- ISA 扩展命名:I、M、A、F、D、C、G(=IMAFD)、V、Zicsr、Zifencei、Zba/Zbb/Zbc/Zbs、Ztso;常见目标 rv32imac、rv64gc、rv64gcv。
- 内联汇编:读取 CSR(rdcycle)、原子交换(amoswap.w.aqrl)、内存屏障(fence rw, rw)、CSR 读写宏。
- 压缩指令:RVC 在寄存器位于 x8–x15、立即数较小或指令模式匹配时用 16 位替代 32 位;可用 -march=rv64gc 启用,objdump 中查看 c. 前缀,-march=rv64g 禁用。
- 模拟与调试:安装 qemu-user 与 qemu-system-riscv64;用户态 qemu-riscv64 ./prog;系统态 qemu-system-riscv64 -machine virt -nographic -kernel firmware.elf -gdb tcp::1234 -S;GDB 使用 target remote :1234、load、break、continue。
使用方式:按触发问题(如何写 RISC-V 汇编、调用约定寄存器、C 内联汇编、扩展字母含义、QEMU 模拟、GDB 调试)进入对应工作流;psABI 细节见 references/riscv-abi.md。相关技能包括 assembly-arm、assembly-x86、openocd-jtag、cross-gcc。
限制:资料未提供具体收费、价格、平台支持范围与效果数据;示例命令需按实际工具链版本调整。