【发布时间】:2020-06-17 13:24:48
【问题描述】:
我正在尝试为 RISC-V CPU 编写一个模拟器,但找不到我的问题的明确答案。
假设我想使用
ANDI rs1, rd, 0xFFF
rs1 包含 0xFFFFFFFF 并且立即值为 0xFFF。
ANDI 是否对完整寄存器进行操作,并仅用零填充立即数的剩余 20 位,因此 rd 中的结果将为 0x000000FFF?
还是忽略高 20 位,rd 中的结果仍然是 0xFFFFFFFF?
XORI 和 ORI 命令的问题相同。
【问题讨论】:
-
我读到了,但不知道符号扩展是什么意思,或者我认为是错误的意思,谢谢!
-
符号扩展是一个非常基本的概念,当你在做像编写 CPU 模拟器这样高级的事情时,你应该本能地理解。该规范花费了大量时间emphasizing the criticality of sign extension 来证明为什么立即数以它们的奇怪方式编码。
标签: riscv immediate-operand sign-extension riscv32