У меня есть код сборки для машины 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"
Другой вариант - как-то написать напечатать его, используя инструкцию по сборке, что я не уверен, как это сделать.