【发布时间】:2019-06-28 11:31:54
【问题描述】:
我有一个 RISCV 机器的汇编代码。 我添加了一条指令来访问浮点控制和状态寄存器,并将浮点标志存储在寄存器 a3 中。我想打印它的值以证明发生浮点异常时设置了标志。
我尝试使用尖峰。在spike(调试模式)中有一条指令可以打印寄存器的值:
: reg 0 a3
打印 a3 的值。 但首先我必须达到我想要的点。 我不知道我将如何能够达到这一点。
.file "learn_Assembly.c"
.option nopic
.text
.comm a,4,4
.comm b,4,4
.align 1
.globl main
.type main, @function
main:
addi sp,sp,-32
sd s0,24(sp)
addi s0,sp,32
lui a5,%hi(a)
lui a4,%hi(.LC0)
flw fa5,%lo(.LC0)(a4)
fsw fa5,%lo(a)(a5)
lui a5,%hi(b)
lui a4,%hi(.LC1)
flw fa5,%lo(.LC1)(a4)
fsw fa5,%lo(b)(a5)
lui a5,%hi(a)
flw fa4,%lo(a)(a5)
lui a5,%hi(b)
flw fa5,%lo(b)(a5)
fmul.s fa5,fa4,fa5
frflags a3
fsw fa5,-20(s0)
li a5,0
mv a0,a5
ld s0,24(sp)
addi sp,sp,32
jr ra
.size main, .-main
.section .rodata
.align 2
.LC0:
.word 1082130432
.align 2
.LC1:
.word 1077936128
.ident "GCC: (GNU) 8.2.0"
另一种选择是使用汇编指令以某种方式编写打印它,我不知道该怎么做。
【问题讨论】:
标签: riscv