首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C.LUI指令(RISC的压缩子集)的操作数是什么?

C.LUI指令(RISC的压缩子集)的操作数是什么?
EN

Stack Overflow用户
提问于 2020-09-14 09:18:26
回答 1查看 468关注 0票数 0

在RISC-V手册中,对这一指令的书写如下:

C.LUI将非零6位直接字段加载到目标寄存器的第17位- 12位,清除下12位,并将符号扩展位17加载到目标的所有较高位中。

由此,我得出结论,即时应该是6位,但是后来我正在编译一些东西,这行可以编译,但是它的宽度超过6位,所以我对c.lui x14,0xffff8感到困惑。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-14 11:57:38

只要所有位5到19具有相同的值(1或0),c.lui将立即接受任何20位。

因此,基本上c.lui将接受0xfffe0到0xfffff之间的任何值,以及1到0x1f之间的任何值。也不接受0x0 (参见https://riscv.org//wp-content/uploads/2017/05/riscv-spec-v2.2.pdf)

用你的例子

c.lui a4,0xff8将给出指令0x7761,从该指令中直接提取的指令为0x38,如果将其移至12,则得到0x38000,在此之后,当您签名扩展它时,您将得到:0xff8000。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63881445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档