mirror of
https://github.com/pkivolowitz/asm_book.git
synced 2026-06-21 07:46:47 +08:00
83 lines
1.5 KiB
ArmAsm
83 lines
1.5 KiB
ArmAsm
.global main
|
|
.text
|
|
.align 2
|
|
|
|
dless .req d20
|
|
dmore .req d21
|
|
ndless .req d22
|
|
ndmore .req d23
|
|
|
|
Emit: str x30, [sp, -16]!
|
|
bl printf
|
|
ldr x30, [sp], 16
|
|
ret
|
|
|
|
main: str x30, [sp, -16]!
|
|
stp dless, dmore, [sp, -16]!
|
|
stp ndless, ndmore, [sp, -16]!
|
|
|
|
ldr x0, =vless
|
|
ldr dless, [x0]
|
|
ldr dmore, [x0, 8]
|
|
ldr ndless, [x0, 16]
|
|
ldr ndmore, [x0, 24]
|
|
|
|
//-fcvtps----------------------
|
|
fcvtps x1, dless
|
|
fcvtps x2, dmore
|
|
ldr x0, =fmt1
|
|
bl Emit
|
|
|
|
fcvtps x1, ndless
|
|
fcvtps x2, ndmore
|
|
ldr x0, =fmt1
|
|
bl Emit
|
|
//-fcvtms-----------------------
|
|
fcvtms x1, dless
|
|
fcvtms x2, dmore
|
|
ldr x0, =fmt2
|
|
bl Emit
|
|
|
|
fcvtms x1, ndless
|
|
fcvtms x2, ndmore
|
|
ldr x0, =fmt2
|
|
bl Emit
|
|
//-fcvtzs-----------------------
|
|
fcvtzs x1, dless
|
|
fcvtzs x2, dmore
|
|
ldr x0, =fmt4
|
|
bl Emit
|
|
|
|
fcvtzs x1, ndless
|
|
fcvtzs x2, ndmore
|
|
ldr x0, =fmt4
|
|
bl Emit
|
|
//-fcvtas-----------------------
|
|
fcvtas x1, dless
|
|
fcvtas x2, dmore
|
|
ldr x0, =fmt3
|
|
bl Emit
|
|
|
|
fcvtas x1, ndless
|
|
fcvtas x2, ndmore
|
|
ldr x0, =fmt3
|
|
bl Emit
|
|
//------------------------------
|
|
|
|
ldp ndless, ndmore, [sp], 16
|
|
ldp dless, dmore, [sp], 16
|
|
ldr x30, [sp], 16
|
|
mov w0, wzr
|
|
ret
|
|
|
|
.section .rodata
|
|
vless: .double 5.49
|
|
vmore: .double 5.51
|
|
nvless: .double -5.49
|
|
nvmore: .double -5.51
|
|
fmt1: .asciz "fcvtps less: %d more: %d\n"
|
|
fmt2: .asciz "fcvtms less: %d more: %d\n"
|
|
fmt3: .asciz "fcvtta less: %d more: %d\n"
|
|
fmt4: .asciz "fcvtzs less: %d more: %d\n"
|
|
|
|
.end
|