Assembly 在RISCV内存中加载32位立即数

Assembly 在RISCV内存中加载32位立即数,assembly,memory,32-bit,riscv,instructions,Assembly,Memory,32 Bit,Riscv,Instructions,我试图在riscv内存位置中存储一个32位立即数。相应的代码是 lui x13,0x12345 addi x13,x13,0x678 // 32 bit value- 12345678 lui x11, 0x1c010 // address location 1c01000 sw x13,x11 我面临的问题是,在模拟过程中,地址位置(1c01000)中未找到32位值。地址位置仅显示给定数据的1个字节(78)RISC-V是字节可寻址的。如果只检查该地址的一个字节,显然它只包含4字节

我试图在riscv内存位置中存储一个32位立即数。相应的代码是

lui x13,0x12345
addi x13,x13,0x678   // 32 bit value- 12345678
lui x11, 0x1c010     // address location 1c01000
sw x13,x11

我面临的问题是,在模拟过程中,地址位置(1c01000)中未找到32位值。地址位置仅显示给定数据的1个字节(78)

RISC-V是字节可寻址的。如果只检查该地址的一个字节,显然它只包含4字节值中的1个字节


您需要检查该地址的整个32位字,或4个字节1c01000。。1c01003单独显示。

1c01000位置中显示的值为7878您确定该地址有(模拟)内存吗?请在更“常用”的地址(例如0x10000000或0x10010000)尝试,以查看其是否按预期工作。否则,请声明数据:
.data。。。标签:。单词0。文本。。。lax11,标签;sw x13,(x11)
。通过这种方式,数据应获得有效的内存地址。此外,您的示例中有一个输入错误,应为
sw x13,(x11)
-或-
sw x13,0(x11)
。您使用的是什么汇编程序和模拟器?sw x13,(x11)模拟器使用的是GTKwavi吗?我分别检查了内存库78是否在所有四个内存库中复制,当时没有进行内存写入。我分别检查了内存库78是否在所有四个内存库中复制,当时没有进行内存写入..我的程序有任何错误吗?