asm_book/section_2/float/literals.s
2022-07-27 09:23:55 -05:00

38 lines
862 B
ArmAsm

.global main
.text
.align 2
counter .req x20
dptr .req x21
fptr .req x22
.equ max, 4
main: stp counter, x30, [sp, -16]!
stp dptr, fptr, [sp, -16]!
ldr dptr, =d
ldr fptr, =f
mov counter, xzr
1: cmp counter, max
beq 2f
ldr d0, [dptr, counter, lsl 3]
ldr s1, [fptr, counter, lsl 2]
fcvt d1, s1
ldr x0, =fmt
add counter, counter, 1
mov x1, counter
bl printf
b 1b
2: ldp dptr, fptr, [sp], 16
ldp counter, x30, [sp], 16
mov w0, wzr
ret
.data
fmt: .asciz "%d %f %f\n"
d: .double 1.111111, 2.222222, 3.333333, 4.444444
f: .float 1.111111, 2.222222, 3.333333, 4.444444
.end