如何在Risc-V“10000”中存储大于4095的数字:操作数超出范围

问题描述 投票:0回答:1

嗨,我正在尝试存储一个数字用于除法目的,但当我尝试汇编程序时,我收到此错误

“10000”:操作数超出范围

有问题的代码如下所示

addi t1, zero, 10000

这行代码确实适用于较小的数字,1-2047 可以使用 2048-4095

无符号值太大,无法放入符号扩展立即数

以及更大的数字给出相同的错误消息

riscv rars-simulator
1个回答
0
投票

立即值(例如您尝试写入寄存器文件的值)具有由指令格式定义的固定位长度。 请参阅官方 RISC-V 规范中的第 2.2 节以获得漂亮的图表。

在 RV32I 中,像

addi
这样的 I 型指令具有 12 位立即数,这意味着它们可以表示 4096 (2^12)。您始终可以向左移动位并向其添加另一个值以创建更大的值。

© www.soinside.com 2019 - 2024. All rights reserved.