# ===============================================================
# RARS 64-bit mode
#
# to set RARS to 64-bit mode: settings -> 64 bit
# ===============================================================
# floating-point double load from memory into register
# ===============================================================
# floating-point double registers
#
# ft0–ft11 (f0–f7, f28–f31): Floating-point temporaries
# fs0–fs11 (f8–f9, f18–f27): Floating-point saved registers
#          (callee-saved)
# fa0–fa7 (f10–f17): Floating-point arguments and return values
#
# ===============================================================
# Suggestion: change newline from a string to a character
# ===============================================================

.data

dnum1: .double 123.456789012987654321

.text
.global main
main:

la      t1, dnum1             # load address of double
fld     ft1, 0(t1)            # load double into ft1 

li      a7, 3                  # syscall code, print double
fmv.d   fa0, ft1               # copy ft1 to fa0 
ecall                          # syscall

