Сборка, прочитанная из сегментации файла
.data
pn: .string "input.bin"
string: .string "%f\n"
buf_size = 8
alloc = -(16+buf_size)&-16
dealloc = -alloc
buf_s = 16
.text
.balign 4
.global main
main: stp x29,x30,[sp,alloc]!
mov x29,sp
mov w0,-100
ldr x1,=pn
mov w2,0
mov w3,0
mov x8,56
svc 0
cmp w0,0
mov w19,w0
mov w24,w19
mov x20,0
mov x21,8
b.ge open_ok
open_ok:
mov w0,w19
add x1,x29,x21
mov x2,8
mov x8,63
svc 0
ldr d0,[x1]
ldr x0,=string
bl printf
add x21,x21,8
cmp x20,199
add x20,x20,1
b.lt open_ok
mov w0,w24
mov x8,57
svc 0
mov x1,x0
ldr x0,=string
bl printf
ldp x29,x30,[sp],dealloc
ret
Я пытаюсь написать программу, которая читает из файла "input.bin" и отображает содержимое файла. Он правильно читает файл и отображает данные так, как он должен, но в самом конце вылетает из-за ошибки сегментации. Не уверен, что происходит. Ввод содержит числа от 0,5 до 100, увеличиваемые на 0,5 каждый раз. Он распечатывает его правильно, а затем вылетает в самом конце.