ysyx-org / jemu-decoder

The decoder library for jemu execution and web documentation
https://jemu.oscc.cc
MIT License
56 stars 16 forks source link

描述规范的建议:load/store的描述 #12

Closed x402 closed 2 years ago

x402 commented 2 years ago

访存可以用M(addr)表示,比$更直观。同样用切片表示取addr为起始地址处的多少个位,而不用mask表示,因为mask并不是程序状态变量,写进状态转移里显得意义不明。

load

# lb
exec:
  rd: "SEXT(M(rs1 + imm)[7:0])"

表示以addr=rs1+imm为起始地址取8个bit(1byte)并进行符号扩展 lb


# lhu
exec:
  rd: "M(rs1 + imm)[15:0]"

表示以addr=rs1+imm为起始地址取16个bit(2byte),没有SEXT则默认为零扩展 lhu

store

# sb
exec:
  M(rs1 + imm)[7:0]: "rs2[7:0]"

表示取rs2的低8位存入内存以addr=rs1+imm为起始地址的低8bit(1byte) sb

zhangyx1998 commented 2 years ago

这是个不错的建议,你可以把它写成PR