isa 模块注释完善:Doxygen 风格。
- Types.h:定宽类型、TypeTag、饱和四则的 @brief/@param/@return - Op.h:Op 枚举冻结约束、OpFormat/OpClass、OpDef/kOpDefs 表、三个查询函数 - Instr.h:指令字布局、pack/拆字段、按形态 enc_* 系列 - Encode.h/.cpp:Decoded 字段语义、encode/decode/disasm 契约
This commit is contained in:
+19
-1
@@ -1,6 +1,6 @@
|
||||
/**
|
||||
* @file Encode.cpp
|
||||
* @brief 指令编解码与反汇编
|
||||
* @brief 指令编解码与反汇编实现
|
||||
* @author
|
||||
* @date 2026-08-19
|
||||
*/
|
||||
@@ -11,10 +11,20 @@
|
||||
|
||||
namespace isa {
|
||||
|
||||
/**
|
||||
* @brief 编码:字段视图打包成一条 32 位指令字。
|
||||
* @param d 解码后的字段视图
|
||||
* @return 打包后的指令字;满足 encode(decode(w)) == w
|
||||
*/
|
||||
Instr encode(Decoded d) {
|
||||
return pack(d.op, d.rd, d.a, d.b);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 解码:指令字拆成字段视图。
|
||||
* @param w 32 位指令字
|
||||
* @return 各字段视图
|
||||
*/
|
||||
Decoded decode(Instr w) {
|
||||
Decoded d;
|
||||
d.op = op(w);
|
||||
@@ -24,6 +34,14 @@ Decoded decode(Instr w) {
|
||||
return d;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 反汇编一条指令为一行文本。
|
||||
* @param w 指令字
|
||||
* @param out 输出缓冲
|
||||
* @param cap 缓冲容量(含 '\0');cap==0 时直接返回、不写 out
|
||||
* @details 按操作数形态表驱动输出,文本与 Doc/isa/指令与映像.md 一致;
|
||||
* 未知操作码输出 `??? 0x<w>`。
|
||||
*/
|
||||
void disasm(Instr w, char* out, size_t cap) {
|
||||
if (cap == 0) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user